diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 98825c8..e23fe4d 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -57,4 +57,12 @@ class UserFactory extends Factory 'two_factor_confirmed_at' => now(), ]); } + + /** + * Indicate that the user is an admin. + */ + public function admin(): static + { + return $this->state(['is_admin' => true]); + } } diff --git a/database/seeders/AdminSeeder.php b/database/seeders/AdminSeeder.php new file mode 100644 index 0000000..27e4e1e --- /dev/null +++ b/database/seeders/AdminSeeder.php @@ -0,0 +1,22 @@ + 'uovidiu@sent.com'], + [ + 'name' => 'Ovidiu U', + 'password' => Hash::make('changeme'), + 'is_admin' => true, + ] + ); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..e34f431 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -13,7 +13,7 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); + $this->call(AdminSeeder::class); User::factory()->create([ 'name' => 'Test User', diff --git a/tests/Feature/Admin/AdminAccessTest.php b/tests/Feature/Admin/AdminAccessTest.php new file mode 100644 index 0000000..88e0387 --- /dev/null +++ b/tests/Feature/Admin/AdminAccessTest.php @@ -0,0 +1,20 @@ +create(); + $this->actingAs($user); + + $this->get('/admin')->assertForbidden(); +}); + +it('allows admin users to access admin panel', function () { + $user = User::factory()->admin()->create(); + $this->actingAs($user); + + $this->get('/admin')->assertOk(); +});