57 lines
1.9 KiB
PHP
57 lines
1.9 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', fn ($page) => $page->has('data')->etc())
|
|
);
|
|
});
|
|
});
|
|
|
|
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);
|
|
});
|
|
});
|