diff options
author | Matthew Somerville <matthew@mysociety.org> | 2016-01-27 14:53:34 +0000 |
---|---|---|
committer | Matthew Somerville <matthew@mysociety.org> | 2016-01-27 16:06:05 +0000 |
commit | 32cc764609a304fb09718e91ca836c8788db1f51 (patch) | |
tree | f9babc5407885cebad665e5e5528e6230fe3f080 | |
parent | b8083a462aebf542f6f39c4201e1f09248b7e0e7 (diff) |
If app user logged in, perform alert signup.
Thanks to @jonkri for spotting.
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Report/New.pm | 1 | ||||
-rw-r--r-- | t/app/controller/report_new_mobile.t | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index bab0f0fd0..2f03bf13b 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -149,6 +149,7 @@ sub report_new_ajax : Path('mobile') : Args(0) { } } ); if ( $report->confirmed ) { + $c->forward( 'create_reporter_alert' ); $c->stash->{ json_response } = { success => 1, report => $report->id }; } else { $c->stash->{token_url} = $c->uri_for_email( '/P', $token->token ); diff --git a/t/app/controller/report_new_mobile.t b/t/app/controller/report_new_mobile.t new file mode 100644 index 000000000..61cb14a1b --- /dev/null +++ b/t/app/controller/report_new_mobile.t @@ -0,0 +1,38 @@ +use Test::More; +use FixMyStreet::TestMech; + +my $mech = FixMyStreet::TestMech->new; + +# disable info logs for this test run +FixMyStreet::App->log->disable('info'); +END { FixMyStreet::App->log->enable('info'); } + +subtest "Check signed up for alert when logged in" => sub { + FixMyStreet::override_config { + MAPIT_URL => 'http://global.mapit.mysociety.org', + MAPIT_TYPES => [ 'O06' ], + }, sub { + $mech->log_in_ok('user@example.org'); + $mech->post_ok( '/report/new/mobile', { + service => 'iPhone', + title => 'Title', + detail => 'Problem detail', + lat => 47.381817, + lon => 8.529156, + email => 'user@example.org', + pc => '', + name => 'Name', + }); + my $res = $mech->response; + ok $res->header('Content-Type') =~ m{^application/json\b}, 'response should be json'; + + my $user = FixMyStreet::DB->resultset('User')->search({ email => 'user@example.org' })->first; + my $a = FixMyStreet::DB->resultset('Alert')->search({ user_id => $user->id })->first; + isnt $a, undef, 'User is signed up for alert'; + }; +}; + +END { + $mech->delete_user('user@example.org'); + done_testing(); +} |