The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -Tw
use strict;

use Data::Format::Pretty::JSON qw(format_pretty);
use Test::More 0.98;

test_format_pretty(
    name => 'default',
    data => {a=>1, b=>2},
    opts => {},
    output_re => qr/a.*:.*1/,
);

test_format_pretty(
    name => 'opt: pretty=0',
    data => {a=>1, b=>2},
    opts => {pretty=>0},
    output_re => qr/a.*:.*1/,
);

done_testing();

sub test_format_pretty {
    my %args = @_;
    my $data   = $args{data};
    my $opts   = $args{opts} // {};

    subtest $args{name} => sub {
        my $output = format_pretty($data, $opts);
        if ($args{output}) {
            is($output, $args{output}, "output (exact match)")
                or diag $output;
        }
        if ($args{output_re}) {
            like($output, $args{output_re}, "output (re match)")
                or diag $output;
        }
    };
}