Skip to content

Commit d276649

Browse files
committed
feat: add loginAsAdmin helper for admin user authentication in tests
1 parent 5f10318 commit d276649

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

tests/Feature/AuthenticationSupport.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
namespace Tests\Feature;
66

7+
use Contexts\Authorization\Domain\Role\Models\RoleStatus;
78
use Contexts\Authorization\Domain\UserIdentity\Models\UserStatus;
9+
use Contexts\Authorization\Infrastructure\Records\RoleRecord;
810
use Contexts\Authorization\Infrastructure\Records\UserRecord;
911

1012
trait AuthenticationSupport
@@ -21,4 +23,23 @@ protected function loginAsUser(array $attributes = []): void
2123

2224
$this->actingAs($userRecord);
2325
}
26+
27+
protected function loginAsAdmin(array $attributes = []): void
28+
{
29+
$userRecord = UserRecord::factory()->create([
30+
'email' => $attributes['email'] ?? 'logged-in-admin@email.com',
31+
'display_name' => $attributes['display_name'] ?? 'Logged In Admin',
32+
'password' => password_hash($attributes['password'] ?? 'password', PASSWORD_ARGON2ID),
33+
'status' => UserRecord::mapStatusToRecord($attributes['status'] ?? UserStatus::active()),
34+
]);
35+
36+
$roleRecord = RoleRecord::factory()->create([
37+
'label' => 'admin',
38+
'status' => RoleRecord::mapStatusToRecord(RoleStatus::active()),
39+
]);
40+
41+
$userRecord->roles()->attach($roleRecord);
42+
43+
$this->actingAs($userRecord);
44+
}
2445
}

0 commit comments

Comments
 (0)