aboutsummaryrefslogtreecommitdiffstats
path: root/t/cobrand/tfl.t
diff options
context:
space:
mode:
Diffstat (limited to 't/cobrand/tfl.t')
-rw-r--r--t/cobrand/tfl.t80
1 files changed, 78 insertions, 2 deletions
diff --git a/t/cobrand/tfl.t b/t/cobrand/tfl.t
index b8e88a300..abfb924ff 100644
--- a/t/cobrand/tfl.t
+++ b/t/cobrand/tfl.t
@@ -9,6 +9,10 @@ END { FixMyStreet::App->log->enable('info'); }
my $mech = FixMyStreet::TestMech->new;
my $body = $mech->create_body_ok(2482, 'TfL');
+FixMyStreet::DB->resultset('BodyArea')->find_or_create({
+ area_id => 2483, # Hounslow
+ body_id => $body->id,
+});
my $superuser = $mech->create_user_ok('superuser@example.com', name => 'Super User', is_superuser => 1);
my $staffuser = $mech->create_user_ok('counciluser@example.com', name => 'Council User', from_body => $body, password => 'password');
$staffuser->user_body_permissions->create({
@@ -126,13 +130,39 @@ $contact4->set_extra_fields(
}
);
$contact4->update;
+my $contact5 = $mech->create_contact_ok(
+ body_id => $body->id,
+ category => 'Trees',
+ email => 'AOAT',
+);
+my $contact6 = $mech->create_contact_ok(
+ body_id => $body->id,
+ category => 'Grit bins',
+ email => 'AOAT,gritbins@example.com',
+);
FixMyStreet::override_config {
- ALLOWED_COBRANDS => 'tfl',
+ ALLOWED_COBRANDS => [ 'tfl', 'bromley', 'fixmystreet'],
MAPIT_URL => 'http://mapit.uk/',
- COBRAND_FEATURES => { internal_ips => { tfl => [ '127.0.0.1' ] } },
+ COBRAND_FEATURES => {
+ internal_ips => { tfl => [ '127.0.0.1' ] },
+ borough_email_addresses => { tfl => {
+ AOAT => [
+ {
+ email => 'hounslow@example.com',
+ areas => [ 2483 ],
+ },
+ {
+ email => 'bromley@example.com',
+ areas => [ 2482 ],
+ },
+ ],
+ } },
+ },
}, sub {
+$mech->host("tfl.fixmystreet.com");
+
subtest "test report creation and reference number" => sub {
$mech->log_in_ok( $user->email );
$mech->get_ok('/around');
@@ -233,6 +263,52 @@ subtest "change category, report resent to new location" => sub {
$mech->log_out_ok;
};
+for my $test (
+ [ 'BR1 3UH', 'tfl.fixmystreet.com', 'Trees', 'TfL <bromley@example.com>', 'Bromley borough team' ],
+ [ 'BR1 3UH', 'www.fixmystreet.com', 'Trees', 'TfL <bromley@example.com>', 'Bromley borough team' ],
+ [ 'BR1 3UH', 'bromley.fixmystreet.com', 'Trees', 'TfL <bromley@example.com>', 'Bromley borough team' ],
+ [ 'TW7 5JN', 'tfl.fixmystreet.com', 'Trees', 'TfL <hounslow@example.com>', 'Hounslow borough team' ],
+ [ 'TW7 5JN', 'www.fixmystreet.com', 'Trees', 'TfL <hounslow@example.com>', 'Hounslow borough team' ],
+ [ 'TW7 5JN', 'tfl.fixmystreet.com', 'Grit bins', 'TfL <hounslow@example.com>, TfL <gritbins@example.com>', 'Hounslow borough team and additional address' ],
+ [ 'TW7 5JN', 'www.fixmystreet.com', 'Grit bins', 'TfL <hounslow@example.com>, TfL <gritbins@example.com>', 'Hounslow borough team and additional address' ],
+) {
+ my ($postcode, $host, $category, $to, $name ) = @$test;
+ subtest "test report is sent to $name" => sub {
+ $mech->host($host);
+ $mech->log_in_ok( $user->email );
+ $mech->get_ok('/around');
+ $mech->submit_form_ok( { with_fields => { pc => $postcode, } }, "submit location" );
+ $mech->follow_link_ok( { text_regex => qr/skip this step/i, }, "follow 'skip this step' link" );
+ $mech->submit_form_ok(
+ {
+ with_fields => {
+ title => 'Test Report for borough team',
+ detail => 'Test report details.',
+ may_show_name => '1',
+ category => $category,
+ $host eq 'bromley.fixmystreet.com' ? (
+ fms_extra_title => 'DR',
+ first_name => "Joe",
+ last_name => "Bloggs",
+ ) : (
+ name => 'Joe Bloggs',
+ ),
+ }
+ },
+ "submit good details"
+ );
+
+ $mech->clear_emails_ok;
+ FixMyStreet::Script::Reports::send();
+ my @email = $mech->get_email;
+ is $email[0]->header('To'), $to, 'Sent to correct address';
+ $mech->clear_emails_ok;
+ FixMyStreet::DB->resultset("Problem")->find({ title => 'Test Report for borough team'})->delete;
+ };
+}
+
+$mech->host("tfl.fixmystreet.com");
+
subtest 'check lookup by reference' => sub {
my $id = FixMyStreet::DB->resultset("Problem")->first->id;