aboutsummaryrefslogtreecommitdiffstats
path: root/t/app/controller
diff options
context:
space:
mode:
authorStruan Donald <struan@exo.org.uk>2017-09-22 16:41:26 +0100
committerStruan Donald <struan@exo.org.uk>2017-10-04 11:13:10 +0100
commitb243fc8ae7ef3b892ec94b744ca0c3332a6931a6 (patch)
tree2de865bb467e6f493ae7dbd71bd0f5823248c263 /t/app/controller
parent6f43693cfc58d5356fafd231f2a232eb2fd99ae5 (diff)
move area stats page problems by status calc into database
Doing this calculation in code turns out to be much too slow. As part of this also fix an issue where if a report changed state last month but had a further comment this month that was counted as being a state change this month. Also tweak the 'last month' start date to be midnight so the stats don't change throughout the day.
Diffstat (limited to 't/app/controller')
-rw-r--r--t/app/controller/area_stats.t11
1 files changed, 11 insertions, 0 deletions
diff --git a/t/app/controller/area_stats.t b/t/app/controller/area_stats.t
index 6ea03cabf..36e532c0e 100644
--- a/t/app/controller/area_stats.t
+++ b/t/app/controller/area_stats.t
@@ -183,6 +183,17 @@ FixMyStreet::override_config {
$mech->text_contains('Traffic lights3730');
};
+ subtest 'ignores second state change if first was last month' => sub {
+ my $comment = $scheduled_problems[0]->comments->search({}, { order_by => { '-asc' => 'id' } } )->first;
+ $comment->update({ confirmed => DateTime->now->subtract(days => 40) });
+ $mech->get_ok("/admin/areastats/$body_id?area=20720");
+
+ $mech->content_contains('15 opened, 6 scheduled, 3 closed, 4 fixed');
+ $mech->text_contains('Potholes2004');
+ $mech->text_contains('Traffic lights3730');
+ $comment->update({ confirmed => DateTime->now });
+ };
+
subtest 'average is only to first state change' => sub {
for my $i (0..4) {
$scheduled_problems[$i]->comments->first->update({ confirmed => $scheduled_problems[$i]->confirmed });