aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller/token.t
blob: 9ca8b905ddbed1317ec0b78f5745ed71e0e61ab5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use strict;
use warnings;
use Test::More;
use utf8;

use FixMyStreet::TestMech;
use FixMyStreet::App;

my $user = FixMyStreet::App->model('DB::User')->find_or_create({
        name => 'Bob', email => 'bob@example.com',
    });
my $mech = FixMyStreet::TestMech->new;

subtest 'Zurich special case for C::Tokens->problem_confirm' => sub {
    FixMyStreet::override_config {
        ALLOWED_COBRANDS => ['zurich'],
    }, sub {
        my $c = FixMyStreet::App->new;
        my $zurich = $mech->create_body_ok( 1, 'Zurich' );
        my ($report) = $mech->create_problems_for_body( 
            1, $zurich->id,
            {
                state     => 'unconfirmed',
                confirmed => undef,
                cobrand   => 'zurich',
            });
        
        is $report->get_extra_metadata('email_confirmed'), undef, 'email_confirmed not yet set (sanity)';
        my $token = $c->model('DB::Token')->create({ scope => 'problem', data => $report->id });

        $mech->get_ok('/P/' . $token->token);
        $report->discard_changes;
        is $report->get_extra_metadata('email_confirmed'), 1, 'email_confirmed set by Zurich special case'; 
    };
};

done_testing;