xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/modules/Event/Ok.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1*5759b3d2Safresh1use strict;
2*5759b3d2Safresh1use warnings;
3*5759b3d2Safresh1
4*5759b3d2Safresh1use Test2::Tools::Tiny;
5*5759b3d2Safresh1use Test2::EventFacet::Trace;
6*5759b3d2Safresh1use Test2::Event::Ok;
7*5759b3d2Safresh1use Test2::Event::Diag;
8*5759b3d2Safresh1
9*5759b3d2Safresh1use Test2::API qw/context/;
10*5759b3d2Safresh1
11*5759b3d2Safresh1my $trace;
12*5759b3d2Safresh1sub before_each {
13*5759b3d2Safresh1    # Make sure there is a fresh trace object for each group
14*5759b3d2Safresh1    $trace = Test2::EventFacet::Trace->new(
15*5759b3d2Safresh1        frame => ['main_foo', 'foo.t', 42, 'main_foo::flubnarb'],
16*5759b3d2Safresh1    );
17*5759b3d2Safresh1}
18*5759b3d2Safresh1
19*5759b3d2Safresh1tests Passing => sub {
20*5759b3d2Safresh1    my $ok = Test2::Event::Ok->new(
21*5759b3d2Safresh1        trace => $trace,
22*5759b3d2Safresh1        pass  => 1,
23*5759b3d2Safresh1        name  => 'the_test',
24*5759b3d2Safresh1    );
25*5759b3d2Safresh1    ok($ok->increments_count, "Bumps the count");
26*5759b3d2Safresh1    ok(!$ok->causes_fail, "Passing 'OK' event does not cause failure");
27*5759b3d2Safresh1    is($ok->pass, 1, "got pass");
28*5759b3d2Safresh1    is($ok->name, 'the_test', "got name");
29*5759b3d2Safresh1    is($ok->effective_pass, 1, "effective pass");
30*5759b3d2Safresh1    is($ok->summary, "the_test", "Summary is just the name of the test");
31*5759b3d2Safresh1
32*5759b3d2Safresh1    my $facet_data = $ok->facet_data;
33*5759b3d2Safresh1    ok($facet_data->{about}, "got common facet data");
34*5759b3d2Safresh1    ok(!$facet_data->{amnesty}, "No amnesty by default");
35*5759b3d2Safresh1    is_deeply(
36*5759b3d2Safresh1        $facet_data->{assert},
37*5759b3d2Safresh1        {
38*5759b3d2Safresh1            no_debug => 1,
39*5759b3d2Safresh1            pass => 1,
40*5759b3d2Safresh1            details => 'the_test',
41*5759b3d2Safresh1        },
42*5759b3d2Safresh1        "Got assert facet",
43*5759b3d2Safresh1    );
44*5759b3d2Safresh1
45*5759b3d2Safresh1
46*5759b3d2Safresh1    $ok = Test2::Event::Ok->new(
47*5759b3d2Safresh1        trace => $trace,
48*5759b3d2Safresh1        pass  => 1,
49*5759b3d2Safresh1        name  => '',
50*5759b3d2Safresh1    );
51*5759b3d2Safresh1    is($ok->summary, "Nameless Assertion", "Nameless test");
52*5759b3d2Safresh1
53*5759b3d2Safresh1    $facet_data = $ok->facet_data;
54*5759b3d2Safresh1    ok($facet_data->{about}, "got common facet data");
55*5759b3d2Safresh1    ok(!$facet_data->{amnesty}, "No amnesty by default");
56*5759b3d2Safresh1    is_deeply(
57*5759b3d2Safresh1        $facet_data->{assert},
58*5759b3d2Safresh1        {
59*5759b3d2Safresh1            no_debug => 1,
60*5759b3d2Safresh1            pass => 1,
61*5759b3d2Safresh1            details => '',
62*5759b3d2Safresh1        },
63*5759b3d2Safresh1        "Got assert facet",
64*5759b3d2Safresh1    );
65*5759b3d2Safresh1};
66*5759b3d2Safresh1
67*5759b3d2Safresh1tests Failing => sub {
68*5759b3d2Safresh1    local $ENV{HARNESS_ACTIVE} = 1;
69*5759b3d2Safresh1    local $ENV{HARNESS_IS_VERBOSE} = 1;
70*5759b3d2Safresh1    my $ok = Test2::Event::Ok->new(
71*5759b3d2Safresh1        trace => $trace,
72*5759b3d2Safresh1        pass  => 0,
73*5759b3d2Safresh1        name  => 'the_test',
74*5759b3d2Safresh1    );
75*5759b3d2Safresh1    ok($ok->increments_count, "Bumps the count");
76*5759b3d2Safresh1    ok($ok->causes_fail, "A failing test causes failures");
77*5759b3d2Safresh1    is($ok->pass, 0, "got pass");
78*5759b3d2Safresh1    is($ok->name, 'the_test', "got name");
79*5759b3d2Safresh1    is($ok->effective_pass, 0, "effective pass");
80*5759b3d2Safresh1    is($ok->summary, "the_test", "Summary is just the name of the test");
81*5759b3d2Safresh1
82*5759b3d2Safresh1    my $facet_data = $ok->facet_data;
83*5759b3d2Safresh1    ok($facet_data->{about}, "got common facet data");
84*5759b3d2Safresh1    ok(!$facet_data->{amnesty}, "No amnesty by default");
85*5759b3d2Safresh1    is_deeply(
86*5759b3d2Safresh1        $facet_data->{assert},
87*5759b3d2Safresh1        {
88*5759b3d2Safresh1            no_debug => 1,
89*5759b3d2Safresh1            pass => 0,
90*5759b3d2Safresh1            details => 'the_test',
91*5759b3d2Safresh1        },
92*5759b3d2Safresh1        "Got assert facet",
93*5759b3d2Safresh1    );
94*5759b3d2Safresh1};
95*5759b3d2Safresh1
96*5759b3d2Safresh1tests "Failing TODO" => sub {
97*5759b3d2Safresh1    local $ENV{HARNESS_ACTIVE} = 1;
98*5759b3d2Safresh1    local $ENV{HARNESS_IS_VERBOSE} = 1;
99*5759b3d2Safresh1    my $ok = Test2::Event::Ok->new(
100*5759b3d2Safresh1        trace => $trace,
101*5759b3d2Safresh1        pass  => 0,
102*5759b3d2Safresh1        name  => 'the_test',
103*5759b3d2Safresh1        todo  => 'A Todo',
104*5759b3d2Safresh1    );
105*5759b3d2Safresh1    ok($ok->increments_count, "Bumps the count");
106*5759b3d2Safresh1    is($ok->pass, 0, "got pass");
107*5759b3d2Safresh1    is($ok->name, 'the_test', "got name");
108*5759b3d2Safresh1    is($ok->effective_pass, 1, "effective pass is true from todo");
109*5759b3d2Safresh1    is($ok->summary, "the_test (TODO: A Todo)", "Summary is just the name of the test + todo");
110*5759b3d2Safresh1
111*5759b3d2Safresh1    my $facet_data = $ok->facet_data;
112*5759b3d2Safresh1    ok($facet_data->{about}, "got common facet data");
113*5759b3d2Safresh1    is_deeply(
114*5759b3d2Safresh1        $facet_data->{assert},
115*5759b3d2Safresh1        {
116*5759b3d2Safresh1            no_debug => 1,
117*5759b3d2Safresh1            pass => 0,
118*5759b3d2Safresh1            details => 'the_test',
119*5759b3d2Safresh1        },
120*5759b3d2Safresh1        "Got assert facet",
121*5759b3d2Safresh1    );
122*5759b3d2Safresh1    is_deeply(
123*5759b3d2Safresh1        $facet_data->{amnesty},
124*5759b3d2Safresh1        [{
125*5759b3d2Safresh1            tag => 'TODO',
126*5759b3d2Safresh1            details => 'A Todo',
127*5759b3d2Safresh1        }],
128*5759b3d2Safresh1        "Got amnesty facet",
129*5759b3d2Safresh1    );
130*5759b3d2Safresh1
131*5759b3d2Safresh1
132*5759b3d2Safresh1    $ok = Test2::Event::Ok->new(
133*5759b3d2Safresh1        trace => $trace,
134*5759b3d2Safresh1        pass  => 0,
135*5759b3d2Safresh1        name  => 'the_test2',
136*5759b3d2Safresh1        todo  => '',
137*5759b3d2Safresh1    );
138*5759b3d2Safresh1    ok($ok->effective_pass, "empty string todo is still a todo");
139*5759b3d2Safresh1    is($ok->summary, "the_test2 (TODO)", "Summary is just the name of the test + todo");
140*5759b3d2Safresh1
141*5759b3d2Safresh1    $facet_data = $ok->facet_data;
142*5759b3d2Safresh1    ok($facet_data->{about}, "got common facet data");
143*5759b3d2Safresh1    is_deeply(
144*5759b3d2Safresh1        $facet_data->{assert},
145*5759b3d2Safresh1        {
146*5759b3d2Safresh1            no_debug => 1,
147*5759b3d2Safresh1            pass => 0,
148*5759b3d2Safresh1            details => 'the_test2',
149*5759b3d2Safresh1        },
150*5759b3d2Safresh1        "Got assert facet",
151*5759b3d2Safresh1    );
152*5759b3d2Safresh1    is_deeply(
153*5759b3d2Safresh1        $facet_data->{amnesty},
154*5759b3d2Safresh1        [{
155*5759b3d2Safresh1            tag => 'TODO',
156*5759b3d2Safresh1            details => '',
157*5759b3d2Safresh1        }],
158*5759b3d2Safresh1        "Got amnesty facet",
159*5759b3d2Safresh1    );
160*5759b3d2Safresh1
161*5759b3d2Safresh1};
162*5759b3d2Safresh1
163*5759b3d2Safresh1tests init => sub {
164*5759b3d2Safresh1    my $ok = Test2::Event::Ok->new(
165*5759b3d2Safresh1        trace => $trace,
166*5759b3d2Safresh1        pass  => 1,
167*5759b3d2Safresh1    );
168*5759b3d2Safresh1    is($ok->effective_pass, 1, "set effective pass");
169*5759b3d2Safresh1};
170*5759b3d2Safresh1
171*5759b3d2Safresh1done_testing;
172