diff options
Diffstat (limited to 't/app/model/questionnaire.t')
-rw-r--r-- | t/app/model/questionnaire.t | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/t/app/model/questionnaire.t b/t/app/model/questionnaire.t index 169895f95..d01185375 100644 --- a/t/app/model/questionnaire.t +++ b/t/app/model/questionnaire.t @@ -1,3 +1,14 @@ +package FixMyStreet::Cobrand::Tester; + +use parent 'FixMyStreet::Cobrand::Default'; + +sub send_questionnaire { + my ($self, $row) = @_; + return $row->latitude == 1; +} + +package main; + use FixMyStreet; use FixMyStreet::TestMech; @@ -27,7 +38,7 @@ my $problem = FixMyStreet::DB->resultset('Problem')->create( my $mech = FixMyStreet::TestMech->new; -for my $test ( +for my $test ( { state => 'unconfirmed', send_email => 0, @@ -89,7 +100,7 @@ for my $test ( send_email => 1, }, ) { - subtest "correct questionnaire behviour for state $test->{state}" => sub { + subtest "correct questionnaire behaviour for state $test->{state}" => sub { $problem->discard_changes; $problem->state( $test->{state} ); $problem->send_questionnaire( 1 ); @@ -108,4 +119,28 @@ for my $test ( } } +for my $test ( + { latitude => 2, emails => 0, }, + { latitude => 1, emails => 1, }, +) { + subtest "test cobrand questionnaire send override, expecting $test->{emails} email" => sub { + FixMyStreet::override_config { + ALLOWED_COBRANDS => 'tester', + }, sub { + $problem->latitude($test->{latitude}); + $problem->send_questionnaire(1); + $problem->update; + $problem->questionnaires->delete; + + $mech->email_count_is(0); + FixMyStreet::DB->resultset('Questionnaire')->send_questionnaires( { site => 'tester' } ); + $mech->email_count_is($test->{emails}); + $mech->clear_emails_ok(); + + $problem->discard_changes; + is $problem->send_questionnaire, 0; + }; + }; +} + done_testing(); |