Skip to content

Commit dfa1502

Browse files
Resolve failing tests: Cases not being deleted due to improper retention period formatting
1 parent a24399f commit dfa1502

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

tests/Jobs/EvaluateProcessRetentionJobTest.php

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,17 @@ protected function tearDown(): void
3333

3434
public function testItDeletesCasesThatExceedRetentionPeriod()
3535
{
36-
// Create a process with a 6 month retention period
37-
// retention_updated_at is 6 months ago, so old cases cutoff is 12 months ago (6 months ago - 6 months)
38-
$retentionUpdatedAt = Carbon::now()->subMonths(6)->toIso8601String();
36+
// Create a process with a 1 year retention period
37+
// retention_updated_at defaults to now, so cutoff is 12 months ago (now - 12 months)
3938
$process = Process::factory()->create([
4039
'properties' => [
4140
'retention_period' => self::RETENTION_PERIOD,
42-
'retention_updated_at' => $retentionUpdatedAt,
4341
],
4442
]);
4543

4644
$process->save();
4745
$process->refresh();
4846
$this->assertEquals(self::RETENTION_PERIOD, $process->properties['retention_period']);
49-
$this->assertEquals($retentionUpdatedAt, $process->properties['retention_updated_at']);
5047

5148
// Create a process request
5249
$processRequest = ProcessRequest::factory()->create();
@@ -55,8 +52,8 @@ public function testItDeletesCasesThatExceedRetentionPeriod()
5552
$processRequest->refresh();
5653
$this->assertEquals($process->id, $processRequest->process_id);
5754

58-
// Create a case number created 13 months ago (before retention_updated_at)
59-
// Old cases cutoff = 6 months ago - 6 months = 12 months ago
55+
// Create a case number created 13 months ago
56+
// Cutoff = now - 12 months = 12 months ago
6057
// 13 months ago < 12 months ago, so it should be deleted
6158
$oldCaseCreatedAt = Carbon::now()->subMonths(13)->toIso8601String();
6259
$caseOld = CaseNumber::factory()->create([
@@ -75,19 +72,16 @@ public function testItDeletesCasesThatExceedRetentionPeriod()
7572

7673
public function testItDoesNotDeleteCasesThatAreWithinRetentionPeriod()
7774
{
78-
// Create a process with a 6 month retention period
79-
// retention_updated_at is 6 months ago, so old cases cutoff is 12 months ago (6 months ago - 6 months)
80-
$retentionUpdatedAt = Carbon::now()->subMonths(6)->toIso8601String();
75+
// Create a process with a 1 year retention period
76+
// retention_updated_at defaults to now, so cutoff is 12 months ago (now - 12 months)
8177
$process = Process::factory()->create([
8278
'properties' => [
8379
'retention_period' => self::RETENTION_PERIOD,
84-
'retention_updated_at' => $retentionUpdatedAt,
8580
],
8681
]);
8782
$process->save();
8883
$process->refresh();
8984
$this->assertEquals(self::RETENTION_PERIOD, $process->properties['retention_period']);
90-
$this->assertEquals($retentionUpdatedAt, $process->properties['retention_updated_at']);
9185

9286
// Create a process request
9387
$processRequest = ProcessRequest::factory()->create();
@@ -96,8 +90,9 @@ public function testItDoesNotDeleteCasesThatAreWithinRetentionPeriod()
9690
$processRequest->refresh();
9791
$this->assertEquals($process->id, $processRequest->process_id);
9892

99-
// Create a case number created 5 months ago (before retention_updated_at)
100-
// This case is NOT older than the old cases cutoff (12 months ago), so it should NOT be deleted
93+
// Create a case number created 5 months ago
94+
// Cutoff = now - 12 months = 12 months ago
95+
// 5 months ago is NOT < 12 months ago, so it should NOT be deleted
10196
$caseCreatedAt = Carbon::now()->subMonths(5)->toIso8601String();
10297
$case = CaseNumber::factory()->create([
10398
'created_at' => $caseCreatedAt,
@@ -115,17 +110,16 @@ public function testItDoesNotDeleteCasesThatAreWithinRetentionPeriod()
115110

116111
public function testItHandlesMultipleCasesInBatches()
117112
{
118-
// Create a process with a 6 month retention period
113+
// Create a process with a 1 year retention period
114+
// retention_updated_at defaults to now, so cutoff is 12 months ago (now - 12 months)
119115
$process = Process::factory()->create([
120116
'properties' => [
121117
'retention_period' => self::RETENTION_PERIOD,
122-
'retention_updated_at' => Carbon::now()->subMonths(6)->toIso8601String(),
123118
],
124119
]);
125120
$process->save();
126121
$process->refresh();
127122
$this->assertEquals(self::RETENTION_PERIOD, $process->properties['retention_period']);
128-
$this->assertEquals(Carbon::now()->subMonths(6)->toIso8601String(), $process->properties['retention_updated_at']);
129123

130124
// Create a process request
131125
$processRequest = ProcessRequest::factory()->create();
@@ -135,8 +129,8 @@ public function testItHandlesMultipleCasesInBatches()
135129
$this->assertEquals($process->id, $processRequest->process_id);
136130

137131
// Create 1200 cases (to test chunking/batch deletion)
138-
// These cases are created 13 months ago (before retention_updated_at)
139-
// Old cases cutoff = 6 months ago - 6 months = 12 months ago
132+
// These cases are created 13 months ago
133+
// Cutoff = now - 12 months = 12 months ago
140134
// 13 months ago < 12 months ago, so these should be deleted
141135
$cases = CaseNumber::factory()->count(1200)->create([
142136
'process_request_id' => $processRequest->id,
@@ -150,7 +144,7 @@ public function testItHandlesMultipleCasesInBatches()
150144

151145
// Assert all old cases are deleted
152146
// There should be 1 case left (the auto-created case from ProcessRequestObserver)
153-
// because it was created after retention_updated_at and is within the retention period
147+
// because it was created recently and is within the retention period
154148
$this->assertDatabaseCount('case_numbers', 1);
155149
}
156150

0 commit comments

Comments
 (0)