X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ee24635e06a8c01d751f80caba47c57f76e8989d..refs/pull/5280/head:/tests/Commands/RegeneratePermissionsCommandTest.php diff --git a/tests/Commands/RegeneratePermissionsCommandTest.php b/tests/Commands/RegeneratePermissionsCommandTest.php index d514e5f9d..75c6c1b38 100644 --- a/tests/Commands/RegeneratePermissionsCommandTest.php +++ b/tests/Commands/RegeneratePermissionsCommandTest.php @@ -2,8 +2,8 @@ namespace Tests\Commands; -use BookStack\Auth\Permissions\JointPermission; -use BookStack\Entities\Models\Page; +use BookStack\Auth\Permissions\CollapsedPermission; +use BookStack\Permissions\Models\JointPermission; use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\DB; use Tests\TestCase; @@ -13,15 +13,27 @@ class RegeneratePermissionsCommandTest extends TestCase public function test_regen_permissions_command() { DB::rollBack(); + $page = $this->entities->page(); + $editor = $this->users->editor(); + $role = $editor->roles()->first(); + $this->permissions->addEntityPermission($page, ['view'], $role); JointPermission::query()->truncate(); - $page = Page::first(); $this->assertDatabaseMissing('joint_permissions', ['entity_id' => $page->id]); $exitCode = Artisan::call('bookstack:regenerate-permissions'); $this->assertTrue($exitCode === 0, 'Command executed successfully'); - DB::beginTransaction(); - $this->assertDatabaseHas('joint_permissions', ['entity_id' => $page->id]); + $this->assertDatabaseHas('joint_permissions', [ + 'entity_id' => $page->id, + 'entity_type' => 'page', + 'role_id' => $role->id, + 'status' => 3, // Explicit allow + ]); + + $page->permissions()->delete(); + $page->rebuildPermissions(); + + DB::beginTransaction(); } }