aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2018-09-24 11:04:45 +0100
committerDave Arter <davea@mysociety.org>2018-09-24 14:58:33 +0100
commitb37bdd35b6dbaab337091e61404e7b3b918679be (patch)
tree8968d065880722277016cd77acabb34bba8311bc
parentabfb8714a3e73a04cb9dc5ce28598e07c9219c00 (diff)
Add Blackhole send method
-rw-r--r--CHANGELOG.md1
-rw-r--r--perllib/FixMyStreet/SendReport/Blackhole.pm20
-rw-r--r--t/app/sendreport/blackhole.t42
3 files changed, 63 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f24b917e1..7723ab8a5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@
- Cobrand hook for disallowing title moderation. #2228
- Cobrand hook for per-questionnaire sending. #2231
- Add option for configuring memcache server.
+ - Add Blackhole send method. #2246
* v2.4 (6th September 2018)
- Security
diff --git a/perllib/FixMyStreet/SendReport/Blackhole.pm b/perllib/FixMyStreet/SendReport/Blackhole.pm
new file mode 100644
index 000000000..2c1a4fc8e
--- /dev/null
+++ b/perllib/FixMyStreet/SendReport/Blackhole.pm
@@ -0,0 +1,20 @@
+package FixMyStreet::SendReport::Blackhole;
+
+use Moo;
+
+BEGIN { extends 'FixMyStreet::SendReport'; }
+
+=head2 send
+
+Immediately marks the report as successfully sent, but doesn't actually send
+it anywhere.
+
+=cut
+
+sub send {
+ my $self = shift;
+ $self->success(1);
+ return 0;
+}
+
+1;
diff --git a/t/app/sendreport/blackhole.t b/t/app/sendreport/blackhole.t
new file mode 100644
index 000000000..4335f3675
--- /dev/null
+++ b/t/app/sendreport/blackhole.t
@@ -0,0 +1,42 @@
+use FixMyStreet;
+use FixMyStreet::DB;
+use FixMyStreet::TestMech;
+use FixMyStreet::Script::Reports;
+
+ok( my $mech = FixMyStreet::TestMech->new, 'Created mech object' );
+
+my $user = $mech->create_user_ok( 'user@example.com' );
+
+my $body = $mech->create_body_ok( 2551, 'Bath and North East Somerset Council');
+$body->update({ can_be_devolved => 1 });
+
+my $contact = $mech->create_contact_ok(
+ body_id => $body->id,
+ category => 'Play area safety issue',
+ email => 'test@example.org',
+ send_method => 'Blackhole',
+);
+
+my @reports = $mech->create_problems_for_body( 1, $body->id, 'Test', {
+ cobrand => 'bathnes',
+ category => $contact->category,
+ user => $user,
+});
+my $report = $reports[0];
+
+FixMyStreet::override_config {
+ STAGING_FLAGS => { send_reports => 1 },
+}, sub {
+ subtest "Report isn't sent anywhere" => sub {
+ $mech->clear_emails_ok;
+
+ FixMyStreet::Script::Reports::send();
+
+ ok $mech->email_count_is(0), "Report email wasn't sent";
+
+ $report->discard_changes;
+ ok $report->whensent, "Report has been marked as sent";
+ };
+};
+
+done_testing();