class RolesTest extends TestCase
{
- protected $user;
+ protected User $user;
protected function setUp(): void
{
$this->assertEquals($this->user->id, $roleA->users()->first()->id);
}
+ public function test_entity_permissions_are_removed_on_delete()
+ {
+ /** @var Role $roleA */
+ $roleA = Role::query()->create(['display_name' => 'Entity Permissions Delete Test']);
+ $page = $this->entities->page();
+
+ $this->entities->setPermissions($page, ['view'], [$roleA]);
+
+ $this->assertDatabaseHas('entity_permissions', [
+ 'role_id' => $roleA->id,
+ 'entity_id' => $page->id,
+ 'entity_type' => $page->getMorphClass(),
+ ]);
+
+ $this->asAdmin()->delete("/settings/roles/delete/$roleA->id");
+
+ $this->assertDatabaseMissing('entity_permissions', [
+ 'role_id' => $roleA->id,
+ 'entity_id' => $page->id,
+ 'entity_type' => $page->getMorphClass(),
+ ]);
+ }
+
public function test_image_view_notice_shown_on_role_form()
{
/** @var Role $role */
public function test_chapter_create_all_permissions()
{
- /** @var Book $book */
- $book = Book::query()->first();
+ $book = $this->entities->book();
$this->checkAccessPermission('chapter-create-all', [
$book->getUrl('/create-chapter'),
], [
public function test_page_create_own_permissions()
{
- /** @var Book $book */
- $book = Book::query()->first();
- /** @var Chapter $chapter */
- $chapter = Chapter::query()->first();
+ $book = $this->entities->book();
+ $chapter = $this->entities->chapter();
$entities = $this->entities->createChainBelongingToUser($this->user);
$ownBook = $entities['book'];
public function test_page_create_all_permissions()
{
- /** @var Book $book */
- $book = Book::query()->first();
- /** @var Chapter $chapter */
- $chapter = Chapter::query()->first();
+ $book = $this->entities->book();
+ $chapter = $this->entities->chapter();
$createUrl = $book->getUrl('/create-page');
$createUrlChapter = $chapter->getUrl('/create-page');
public function test_image_delete_own_permission()
{
$this->giveUserPermissions($this->user, ['image-update-all']);
- /** @var Page $page */
- $page = Page::query()->first();
+ $page = $this->entities->page();
$image = Image::factory()->create([
'uploaded_to' => $page->id,
'created_by' => $this->user->id,
{
$this->giveUserPermissions($this->user, ['image-update-all']);
$admin = $this->getAdmin();
- /** @var Page $page */
- $page = Page::query()->first();
+ $page = $this->entities->page();
$image = Image::factory()->create(['uploaded_to' => $page->id, 'created_by' => $admin->id, 'updated_by' => $admin->id]);
$this->actingAs($this->user)->json('delete', '/images/' . $image->id)->assertStatus(403);
public function test_role_permission_removal()
{
// To cover issue fixed in f99c8ff99aee9beb8c692f36d4b84dc6e651e50a.
- /** @var Page $page */
- $page = Page::query()->first();
+ $page = $this->entities->page();
$viewerRole = Role::getRole('viewer');
$viewer = $this->getViewer();
$this->actingAs($viewer)->get($page->getUrl())->assertOk();