diff options
author | Matthew Somerville <matthew@mysociety.org> | 2020-02-10 13:13:42 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2020-02-24 09:52:47 +0000 |
commit | f312a56abb68f0cc3d5b554f259968d7a174a14a (patch) | |
tree | 4fd7fe5b3b741cdc4db9052ce98456a0635143d8 /t | |
parent | 38ac8f605f4eeb7aa53859bd5b455a1cfe81ff73 (diff) |
[TfL] Allow bus stop reports outside London.
After this change, you can safely add the TfL body to other councils
(namely the ones surrounding London that include TfL bus stops);
clicking in those councils on other cobrands will have no change, as the
TfL body will be fully ignored on a non-London council, but on the TfL
cobrand it will allow it for e.g. the selection of bus stops outside
London.
It removes the body rather than just all its categories to prevent a "We
do not have details of the other body covering this area" message
appearing.
Diffstat (limited to 't')
-rw-r--r-- | t/Mock/MapIt.pm | 1 | ||||
-rw-r--r-- | t/cobrand/tfl.t | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/t/Mock/MapIt.pm b/t/Mock/MapIt.pm index 7dafb7af5..d50ebdc1d 100644 --- a/t/Mock/MapIt.pm +++ b/t/Mock/MapIt.pm @@ -46,6 +46,7 @@ my @PLACES = ( [ 'TW7 5JN', 51.482286, -0.328163, 2483, 'Hounslow Borough Council', 'LBO' ], [ '?', 51.48111, -0.327219, 2483, 'Hounslow Borough Council', 'LBO' ], [ '?', 51.482045, -0.327219, 2483, 'Hounslow Borough Council', 'LBO' ], + [ '?', 51.345714, -0.227959, 2457, 'Epsom and Ewell Borough Council', 'DIS' ], [ 'CW11 1HZ', 53.145324, -2.370437, 21069, 'Cheshire East Council', 'UTA', 135301, 'Sandbach Town', 'UTW' ], [ '?', 50.78301, -0.646929 ], [ 'TA1 1QP', 51.023569, -3.099055, 2239, 'Somerset County Council', 'CTY', 2429, 'Taunton Deane Borough Council', 'DIS' ], diff --git a/t/cobrand/tfl.t b/t/cobrand/tfl.t index cdf3b1bab..8ddc3d671 100644 --- a/t/cobrand/tfl.t +++ b/t/cobrand/tfl.t @@ -19,6 +19,10 @@ FixMyStreet::DB->resultset('BodyArea')->find_or_create({ area_id => 2483, # Hounslow body_id => $body->id, }); +FixMyStreet::DB->resultset('BodyArea')->find_or_create({ + area_id => 2457, # Epsom Ewell, outside London, for bus stop test + 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({ @@ -341,6 +345,40 @@ subtest "test report creation and reference number" => sub { is $report->bodies_str, $body->id; is $report->name, 'Joe Bloggs'; +}; + +subtest "test bus report creation outside London, .com" => sub { + $mech->host('www.fixmystreet.com'); + $mech->get_ok('/report/new?latitude=51.345714&longitude=-0.227959'); + $mech->content_lacks('Bus things'); + $mech->host('tfl.fixmystreet.com'); +}; + +subtest "test bus report creation outside London" => sub { + $mech->get_ok('/report/new?latitude=51.345714&longitude=-0.227959'); + $mech->submit_form_ok( + { + with_fields => { + # A bus stop in East Ewell + latitude => 51.345714, + longitude => -0.227959, + title => 'Test outwith London', + detail => 'Test report details.', + name => 'Joe Bloggs', + may_show_name => '1', + category => 'Bus stops', + } + }, + "submit good details" + ); + $mech->content_contains('Your issue is on its way to Transport for London'); + is_deeply $mech->page_errors, [], "check there were no errors"; + + my $report = FixMyStreet::DB->resultset("Problem")->find({ title => 'Test outwith London'}); + ok $report, "Found the report"; + is $report->state, 'confirmed', "report confirmed"; + is $report->bodies_str, $body->id; + $report->delete; $mech->log_out_ok; }; |