3 namespace Tests\Entity;
5 use BookStack\Entities\Models\Entity;
6 use BookStack\Users\UserRepo;
9 class EntityAccessTest extends TestCase
11 public function test_entities_viewable_after_creator_deletion()
13 // Create required assets and revisions
14 $creator = $this->users->editor();
15 $updater = $this->users->viewer();
16 $entities = $this->entities->createChainBelongingToUser($creator, $updater);
17 app()->make(UserRepo::class)->destroy($creator);
18 $this->entities->updatePage($entities['page'], ['html' => '<p>hello!</p>>']);
20 $this->checkEntitiesViewable($entities);
23 public function test_entities_viewable_after_updater_deletion()
25 // Create required assets and revisions
26 $creator = $this->users->viewer();
27 $updater = $this->users->editor();
28 $entities = $this->entities->createChainBelongingToUser($creator, $updater);
29 app()->make(UserRepo::class)->destroy($updater);
30 $this->entities->updatePage($entities['page'], ['html' => '<p>Hello there!</p>']);
32 $this->checkEntitiesViewable($entities);
36 * @param array<string, Entity> $entities
38 private function checkEntitiesViewable(array $entities)
40 // Check pages and books are visible.
42 foreach ($entities as $entity) {
43 $this->get($entity->getUrl())
45 ->assertSee($entity->name);
48 // Check revision listing shows no errors.
49 $this->get($entities['page']->getUrl('/revisions'))->assertStatus(200);