diff --git a/tests/Defender/HasDefenderTest.php b/tests/Defender/HasDefenderTest.php new file mode 100644 index 0000000..faf5d4e --- /dev/null +++ b/tests/Defender/HasDefenderTest.php @@ -0,0 +1,63 @@ +migrate([ + $this->stubsPath('database/migrations'), + $this->resourcePath('migrations'), + ]); + + $this->seed([ + 'UserTableSeeder', + 'PermissionTableSeeder', + ]); + } + + public function testUserCanFindPermissionWithAsterisk() + { + $user = User::find(1)->first(); + + $permission_create = Permission::find(1); + $permission_delete = Permission::find(2); + + $user->attachPermission($permission_create); + $user->attachPermission($permission_delete); + + $this->assertTrue($user->hasPermission('user.*')); + } + + public function testUserCanNotFindPermissionWithAsterisk() + { + $user = User::find(1)->first(); + + $permission_create = Permission::find(1); + $permission_delete = Permission::find(2); + + $user->attachPermission($permission_create); + $user->attachPermission($permission_delete); + + $this->assertFalse($user->hasPermission('admin.*')); + } +} diff --git a/tests/stubs/database/seeds/PermissionTableSeeder.php b/tests/stubs/database/seeds/PermissionTableSeeder.php new file mode 100644 index 0000000..a200888 --- /dev/null +++ b/tests/stubs/database/seeds/PermissionTableSeeder.php @@ -0,0 +1,23 @@ + 'user.create', 'readable_name' => '']); + Permission::create(['name' => 'user.delete', 'readable_name' => '']); + } +}