diff options
author | Dave Arter <davea@mysociety.org> | 2018-10-25 13:03:22 +0100 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2018-10-26 09:53:44 +0100 |
commit | 0b127a05a982eca9de214ce2d524b244e8c934ec (patch) | |
tree | 7c59fb0e8142f7410cedb28aa2b7d6ff9461fbb6 /t | |
parent | d20ccf50a1cd7f844316d3db8809db74d813152b (diff) |
Don’t send questionnaires for closed reports.
Fixes mysociety/fixmystreet-freshdesk#24.
Diffstat (limited to 't')
-rw-r--r-- | t/app/controller/questionnaire.t | 20 | ||||
-rw-r--r-- | t/app/model/questionnaire.t | 9 |
2 files changed, 25 insertions, 4 deletions
diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t index bfc61ae17..05aed7262 100644 --- a/t/app/controller/questionnaire.t +++ b/t/app/controller/questionnaire.t @@ -40,6 +40,26 @@ my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( my $report_id = $report->id; ok $report, "created test report - $report_id"; +# Make sure questionnaires aren't sent if the report is closed. +foreach my $state ( + 'closed', 'duplicate', 'not responsible', 'unable to fix', 'internal referral' +) { + subtest "questionnaire not sent for $state state" => sub { + $report->update( { send_questionnaire => 1, state => $state } ); + $report->questionnaires->delete; + FixMyStreet::App->model('DB::Questionnaire')->send_questionnaires( { + site => 'fixmystreet' + } ); + + $mech->email_count_is(0); + + $report->discard_changes; + is $report->send_questionnaire, 0; + } +} +$report->update( { send_questionnaire => 1, state => 'confirmed' } ); +$report->questionnaires->delete; + # Call the questionaire sending function... FixMyStreet::App->model('DB::Questionnaire')->send_questionnaires( { site => 'fixmystreet' diff --git a/t/app/model/questionnaire.t b/t/app/model/questionnaire.t index d01185375..aa684a68c 100644 --- a/t/app/model/questionnaire.t +++ b/t/app/model/questionnaire.t @@ -85,19 +85,19 @@ for my $test ( }, { state => 'duplicate', - send_email => 1, + send_email => 0, }, { state => 'unable to fix', - send_email => 1, + send_email => 0, }, { state => 'not responsible', - send_email => 1, + send_email => 0, }, { state => 'closed', - send_email => 1, + send_email => 0, }, ) { subtest "correct questionnaire behaviour for state $test->{state}" => sub { @@ -129,6 +129,7 @@ for my $test ( }, sub { $problem->latitude($test->{latitude}); $problem->send_questionnaire(1); + $problem->state('confirmed'); $problem->update; $problem->questionnaires->delete; |