diff options
Diffstat (limited to 't/003_hook_route.t')
-rw-r--r-- | t/003_hook_route.t | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/t/003_hook_route.t b/t/003_hook_route.t new file mode 100644 index 0000000..8d9a4cf --- /dev/null +++ b/t/003_hook_route.t @@ -0,0 +1,43 @@ +use Test::More tests => 4; +use strict; +use warnings; + +use jitterbug; +use JSON; +use YAML qw/LoadFile/; +use Dancer::Test; +use Dancer::Config qw/setting/; + +my $content = LoadFile('t/data/test.yaml'); + +setting jitterbug => { namespace => 'jitterbug_test' }; + +route_exists [ POST => '/hook/' ], 'a route handle is defined for /'; + +my $response; + +{ + $response = dancer_response( POST => '/hook', ); + is $response->{status}, 200, '200 with empty post'; +} + +{ + my $payload = "payload=" . JSON::encode_json($content); + open my $in, '<', \$payload; + + $ENV{'CONTENT_LENGTH'} = length($payload); + $ENV{'CONTENT_TYPE'} = 'application/x-www-form-urlencoded'; + $ENV{'psgi.input'} = $in; + + $response = dancer_response( + POST => '/hook/', + { + headers => [ 'Content-Length' => length($payload) ], + body => $payload + } + ); + + is $response->{status}, 200; + is_deeply JSON::decode_json( $response->{content} ), + { updated => 'Dancer' }; +} |