]> BookStack Code Mirror - bookstack/blobdiff - tests/Commands/RegeneratePermissionsCommandTest.php
Opensearch: Fixed XML declaration when php short tags enabled
[bookstack] / tests / Commands / RegeneratePermissionsCommandTest.php
index d514e5f9d90262c9ece2d2ad73ab425ab8f192bd..75c6c1b3851e634635c7ed30087fda73964f73d8 100644 (file)
@@ -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();
     }
 }