summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-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;
+}
+