The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use utf8;
use Test::More;
use Plack::Test;
use Test::Requires qw/HTTP::Request::Common/, 'Data::Section::Simple';

my $app = do {
    use Amon2::Lite;

    get '/' => sub { shift->create_response(200, ['Content-Length' => 2], ['OK']) };

    __PACKAGE__->to_app(
        handle_static => 1,
    );
};

test_psgi($app, sub {
    my $cb = shift;

    {
        my $res = $cb->(GET '/');
        is $res->code, 200;
        is $res->content, 'OK';
        is $res->content_length, 2;
    }

    subtest '/static/foo' => sub {
        my $res = $cb->(GET '/static/foo');
        is $res->code, 200;
        is $res->content, "bar\n";
        is $res->content_length, 4;
    };

    {
        my $res = $cb->(GET '/robots.txt');
        is $res->code, 200;
        is $res->content, "DENY *\n";
        is $res->content_length, 7;
    }
    {
        my $res = $cb->(GET '/static/foo.js');
        like $res->content, qr/function/;
        is $res->content_length, 20;
        is $res->content_type, 'application/javascript';
    }
});

done_testing;
__DATA__

@@ /static/foo.js
$(function () { });