Add comprehensive test coverage and update notes
Some checks failed
CI/CD Pipeline / test (push) Successful in 3s
CI/CD Pipeline / deploy (push) Failing after 15s

This commit is contained in:
2026-02-08 19:04:12 +01:00
parent 160430e128
commit 88e4a70f88
43 changed files with 6114 additions and 520 deletions

View File

@@ -0,0 +1,55 @@
<?php
use App\Http\Controllers\AuditLogController;
use App\Models\AuditLog;
use App\Models\Role;
use App\Models\User;
use Illuminate\Http\Request;
it('returns unauthorized when no user', function (): void {
$controller = new AuditLogController();
$request = Request::create('/api/audit-logs', 'GET');
$request->setUserResolver(fn () => null);
$response = $controller->index($request);
expect($response->getStatusCode())->toBe(401);
});
it('returns forbidden when user is not admin', function (): void {
$controller = new AuditLogController();
$user = User::factory()->create();
$request = Request::create('/api/audit-logs', 'GET');
$request->setUserResolver(fn () => $user);
$response = $controller->index($request);
expect($response->getStatusCode())->toBe(403);
});
it('returns logs for admin', function (): void {
$controller = new AuditLogController();
$admin = User::factory()->create();
$role = Role::create(['name' => 'ROLE_ADMIN']);
$admin->roles()->attach($role);
AuditLog::create([
'action' => 'test.action',
'subject_type' => 'post',
'subject_id' => 1,
'metadata' => ['foo' => 'bar'],
'ip_address' => '127.0.0.1',
'user_agent' => 'test',
'user_id' => $admin->id,
]);
$request = Request::create('/api/audit-logs', 'GET');
$request->setUserResolver(fn () => $admin);
$response = $controller->index($request);
expect($response->getStatusCode())->toBe(200);
$payload = $response->getData(true);
expect($payload)->toHaveCount(1);
expect($payload[0]['user']['roles'][0])->toBe('ROLE_ADMIN');
});