dress/tests/Feature/Admin/System/ActivityLogTest.php

57 lines
1.8 KiB
PHP

<?php
use Spatie\Activitylog\Models\Activity;
use function Pest\Laravel\actingAs;
use function Pest\Laravel\get;
/*
|--------------------------------------------------------------------------
| Activity Log Module Tests
|--------------------------------------------------------------------------
| This module tracks system-wide activities using Spatie Activitylog.
|--------------------------------------------------------------------------
*/
describe('Activity Log Module - Authorization', function () {
it('redirects to login when accessing activity logs unauthenticated', function () {
get(route('system.activity-logs.index'))
->assertRedirect(route('login'));
});
it('returns 403 when user has no permission to view activity logs', function () {
actingAs(createUnauthorizedUser())
->get(route('system.activity-logs.index'))
->assertStatus(403);
});
});
describe('Activity Log Module - Authorized Actions', function () {
beforeEach(function () {
$user = createAuthorizedUser(['View:Activity']);
actingAs($user);
});
it('can access activity logs index page', function () {
// Create a dummy activity to ensure data is present
activity()
->useLog('Testing')
->log('Test Activity Log Entry');
get(route('system.activity-logs.index'))
->assertOk()
->assertInertia(fn ($page) => $page
->component('admin/system/activity-log/index')
->has('activities')
);
});
});
describe('Activity Log Module - Unauthorized Actions', function () {
it('cannot view activity logs without permission', function () {
actingAs(createUnauthorizedUser())
->get(route('system.activity-logs.index'))
->assertStatus(403);
});
});