diff options
author | Dave Arter <davea@mysociety.org> | 2019-12-13 10:39:50 +0000 |
---|---|---|
committer | Dave Arter <davea@mysociety.org> | 2019-12-17 10:59:55 +0000 |
commit | ea56a97b90235ff5702840ff7b2d8f209bedfc13 (patch) | |
tree | fa5d8f07189c8a187640423cb85691ab55591257 /t/app/controller | |
parent | 874e26c3b564424c8dcf677886cf1d54ab2ea70b (diff) |
Store staff user when staff make anonymous report.
If a staff user uses the anonymous button, it does not otherwise record
which staff user did that; using Report As would store their user as the
report's user.
Diffstat (limited to 't/app/controller')
-rw-r--r-- | t/app/controller/report_as_other.t | 24 | ||||
-rw-r--r-- | t/app/controller/report_new_anon.t | 1 |
2 files changed, 25 insertions, 0 deletions
diff --git a/t/app/controller/report_as_other.t b/t/app/controller/report_as_other.t index dab50afa1..a07a903ff 100644 --- a/t/app/controller/report_as_other.t +++ b/t/app/controller/report_as_other.t @@ -167,6 +167,8 @@ subtest "Superuser, can add report as anonymous user" => sub { is $report->user->name, 'Super', 'user name unchanged'; is $report->user->id, $user->id, 'user matches'; is $report->anonymous, 1, 'report anonymous'; + is $report->get_extra_metadata('contributed_as'), 'anonymous_user'; + is $report->get_extra_metadata('contributed_by'), undef; my $send_confirmation_mail_override = Sub::Override->new( "FixMyStreet::Cobrand::Default::report_sent_confirmation_email", @@ -182,6 +184,28 @@ subtest "Superuser, can add report as anonymous user" => sub { $mech->log_in_ok($test_email); }; +subtest "Body user, can add report as anonymous user" => sub { + FixMyStreet::Script::Reports::send(); + $mech->clear_emails_ok; + + my $user = $mech->log_in_ok($user->email); + my $report = add_report( + 'contribute_as_anonymous_user', + form_as => 'anonymous_user', + title => "Test Report", + detail => 'Test report details.', + category => 'Street lighting', + ); + is $report->name, $body->name, 'report name is OK'; + is $report->user->name, 'Body User', 'user name unchanged'; + is $report->user->id, $user->id, 'user matches'; + is $report->anonymous, 1, 'report anonymous'; + is $report->get_extra_metadata('contributed_as'), 'anonymous_user'; + is $report->get_extra_metadata('contributed_by'), $user->id; + + $mech->log_in_ok($test_email); +}; + subtest "Body user, has permission to add update as council" => sub { my $update = add_update( 'contribute_as_body', diff --git a/t/app/controller/report_new_anon.t b/t/app/controller/report_new_anon.t index bd73a2b70..b14814f59 100644 --- a/t/app/controller/report_new_anon.t +++ b/t/app/controller/report_new_anon.t @@ -202,6 +202,7 @@ subtest "test report creation anonymously by staff user" => sub { is $report->name, 'Anonymous Button'; is $report->anonymous, 1; is $report->get_extra_metadata('contributed_as'), 'anonymous_user'; + is $report->get_extra_metadata('contributed_by'), $staffuser->id; my $alert = FixMyStreet::DB->resultset('Alert')->find( { user => $report->user, |