libra/tests/Feature/Auth/AuthorizationTest.php

66 lines
1.7 KiB
PHP

<?php
use App\Models\User;
test('admin can access admin routes', function () {
$admin = User::factory()->admin()->create();
$response = $this->actingAs($admin)->get('/admin/dashboard');
$response->assertStatus(200);
});
test('client cannot access admin routes', function () {
$client = User::factory()->individual()->create();
$response = $this->actingAs($client)->get('/admin/dashboard');
$response->assertForbidden();
});
test('company client cannot access admin routes', function () {
$client = User::factory()->company()->create();
$response = $this->actingAs($client)->get('/admin/dashboard');
$response->assertForbidden();
});
test('unauthenticated user redirected to login', function () {
$response = $this->get('/admin/dashboard');
$response->assertRedirect(route('login'));
});
test('unauthenticated user redirected to login for client routes', function () {
$response = $this->get('/client/dashboard');
$response->assertRedirect(route('login'));
});
test('client can access client routes', function () {
$client = User::factory()->individual()->create();
$response = $this->actingAs($client)->get('/client/dashboard');
$response->assertStatus(200);
});
test('admin can access client routes', function () {
$admin = User::factory()->admin()->create();
$response = $this->actingAs($admin)->get('/client/dashboard');
$response->assertStatus(200);
});
test('deactivated user logged out on request', function () {
$user = User::factory()->deactivated()->create();
// Simulate an authenticated session with deactivated user
$response = $this->actingAs($user)->get('/client/dashboard');
$response->assertRedirect(route('login'));
$this->assertGuest();
});