summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--t/002_index_route.t12
-rw-r--r--t/003_hook_route.t43
-rw-r--r--t/004_project.t16
3 files changed, 67 insertions, 4 deletions
diff --git a/t/002_index_route.t b/t/002_index_route.t
index d2ff83e..88b1d05 100644
--- a/t/002_index_route.t
+++ b/t/002_index_route.t
@@ -1,11 +1,15 @@
-use Test::More tests => 3;
+use Test::More tests => 4;
 use strict;
 use warnings;
 
 # the order is important
 use jitterbug;
 use Dancer::Test;
+use Dancer::Config qw/setting/;
 
-route_exists [GET => '/'], 'a route handler is defined for /';
-response_status_is ['GET' => '/'], 200, 'response status is 200 for /';
-response_content_like [GET => '/'], qr/Dashboard/, 'content looks OK for /';
+setting jitterbug => {namespace => 'jitterbug_test'};
+
+route_exists          [ GET => '/' ], 'a route handler is defined for /';
+response_status_is    [ GET => '/' ], 200, 'response status is 200 for /';
+response_content_like [ GET => '/' ], qr/Dashboard/, 'content looks OK for /';
+response_content_like [ GET => '/' ], qr/Repositories \(0\)/, 'no repositories';
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' };
+}
diff --git a/t/004_project.t b/t/004_project.t
new file mode 100644
index 0000000..ff0b226
--- /dev/null
+++ b/t/004_project.t
@@ -0,0 +1,16 @@
+use Test::More tests => 1;
+use strict;
+use warnings;
+
+use jitterbug;
+use Dancer::Test;
+use Dancer::Config qw/setting/;
+
+setting jitterbug => {namespace => 'jitterbug_test'};
+
+my $response;
+
+{
+    $response = dancer_response(GET => '/project/Dancer');
+    is $response->{status}, 200;
+}