use BookStack\Entities\Models\Book;
use BookStack\Entities\Models\Deletion;
-use BookStack\Entities\Models\Page;
use Illuminate\Support\Collection;
use Tests\TestCase;
public function test_settings_manage_permission_needed_for_all_endpoints()
{
- $editor = $this->getEditor();
- $this->giveUserPermissions($editor, ['settings-manage']);
+ $editor = $this->users->editor();
+ $this->permissions->grantUserRolePermissions($editor, ['settings-manage']);
$this->actingAs($editor);
foreach ($this->endpointMap as [$method, $uri]) {
public function test_restrictions_manage_all_permission_needed_for_all_endpoints()
{
- $editor = $this->getEditor();
- $this->giveUserPermissions($editor, ['restrictions-manage-all']);
+ $editor = $this->users->editor();
+ $this->permissions->grantUserRolePermissions($editor, ['restrictions-manage-all']);
$this->actingAs($editor);
foreach ($this->endpointMap as [$method, $uri]) {
public function test_index_endpoint_returns_expected_page()
{
- $admin = $this->getAdmin();
+ $admin = $this->users->admin();
- $page = Page::query()->first();
- $book = Book::query()->first();
+ $page = $this->entities->page();
+ $book = $this->entities->book();
$this->actingAs($admin)->delete($page->getUrl());
$this->delete($book->getUrl());
public function test_index_endpoint_returns_children_count()
{
- $admin = $this->getAdmin();
+ $admin = $this->users->admin();
$book = Book::query()->whereHas('pages')->whereHas('chapters')->withCount(['pages', 'chapters'])->first();
$this->actingAs($admin)->delete($book->getUrl());
public function test_index_endpoint_returns_parent()
{
- $admin = $this->getAdmin();
- $page = Page::query()->whereHas('chapter')->with('chapter')->first();
+ $admin = $this->users->admin();
+ $page = $this->entities->pageWithinChapter();
$this->actingAs($admin)->delete($page->getUrl());
$deletion = Deletion::query()->orderBy('id')->first();
'parent' => [
'id' => $page->chapter->id,
'name' => $page->chapter->name,
- 'type' => 'chapter'
- ]
- ]
+ 'type' => 'chapter',
+ ],
+ ],
],
];
public function test_restore_endpoint()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$this->asAdmin()->delete($page->getUrl());
$page->refresh();
$resp = $this->putJson($this->baseEndpoint . '/' . $deletion->id);
$resp->assertJson([
- 'restore_count' => 1
+ 'restore_count' => 1,
]);
$this->assertDatabaseHas('pages', [
public function test_destroy_endpoint()
{
- $page = Page::query()->first();
+ $page = $this->entities->page();
$this->asAdmin()->delete($page->getUrl());
$page->refresh();
$resp = $this->deleteJson($this->baseEndpoint . '/' . $deletion->id);
$resp->assertJson([
- 'delete_count' => 1
+ 'delete_count' => 1,
]);
$this->assertDatabaseMissing('pages', ['id' => $page->id]);