-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathUserTouAcceptanceJobTest.php
More file actions
39 lines (30 loc) · 1.59 KB
/
UserTouAcceptanceJobTest.php
File metadata and controls
39 lines (30 loc) · 1.59 KB
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
38
39
<?php
namespace Tests\Jobs;
use App\Jobs\CreateFirstTermsOfUseVersionJob;
use App\Jobs\UserTouAcceptanceJob;
use App\TermsOfUseVersion;
use App\User;
use App\UserTermsOfUseAcceptance;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Carbon;
use Tests\TestCase;
class UserTouAcceptanceJobTest extends TestCase {
use RefreshDatabase;
public function testTouAcceptanceJob(): void {
$t1 = Carbon::parse('2025-01-01 10:00:00');
$t2 = Carbon::parse('2025-01-02 11:00:00');
$t3 = Carbon::parse('2025-01-03 12:00:00');
$u1 = User::factory()->create(['created_at' => $t1]);
$u2 = User::factory()->create(['created_at' => $t2]);
$u3 = User::factory()->create(['created_at' => $t3]);
(new CreateFirstTermsOfUseVersionJob)->handle();
(new UserTouAcceptanceJob)->handle();
$latest = TermsOfUseVersion::getActiveVersion()->version;
$this->assertDatabaseHas('tou_acceptances', ['user_id' => $u1->id, 'tou_version' => $latest]);
$this->assertDatabaseHas('tou_acceptances', ['user_id' => $u2->id, 'tou_version' => $latest]);
$this->assertDatabaseHas('tou_acceptances', ['user_id' => $u3->id, 'tou_version' => $latest]);
$this->assertTrue($t1->equalTo(UserTermsOfUseAcceptance::where('user_id', $u1->id)->firstOrFail()->tou_accepted_at));
$this->assertTrue($t2->equalTo(UserTermsOfUseAcceptance::where('user_id', $u2->id)->firstOrFail()->tou_accepted_at));
$this->assertTrue($t3->equalTo(UserTermsOfUseAcceptance::where('user_id', $u3->id)->firstOrFail()->tou_accepted_at));
}
}