97f8372d3dada12dd9ef7ac442700e53f70ea6ac
[gitmo/Eval-Closure.git] / t / 03-description.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More;
5 use Test::Fatal;
6
7 use Eval::Closure;
8
9 my $source = <<'SOURCE';
10 sub {
11     Carp::confess("foo")
12 }
13 SOURCE
14
15 {
16     my $code = eval_closure(
17         source => $source,
18     );
19
20     like(
21         exception { $code->() },
22         qr/^foo at \(eval \d+\) line \d+\n/,
23         "no location info if context isn't passed"
24     );
25 }
26
27 {
28     my $code = eval_closure(
29         source      => $source,
30         description => 'accessor foo (defined at Class.pm line 282)',
31     );
32
33     like(
34         exception { $code->() },
35         qr/^foo at accessor foo \(defined at Class\.pm line 282\) line 2\n/,
36         "description is set"
37     );
38 }
39
40 done_testing;