diff options
author | M Somerville <matthew-github@dracos.co.uk> | 2020-11-10 14:53:48 +0000 |
---|---|---|
committer | M Somerville <matthew-github@dracos.co.uk> | 2020-11-10 14:53:48 +0000 |
commit | 808f4d7c18f2c3a1b776900820e604d896072499 (patch) | |
tree | 2bc9c91d401f1edaf145b7127fb3d84ba53f5752 | |
parent | 6f6a65c8d2076cc20c11ae290c9603ea3c4fe41c (diff) |
[Highways England] Added test for config reading.
-rw-r--r-- | perllib/FixMyStreet/SendReport/Email/Highways.pm | 7 | ||||
-rw-r--r-- | t/app/sendreport/email/highways.t | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/perllib/FixMyStreet/SendReport/Email/Highways.pm b/perllib/FixMyStreet/SendReport/Email/Highways.pm index 918ac896d..3ace07b6a 100644 --- a/perllib/FixMyStreet/SendReport/Email/Highways.pm +++ b/perllib/FixMyStreet/SendReport/Email/Highways.pm @@ -12,8 +12,13 @@ sub build_recipient_list { my $contact = $self->fetch_category($body, $row) or return; my $email = $contact->email; my $area_name = $row->get_extra_field_value('area_name') || ''; + + # config is read-only, so must step through one-by-one to prevent + # vivification my $area_email = FixMyStreet->config('COBRAND_FEATURES') || {}; - $area_email = $area_email->{open311_email}->{highwaysengland}->{$area_name}; + $area_email = $area_email->{open311_email} || {}; + $area_email = $area_email->{highwaysengland} || {}; + $area_email = $area_email->{$area_name}; $email = $area_email if $area_email; @{$self->to} = map { [ $_, $body->name ] } split /,/, $email; diff --git a/t/app/sendreport/email/highways.t b/t/app/sendreport/email/highways.t index 22913a7e6..6f6c65eb5 100644 --- a/t/app/sendreport/email/highways.t +++ b/t/app/sendreport/email/highways.t @@ -34,6 +34,14 @@ is $e->build_recipient_list($row), 1, 'correct recipient list count'; is_deeply $e->to, [ [ 'highways@example.com', 'Highways England' ] ], 'correct To line'; FixMyStreet::override_config { + COBRAND_FEATURES => {} +}, sub { + $row->set_extra_fields( { name => 'area_name', value => 'Area 7' } ); + is $e->build_recipient_list($row), 1, 'correct recipient list count'; + is_deeply $e->to, [ [ 'highways@example.com', 'Highways England' ] ], 'correct To line'; +}; + +FixMyStreet::override_config { COBRAND_FEATURES => { open311_email => { highwaysengland => { 'Area 7' => 'a7@example.com' } } } }, sub { $row->set_extra_fields( { name => 'area_name', value => 'Area 7' } ); |