aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller
diff options
context:
space:
mode:
authorDave Arter <davea@mysociety.org>2019-12-13 10:39:50 +0000
committerDave Arter <davea@mysociety.org>2019-12-17 10:59:55 +0000
commitea56a97b90235ff5702840ff7b2d8f209bedfc13 (patch)
treefa5d8f07189c8a187640423cb85691ab55591257 /t/app/controller
parent874e26c3b564424c8dcf677886cf1d54ab2ea70b (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.t24
-rw-r--r--t/app/controller/report_new_anon.t1
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,