diff options
-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' } ); |