]> BookStack Code Mirror - bookstack/blobdiff - tests/Commands/RegeneratePermissionsCommandTest.php
respective book and chapter structure added.
[bookstack] / tests / Commands / RegeneratePermissionsCommandTest.php
index cc53b460d890a2f7826d29bdd86e2bf3b313717a..75c6c1b3851e634635c7ed30087fda73964f73d8 100644 (file)
@@ -3,6 +3,7 @@
 namespace Tests\Commands;
 
 use BookStack\Auth\Permissions\CollapsedPermission;
+use BookStack\Permissions\Models\JointPermission;
 use Illuminate\Support\Facades\Artisan;
 use Illuminate\Support\Facades\DB;
 use Tests\TestCase;
@@ -14,21 +15,25 @@ class RegeneratePermissionsCommandTest extends TestCase
         DB::rollBack();
         $page = $this->entities->page();
         $editor = $this->users->editor();
-        $this->permissions->addEntityPermission($page, ['view'], null, $editor);
-        CollapsedPermission::query()->truncate();
+        $role = $editor->roles()->first();
+        $this->permissions->addEntityPermission($page, ['view'], $role);
+        JointPermission::query()->truncate();
 
-        $this->assertDatabaseMissing('entity_permissions_collapsed', ['entity_id' => $page->id]);
+        $this->assertDatabaseMissing('joint_permissions', ['entity_id' => $page->id]);
 
         $exitCode = Artisan::call('bookstack:regenerate-permissions');
         $this->assertTrue($exitCode === 0, 'Command executed successfully');
 
-        $this->assertDatabaseHas('entity_permissions_collapsed', [
+        $this->assertDatabaseHas('joint_permissions', [
             'entity_id' => $page->id,
-            'user_id' => $editor->id,
-            'view' => 1,
+            'entity_type' => 'page',
+            'role_id' => $role->id,
+            'status' => 3, // Explicit allow
         ]);
 
-        CollapsedPermission::query()->truncate();
+        $page->permissions()->delete();
+        $page->rebuildPermissions();
+
         DB::beginTransaction();
     }
 }