aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller/questionnaire.t
diff options
context:
space:
mode:
Diffstat (limited to 't/app/controller/questionnaire.t')
-rw-r--r--t/app/controller/questionnaire.t68
1 files changed, 66 insertions, 2 deletions
diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t
index e56734bfc..af3b373ac 100644
--- a/t/app/controller/questionnaire.t
+++ b/t/app/controller/questionnaire.t
@@ -204,7 +204,12 @@ foreach my $test (
}
my $result;
- $result = 'fixed' if $test->{fields}{been_fixed} eq 'Yes';
+ $result = 'fixed - user'
+ if $test->{fields}{been_fixed} eq 'Yes'
+ && $test->{problem_state} ne 'fixed';
+ $result = 'fixed'
+ if $test->{fields}{been_fixed} eq 'Yes'
+ && $test->{problem_state} eq 'fixed';
$result = 'confirmed' if $test->{fields}{been_fixed} eq 'No';
$result = 'unknown' if $test->{fields}{been_fixed} eq 'Unknown';
@@ -214,7 +219,7 @@ foreach my $test (
# Check the right HTML page has been returned
$mech->content_like( qr/<title>[^<]*Questionnaire/m );
$mech->content_contains( 'glad to hear it&rsquo;s been fixed' )
- if $result eq 'fixed';
+ if $result =~ /fixed/;
$mech->content_contains( 'get some more information about the status of your problem' )
if $result eq 'unknown';
$mech->content_contains( "sorry to hear that" )
@@ -235,6 +240,16 @@ foreach my $test (
{ problem_id => $report->id }
);
is $c->text, $test->{fields}{update} || $test->{comment};
+ if ( $result =~ /fixed/ ) {
+ ok $c->mark_fixed, 'comment marked as fixed';
+ ok !$c->mark_open, 'comment not marked as open';
+ } elsif ( $result eq 'confirmed' ) {
+ ok $c->mark_open, 'comment marked as open';
+ ok !$c->mark_fixed, 'comment not marked as fixed';
+ } elsif ( $result eq 'unknown' ) {
+ ok !$c->mark_open, 'comment not marked as open';
+ ok !$c->mark_fixed, 'comment not marked as fixed';
+ }
}
# Reset questionnaire for next test
@@ -250,6 +265,55 @@ foreach my $test (
};
}
+
+for my $test (
+ {
+ state => 'confirmed',
+ fixed => 0
+ },
+ {
+ state => 'planned',
+ fixed => 0
+ },
+ {
+ state => 'in progress',
+ fixed => 0
+ },
+ {
+ state => 'investigating',
+ fixed => 0
+ },
+ {
+ state => 'closed',
+ fixed => 0
+ },
+ {
+ state => 'fixed',
+ fixed => 1
+ },
+ {
+ state => 'fixed - council',
+ fixed => 1
+ },
+ {
+ state => 'fixed - user',
+ fixed => 1
+ },
+) {
+ subtest "correct fixed text for state $test->{state}" => sub {
+ $report->state ( $test->{state} );
+ $report->update;
+
+ $mech->get_ok("/Q/" . $token->token);
+ $mech->title_like( qr/Questionnaire/ );
+ if ( $test->{fixed} ) {
+ $mech->content_contains('An update marked this problem as fixed');
+ } else {
+ $mech->content_lacks('An update marked this problem as fixed');
+ }
+ };
+}
+
# EHA extra checking
ok $mech->host("reportemptyhomes.com"), 'change host to reportemptyhomes';