assertRedirect(route('login')); get(route('system.activity-logs.index'))->assertRedirect(route('login')); }); it('returns 403 when user has no permission to view logs', function () { actingAs(createUnauthorizedUser()); get(route('system.logs.index'))->assertStatus(403); get(route('system.activity-logs.index'))->assertStatus(403); }); }); describe('Log Module - Authorized Actions', function () { beforeEach(function () { $user = createAuthorizedUser([ 'View:Log', 'View:Activity', ]); actingAs($user); }); it('can access system logs index page', function () { // Create a dummy log file to ensure it doesn't crash if no logs exist $path = storage_path('logs/laravel.log'); if (! File::exists(storage_path('logs'))) { File::makeDirectory(storage_path('logs'), 0755, true); } File::put($path, "[2026-04-30 08:00:00] local.INFO: Test log message\n"); get(route('system.logs.index')) ->assertOk() ->assertInertia(fn ($page) => $page ->component('admin/system/logs/index') ->has('logFiles') ->has('logs') ); }); it('can access activity logs index page', function () { // Create a dummy activity activity() ->useLog('TestModule') ->log('Test Activity'); get(route('system.activity-logs.index')) ->assertOk() ->assertInertia(fn ($page) => $page ->component('admin/system/activity-log/index') ->has('activities') ); }); }); describe('Log Module - Unauthorized Actions', function () { beforeEach(function () { actingAs(createUnauthorizedUser()); }); it('cannot view system logs without permission', function () { get(route('system.logs.index'))->assertStatus(403); }); it('cannot view activity logs without permission', function () { get(route('system.activity-logs.index'))->assertStatus(403); }); });