File Coverage

File:t/090_corpus__010_error_full.t
Coverage:100.0%

linestmtbrancondsubpodtimecode
1#!perl
2
3
1
1
1
3581
2
20
use strict;
4
1
1
1
2
1
25
use warnings;
5
1
1
1
530
312
3
use lib 'lib';
6
7
1
1
1
620
103694
3
use Test::Most;
8
1
1
1
21380
6196
3
use JSON qw/decode_json/;
9
1
1
1
793
2
1428
use JSON::DJARE::Writer;
10
11
1
62251
my $expected  = decode_json( join '', (<DATA>) );
12
1
4
my $from      = 'myapi.com/coefficiants';
13
1
2
3
2
my $timestamp = sub { '2020-12-09 16:09:53+00:00' };
14
15
1
4
for my $t (
16    {
17        name       => 'from in new()',
18        new_args   => [ auto_timestamp => $timestamp, meta_from => $from ],
19        error_args => []
20    },
21    {
22        name       => 'from in error()',
23        new_args   => [ auto_timestamp => $timestamp ],
24        error_args => [ from           => $from ]
25    }
26  )
27{
28
29    my $djare = JSON::DJARE::Writer->new(
30        djare_version => '0.0.2',
31        meta_version  => '0.0.1',
32
2
2
2499
7
        @{ $t->{'new_args'} }
33    );
34
35    my $result = $djare->error(
36        'Invalid payload provided',
37        id     => '10.10.3.59:453294281',
38        code   => 'BADPAYLOAD',
39        detail => 'Value at [/error/title]: expected[string] actual[array]',
40        trace  => [
41            {
42                instancePath => "/error/title",
43                schemaPath   => "#/definitions/error/properties/title/type",
44                keyword      => "type",
45                params       => {
46                    type => "string"
47                },
48                message => "must be string"
49            }
50        ],
51
2
2
7
4
        @{ $t->{'error_args'} }
52    );
53
54
2
6
    eq_or_diff( $result, $expected, "matches for case: " . $t->{'name'} );
55}
56
57
1
1981
done_testing();
58