25 lines
995 B
PHP
25 lines
995 B
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Spatie\Permission\Models\Permission;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('redirects guests away from SonarDesk administration', function (): void {
|
|
$this->get('/administration/sonardesk')->assertRedirect();
|
|
});
|
|
|
|
it('denies an authenticated verified user without licensing permission', function (): void {
|
|
$user = User::factory()->create(['email_verified_at' => now()]);
|
|
$this->actingAs($user)->get('/administration/sonardesk')->assertForbidden();
|
|
});
|
|
|
|
it('allows a verified user granted the licensing permission past authorization', function (): void {
|
|
Permission::findOrCreate('manage-sonardesk-licensing', 'web');
|
|
$user = User::factory()->create(['email_verified_at' => now()]);
|
|
$user->givePermissionTo('manage-sonardesk-licensing');
|
|
expect($user->can('manage-sonardesk-licensing'))->toBeTrue();
|
|
// Full dashboard request requires licensing migrations and database fixtures.
|
|
});
|