1use strict; 2use warnings; 3 4use Test2::Tools::Tiny; 5 6use Test2::API qw/run_subtest intercept/; 7 8my $events = intercept { 9 todo 'testing todo', sub { 10 run_subtest( 11 'fails in todo', 12 sub { 13 ok(1, 'first passes'); 14 ok(0, 'second fails'); 15 } 16 ); 17 }; 18}; 19 20ok($events->[1], 'Test2::Event::Subtest', 'subtest ran'); 21ok($events->[1]->effective_pass, 'Test2::Event::Subtest', 'subtest effective_pass is true'); 22ok($events->[1]->todo, 'testing todo', 'subtest todo is set to expected value'); 23 24my $subevents = $events->[1]->subevents; 25 26is(scalar @$subevents, 3, 'got subevents in the subtest'); 27 28ok($subevents->[0]->facets->{assert}->pass, 'first event passed'); 29 30ok(!$subevents->[1]->facets->{assert}->pass, 'second event failed'); 31ok(!$subevents->[1]->causes_fail, 'second event does not cause failure'); 32 33done_testing; 34