aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2011-11-30 12:15:07 +0000
committerStruan Donald <struan@exo.org.uk>2011-11-30 12:15:07 +0000
commit783601d101ad0ff356921c2f3af0e8b3b9d6e24e (patch)
treeb1f1b45312a7cb6d1d8ce53d66de1a2f02c93b1f
parent9bbfba9902640172ca9f6fedd762d6e9e5be8a22 (diff)
tests for postcode in alert emails
-rw-r--r--t/app/model/alert_type.t69
1 files changed, 69 insertions, 0 deletions
diff --git a/t/app/model/alert_type.t b/t/app/model/alert_type.t
index c7bfe171c..e88aeea5f 100644
--- a/t/app/model/alert_type.t
+++ b/t/app/model/alert_type.t
@@ -140,5 +140,74 @@ for my $test (
};
}
+my $now = DateTime->now();
+$report->confirmed( $now->ymd . ' ' . $now->hms );
+$report->update();
+
+my $council_alert = FixMyStreet::App->model('DB::Alert')->find_or_create(
+ {
+ user => $user2,
+ parameter => 2504,
+ parameter2 => 2504,
+ alert_type => 'council_problems',
+ whensubscribed => $dt->ymd . ' ' . $dt->hms,
+ confirmed => 1,
+ }
+);
+
+for my $test (
+ {
+ postcode => 'SW1A 1AA',
+ expected_postcode => 'SW1A 1AA',
+ },
+ {
+ postcode => 'sw1a 1AA',
+ expected_postcode => 'SW1A 1AA',
+ },
+ {
+ postcode => 'SW1A 1aa',
+ expected_postcode => 'SW1A 1AA',
+ },
+ {
+ postcode => 'SW1A1AA',
+ expected_postcode => 'SW1A 1AA',
+ },
+ {
+ postcode => 'Buckingham Gate',
+ expected_postcode => 'Buckingham Gate',
+ },
+ {
+ postcode => 'Buckingham gate',
+ expected_postcode => 'Buckingham gate',
+ },
+) {
+ subtest "correct text for postcode $test->{postcode}" => sub {
+ $mech->clear_emails_ok;
+
+ my $sent = FixMyStreet::App->model('DB::AlertSent')->search(
+ {
+ alert_id => $council_alert->id,
+ parameter => $report->id,
+ }
+ )->delete;
+
+ $report->postcode( $test->{postcode} );
+ $report->update;
+
+ FixMyStreet::App->model('DB::AlertType')->email_alerts();
+
+ $mech->email_count_is( 1 );
+ my $email = $mech->get_email;
+ my $pc = $test->{expected_postcode};
+ my $title = $report->title;
+ my $body = $email->body;
+
+ like $body, qr#report/$report_id - $title, $pc#, 'email contains expected postcode';
+ };
+}
+
+$report->postcode( 'SW1A 1AA' );
+$report->update;
+
done_testing();