X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/85f59b5275da9cc27e8823b22c6a5def4ade1311..refs/pull/5280/head:/tests/Entity/ConvertTest.php diff --git a/tests/Entity/ConvertTest.php b/tests/Entity/ConvertTest.php index 10b276a47..d9b1ee466 100644 --- a/tests/Entity/ConvertTest.php +++ b/tests/Entity/ConvertTest.php @@ -2,8 +2,8 @@ namespace Tests\Entity; -use BookStack\Actions\ActivityType; -use BookStack\Actions\Tag; +use BookStack\Activity\ActivityType; +use BookStack\Activity\Models\Tag; use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Bookshelf; use BookStack\Entities\Models\Chapter; @@ -12,22 +12,19 @@ use Tests\TestCase; class ConvertTest extends TestCase { - public function test_chapter_edit_view_shows_convert_option() { - /** @var Chapter $chapter */ - $chapter = Chapter::query()->first(); + $chapter = $this->entities->chapter(); $resp = $this->asEditor()->get($chapter->getUrl('/edit')); $resp->assertSee('Convert to Book'); $resp->assertSee('Convert Chapter'); - $resp->assertElementExists('form[action$="/convert-to-book"] button'); + $this->withHtml($resp)->assertElementExists('form[action$="/convert-to-book"] button'); } public function test_convert_chapter_to_book() { - /** @var Chapter $chapter */ - $chapter = Chapter::query()->whereHas('pages')->first(); + $chapter = $this->entities->chapterHasPages(); $chapter->tags()->save(new Tag(['name' => 'Category', 'value' => 'Penguins'])); /** @var Page $childPage */ $childPage = $chapter->pages()->first(); @@ -45,24 +42,24 @@ class ConvertTest extends TestCase $this->assertEquals('Penguins', $newBook->tags->first()->value); $this->assertEquals($chapter->name, $newBook->name); $this->assertEquals($chapter->description, $newBook->description); + $this->assertEquals($chapter->description_html, $newBook->description_html); $this->assertActivityExists(ActivityType::BOOK_CREATE_FROM_CHAPTER, $newBook); } public function test_convert_chapter_to_book_requires_permissions() { - /** @var Chapter $chapter */ - $chapter = Chapter::query()->first(); - $user = $this->getViewer(); + $chapter = $this->entities->chapter(); + $user = $this->users->viewer(); $permissions = ['chapter-delete-all', 'book-create-all', 'chapter-update-all']; - $this->giveUserPermissions($user, $permissions); + $this->permissions->grantUserRolePermissions($user, $permissions); foreach ($permissions as $permission) { - $this->removePermissionFromUser($user, $permission); + $this->permissions->removeUserRolePermissions($user, [$permission]); $resp = $this->actingAs($user)->post($chapter->getUrl('/convert-to-book')); $this->assertPermissionError($resp); - $this->giveUserPermissions($user, [$permission]); + $this->permissions->grantUserRolePermissions($user, [$permission]); } $resp = $this->actingAs($user)->post($chapter->getUrl('/convert-to-book')); @@ -72,13 +69,13 @@ class ConvertTest extends TestCase public function test_book_edit_view_shows_convert_option() { - $book = Book::query()->first(); + $book = $this->entities->book(); $resp = $this->asEditor()->get($book->getUrl('/edit')); $resp->assertSee('Convert to Shelf'); $resp->assertSee('Convert Book'); $resp->assertSee('Note that permissions on shelves do not auto-cascade to content'); - $resp->assertElementExists('form[action$="/convert-to-shelf"] button'); + $this->withHtml($resp)->assertElementExists('form[action$="/convert-to-shelf"] button'); } public function test_book_convert_to_shelf() @@ -109,6 +106,7 @@ class ConvertTest extends TestCase $this->assertEquals('Ducks', $newShelf->tags->first()->value); $this->assertEquals($book->name, $newShelf->name); $this->assertEquals($book->description, $newShelf->description); + $this->assertEquals($book->description_html, $newShelf->description_html); $this->assertEquals($newShelf->books()->count(), $bookChapterCount + 1); $this->assertEquals($systemBookCount + $bookChapterCount, Book::query()->count()); $this->assertActivityExists(ActivityType::BOOKSHELF_CREATE_FROM_BOOK, $newShelf); @@ -125,23 +123,21 @@ class ConvertTest extends TestCase public function test_book_convert_to_shelf_requires_permissions() { - /** @var Book $book */ - $book = Book::query()->first(); - $user = $this->getViewer(); + $book = $this->entities->book(); + $user = $this->users->viewer(); $permissions = ['book-delete-all', 'bookshelf-create-all', 'book-update-all', 'book-create-all']; - $this->giveUserPermissions($user, $permissions); + $this->permissions->grantUserRolePermissions($user, $permissions); foreach ($permissions as $permission) { - $this->removePermissionFromUser($user, $permission); + $this->permissions->removeUserRolePermissions($user, [$permission]); $resp = $this->actingAs($user)->post($book->getUrl('/convert-to-shelf')); $this->assertPermissionError($resp); - $this->giveUserPermissions($user, [$permission]); + $this->permissions->grantUserRolePermissions($user, [$permission]); } $resp = $this->actingAs($user)->post($book->getUrl('/convert-to-shelf')); $this->assertNotPermissionError($resp); $resp->assertRedirect(); } - -} \ No newline at end of file +}