diff options
author | Dave Arter <davea@mysociety.org> | 2018-09-24 11:04:45 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2018-09-24 14:58:33 +0100 |
commit | b37bdd35b6dbaab337091e61404e7b3b918679be (patch) | |
tree | 8968d065880722277016cd77acabb34bba8311bc | |
parent | abfb8714a3e73a04cb9dc5ce28598e07c9219c00 (diff) |
Add Blackhole send method
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | perllib/FixMyStreet/SendReport/Blackhole.pm | 20 | ||||
-rw-r--r-- | t/app/sendreport/blackhole.t | 42 |
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(); |