aboutsummaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/app/controller/report_new_open311.t53
-rw-r--r--t/cobrand/bexley.t53
2 files changed, 89 insertions, 17 deletions
diff --git a/t/app/controller/report_new_open311.t b/t/app/controller/report_new_open311.t
index 264198052..3488b96ce 100644
--- a/t/app/controller/report_new_open311.t
+++ b/t/app/controller/report_new_open311.t
@@ -67,6 +67,23 @@ $mech->create_contact_ok(
category => 'Something Other',
email => '104',
);
+$mech->create_contact_ok(
+ body_id => $body2->id, # Edinburgh
+ category => 'Abandoned vehicle',
+ email => '105',
+ extra => { _fields => [
+ { description => 'This is a warning message.', code => 'notice', required => 'false', variable => 'false', order => '0' },
+ { description => 'USRN', code => 'usrn', required => 'false', automated => 'hidden_field' },
+ ] },
+);
+$mech->create_contact_ok(
+ body_id => $body2->id, # Edinburgh
+ category => 'Traffic signals',
+ email => '106',
+ extra => { _fields => [
+ { description => 'This is a warning message for traffic signals.', code => 'notice', required => 'false', variable => 'false', order => '0' },
+ ] },
+);
my $staff_user = $mech->create_user_ok('staff@example.org', name => 'staff', from_body => $body->id);
@@ -283,6 +300,42 @@ subtest "Category extras omits description label when all fields are hidden" =>
};
};
+subtest "Category extras omits preamble when all fields are notices" => sub {
+ FixMyStreet::override_config {
+ ALLOWED_COBRANDS => [ { fixmystreet => '.' } ],
+ MAPIT_URL => 'http://mapit.uk/',
+ }, sub {
+ for (
+ { url => '/report/new/ajax?' },
+ { url => '/report/new/category_extras?category=Traffic+signals' },
+ ) {
+ my $json = $mech->get_ok_json($_->{url} . '&latitude=55.952055&longitude=-3.189579');
+ my $category_extra = $json->{by_category} ? $json->{by_category}{'Traffic signals'}{category_extra} : $json->{category_extra};
+ contains_string($category_extra, "This is a warning message for traffic signals.");
+ lacks_string($category_extra, "resolve your problem quicker, by providing some extra detail", "Lacks description text");
+ }
+ };
+};
+
+subtest "Category extras omits preamble when fields are only notices and hidden" => sub {
+ FixMyStreet::override_config {
+ ALLOWED_COBRANDS => [ { fixmystreet => '.' } ],
+ MAPIT_URL => 'http://mapit.uk/',
+ }, sub {
+ for (
+ { url => '/report/new/ajax?' },
+ { url => '/report/new/category_extras?category=Abandoned+vehicle' },
+ ) {
+ my $json = $mech->get_ok_json($_->{url} . '&latitude=55.952055&longitude=-3.189579');
+ my $category_extra = $json->{by_category} ? $json->{by_category}{'Abandoned vehicle'}{category_extra} : $json->{category_extra};
+ contains_string($category_extra, "This is a warning message.");
+ contains_string($category_extra, "usrn");
+ lacks_string($category_extra, "USRN", "Lacks 'USRN' label");
+ lacks_string($category_extra, "resolve your problem quicker, by providing some extra detail", "Lacks description text");
+ }
+ };
+};
+
subtest "Category extras includes description label for user" => sub {
FixMyStreet::override_config {
ALLOWED_COBRANDS => [ { fixmystreet => '.' } ],
diff --git a/t/cobrand/bexley.t b/t/cobrand/bexley.t
index d9b41f3b1..d7e996e0d 100644
--- a/t/cobrand/bexley.t
+++ b/t/cobrand/bexley.t
@@ -35,9 +35,10 @@ my $mech = FixMyStreet::TestMech->new;
my $body = $mech->create_body_ok(2494, 'London Borough of Bexley', {
send_method => 'Open311', api_key => 'key', 'endpoint' => 'e', 'jurisdiction' => 'j' });
$mech->create_contact_ok(body_id => $body->id, category => 'Abandoned and untaxed vehicles', email => "ABAN");
-$mech->create_contact_ok(body_id => $body->id, category => 'Lamp post', email => "LAMP");
-$mech->create_contact_ok(body_id => $body->id, category => 'Parks and open spaces', email => "ConfirmPARK");
-$mech->create_contact_ok(body_id => $body->id, category => 'Flooding in the road', email => "FLOD");
+$mech->create_contact_ok(body_id => $body->id, category => 'Lamp post', email => "StreetLightingLAMP");
+$mech->create_contact_ok(body_id => $body->id, category => 'Gulley covers', email => "GULL");
+$mech->create_contact_ok(body_id => $body->id, category => 'Damaged road', email => "ROAD");
+$mech->create_contact_ok(body_id => $body->id, category => 'Flooding in the road', email => "ConfirmFLOD");
$mech->create_contact_ok(body_id => $body->id, category => 'Flytipping', email => "UniformFLY");
$mech->create_contact_ok(body_id => $body->id, category => 'Dead animal', email => "ANIM");
my $category = $mech->create_contact_ok(body_id => $body->id, category => 'Something dangerous', email => "DANG");
@@ -79,23 +80,22 @@ FixMyStreet::override_config {
extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'Yes' } },
{ category => 'Something dangerous', code => 'DANG',
extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'No' } },
- { category => 'Parks and open spaces', email => ['p1'], code => 'ConfirmPARK',
- extra => { 'name' => 'reportType', description => 'Type of report', 'value' => 'Wild animal' } },
- { category => 'Parks and open spaces', code => 'ConfirmPARK',
- extra => { 'name' => 'reportType', description => 'Type of report', 'value' => 'Maintenance' } },
- { category => 'Parks and open spaces', code => 'ConfirmPARK',
+ { category => 'Gulley covers', email => ['p1'], code => 'GULL',
+ extra => { 'name' => 'reportType', description => 'Type of report', 'value' => 'Cover missing' } },
+ { category => 'Gulley covers', code => 'GULL',
+ extra => { 'name' => 'reportType', description => 'Type of report', 'value' => 'Cover damaged' } },
+ { category => 'Gulley covers', email => ['p1'], code => 'GULL',
extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'Yes' } },
- { category => 'Parks and open spaces', email => ['p1'], code => 'ConfirmPARK',
- extra => [
- { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'Yes' },
- { 'name' => 'reportType', description => 'Type of report', 'value' => 'Vandalism' },
- ] },
- { category => 'Lamp post', code => 'LAMP', email => ['thirdparty', 'another'],
+ { category => 'Damaged road', code => 'ROAD', email => ['p1'],
extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'No' } },
- { category => 'Lamp post', code => 'LAMP', email => ['thirdparty', 'another'],
+ { category => 'Damaged road', code => 'ROAD', email => ['p1'],
+ extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'Yes' } },
+ { category => 'Lamp post', code => 'StreetLightingLAMP', email => ['thirdparty', 'another'],
+ extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'No' } },
+ { category => 'Lamp post', code => 'StreetLightingLAMP', email => ['thirdparty', 'another'],
extra => { 'name' => 'dangerous', description => 'Was it dangerous?', 'value' => 'Yes' } },
{ category => 'Flytipping', code => 'UniformFLY', email => ['eh'] },
- { category => 'Flooding in the road', code => 'FLOD', email => ['flooding'] },
+ { category => 'Flooding in the road', code => 'ConfirmFLOD', email => ['flooding'] },
) {
($report) = $mech->create_problems_for_body(1, $body->id, 'On Road', {
category => $test->{category}, cobrand => 'bexley',
@@ -146,6 +146,25 @@ FixMyStreet::override_config {
$mech->content_lacks('Resend report');
};
+ subtest "resending of reports by changing category" => sub {
+ $mech->get_ok('/admin/report_edit/' . $report->id);
+ $mech->submit_form_ok({ with_fields => { category => 'Damaged road' } });
+ my $test_data = FixMyStreet::Script::Reports::send();
+ my $req = $test_data->{test_req_used};
+ my $c = CGI::Simple->new($req->content);
+ is $c->param('service_code'), 'ROAD', 'Report resent in new category';
+
+ $mech->submit_form_ok({ with_fields => { category => 'Gulley covers' } });
+ $test_data = FixMyStreet::Script::Reports::send();
+ is $test_data, undef, 'Report not resent';
+
+ $mech->submit_form_ok({ with_fields => { category => 'Lamp post' } });
+ $test_data = FixMyStreet::Script::Reports::send();
+ $req = $test_data->{test_req_used};
+ $c = CGI::Simple->new($req->content);
+ is $c->param('service_code'), 'StreetLightingLAMP', 'Report resent';
+ };
+
subtest 'extra CSV column present' => sub {
$mech->get_ok('/dashboard?export=1');
$mech->content_contains(',Category,Subcategory,');
@@ -155,7 +174,7 @@ FixMyStreet::override_config {
subtest 'testing special Open311 behaviour', sub {
my @reports = $mech->create_problems_for_body( 1, $body->id, 'Test', {
- category => 'Parks and open spaces', cobrand => 'bexley',
+ category => 'Flooding in the road', cobrand => 'bexley',
latitude => 51.408484, longitude => 0.074653, areas => '2494',
photo => '74e3362283b6ef0c48686fb0e161da4043bbcc97.jpeg,74e3362283b6ef0c48686fb0e161da4043bbcc97.jpeg',
});