about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--scripts/trigger_hook57
1 files changed, 57 insertions, 0 deletions
diff --git a/scripts/trigger_hook b/scripts/trigger_hook
new file mode 100644
index 0000000..7c031af
--- /dev/null
+++ b/scripts/trigger_hook
@@ -0,0 +1,57 @@
+use strict;
+use warnings;
+
+use jitterbug;
+use jitterbug::Schema;
+
+use JSON;
+use YAML qw/LoadFile Dump/;
+
+use File::Spec;
+use File::Temp qw/tempdir/;
+
+use Dancer::Test;
+use Dancer::Config qw/setting/;
+
+my $content = LoadFile('t/data/test.yaml');
+
+my $db_file = File::Spec->catfile( qw/jitterbug.db/ );
+my $dsn     = 'dbi:SQLite:dbname=' . $db_file;
+my $schema  = jitterbug::Schema->connect($dsn);
+# assume we have a deployed schema
+# $schema->deploy;
+
+setting plugins => {
+    DBIC => {
+        schema => {
+            skip_automake => 1,
+            pckg          => "jitterbug::Schema",
+            connect_info  => [$dsn]
+        }
+    }
+};
+
+{
+    my $response = dancer_response(
+        POST => '/hook/',
+        {
+            headers =>
+              [ 'Content-Type' => 'application/x-www-form-urlencoded' ],
+            body => _generate_post_request($content),
+        }
+    );
+
+    printf "Response was: %s\n",  $response->{status};
+}
+
+sub _generate_post_request {
+    my $content = shift;
+    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;
+    return $payload;
+}
+