File: prepare_app.t

package info (click to toggle)
libdancer2-perl 0.207000%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,460 kB
  • sloc: perl: 8,069; makefile: 7
file content (57 lines) | stat: -rw-r--r-- 1,160 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
use strict;
use warnings;
use Plack::Test;
use HTTP::Request::Common;
use Test::More 'tests' => 2;
use Capture::Tiny qw< capture_stderr capture_merged >;

{
    package App;
    use Dancer2;
    sub prepare_app {1}
    get '/' => sub {'OK'};
}

{
    package Bar;
    use Dancer2 'appname' => 'App';
    sub prepare_app {2}
    get '/' => sub {'OK'};
}

my $msg = qr{
    ^ WARNING: \s You \s have \s a \s subroutine \s in \s your
    \s app \s called \s 'prepare_app' \.
    \s In \s the \s future \s this \s will \s automatically
    \s be \s called \s by \s Dancer2 \.
}xms;

subtest 'App' => sub {
    my $app;
    like(
        capture_stderr { $app = App->to_app; },
        $msg,
        'Got warning on prepare_app sub',
    );

    my $test = Plack::Test->create($app);
    my $res;
    my $out;
    capture_merged { $res = $test->request( GET '/' )->content },
    is(
        $res,
        'OK',
        'Correct content',
    );

    is( $out, undef, 'No extra warnings or output' );
};

subtest 'Bar' => sub {
    my $app;
    like(
        capture_stderr { $app = Bar->to_app; },
        $msg,
        'Got warning on prepare_app sub',
    );
};