App-jl
view release on metacpan or search on metacpan
t/01_basic.t view on Meta::CPAN
jl_test('LIKE_JSON_NOT_JSON', $like_json_not_json, [], sub {
my ($output, $src) = @_;
is $output, $like_json_not_json;
});
}
jl_test('SORT_KEYS', encode_json({ z => 1, b => 1, a => 1 }), [], sub {
my ($output, $src) = @_;
ok $output =~ m!a.*b.*z!sm;
});
jl_test('JA', encode_json({ aiko => 'è©©' }), [], sub {
my ($output, $src) = @_;
my $s = Encode::encode('utf8', 'è©©');
ok $output =~ m!"aiko"\s*:\s*"$s"!;
});
jl_test('NO_PRETTY', $JSON, ['--no-pretty'], sub {
my ($output, $src) = @_;
ok $output =~ m!foo.*bar.*baz.*hoge!;
});
{
my $src_json = encode_json({ foo => 'bar' });
my $json_in_log = encode_json({ message => qq|[05/09/2019 23:51:51]\t[warn]\t$src_json\n| });
jl_test('X', $json_in_log, ['-x'], sub {
my ($output, $src) = @_;
ok $output =~ m!\Q"[warn]",!;
});
}
{
my $src_json = encode_json({ foo => 'bar' });
my $json_in_log = encode_json({ message => qq|[05/09/2019 23:51:51] foo, bar, baz \n$src_json\n| });
jl_test('XX', $json_in_log, ['-xx'], sub {
my ($output, $src) = @_;
ok $output =~ m!"bar",! && $output =~ m!"baz"! && $output =~ m!"foo"\s*:\s*"bar"!;
});
}
{
my $src_json = encode_json({ foo => 'bar' });
my $json_in_log = encode_json({ message => qq|[05/09/2019 23:51:51](warn)<server> \n$src_json\n| });
jl_test('XXX', $json_in_log, ['-xxx'], sub {
my ($output, $src) = @_;
ok $output =~ m!"\Q(warn)"! && $output =~ m!"<server>"! && $output =~ m!"foo"\s*:\s*"bar"!;
});
}
{
my $src_json = encode_json([
{ created => 1560026367 },
{ updated => 1560026367.123 },
{ created_at => '1560026367' },
{ time => '1560026367123' },
{ unixtime => 1560026367123 },
{ date => '1560026367.123' },
{ ts => 1560026367 },
]);
my $json_in_log = encode_json({ message => qq|[05/09/2019 23:51:51] (warn) <server>\n$src_json\n| });
jl_test('XXXX', $json_in_log, ['-xxxx', '--timestamp-key', 'ts'], sub {
my ($output, $src) = @_;
ok $output =~ m!"\Q(warn)"! && $output =~ m!"<server>"! && $output !~ m!1560026367!;
});
}
jl_test('NO_CONTENT_LINE', "\t \r\n\t\n", [], sub {
my ($output, $src) = @_;
is $output, undef;
});
STDIN: {
open my $IN, '<', \$JSON;
local *STDIN = *$IN;
my ($stdout, $stderr) = capture {
App::jl->new->run;
};
close $IN;
ok $stdout !~ m!\\!;
if (0) {
note 'STDIN';
note $stdout;
}
}
STDERR: {
open my $IN, '<', \$JSON;
local *STDIN = *$IN;
my ($stdout, $stderr) = capture {
App::jl->new('--stderr')->run;
};
close $IN;
is $stdout, '';
ok $stderr;
if (0) {
note 'STDERR';
note $stdout;
note $stderr;
}
}
STDIN_NOT_JSON: {
my $str = 'aikoã®è©©ã';
open my $IN, '<', \$str;
local *STDIN = *$IN;
my ($stdout, $stderr) = capture {
App::jl->new->run;
};
close $IN;
is $stdout, $str;
if (0) {
( run in 0.695 second using v1.01-cache-2.11-cpan-ceb78f64989 )