mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-21 05:26:10 +03:00
ZIP Exports: Prevent book child page drafts from being included
Added test to cover
This commit is contained in:
parent
01825ddb93
commit
c84d999456
@ -70,7 +70,7 @@ class ZipExportBook extends ZipExportModel
|
|||||||
foreach ($children as $child) {
|
foreach ($children as $child) {
|
||||||
if ($child instanceof Chapter) {
|
if ($child instanceof Chapter) {
|
||||||
$chapters[] = $child;
|
$chapters[] = $child;
|
||||||
} else if ($child instanceof Page) {
|
} else if ($child instanceof Page && !$child->draft) {
|
||||||
$pages[] = $child;
|
$pages[] = $child;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,7 @@ class ZipExportTest extends TestCase
|
|||||||
|
|
||||||
public function test_book_export()
|
public function test_book_export()
|
||||||
{
|
{
|
||||||
$book = $this->entities->book();
|
$book = $this->entities->bookHasChaptersAndPages();
|
||||||
$book->tags()->saveMany(Tag::factory()->count(2)->make());
|
$book->tags()->saveMany(Tag::factory()->count(2)->make());
|
||||||
|
|
||||||
$zipResp = $this->asEditor()->get($book->getUrl("/export/zip"));
|
$zipResp = $this->asEditor()->get($book->getUrl("/export/zip"));
|
||||||
@ -251,6 +251,35 @@ class ZipExportTest extends TestCase
|
|||||||
$this->assertCount($chapter->pages()->count(), $chapterData['pages']);
|
$this->assertCount($chapter->pages()->count(), $chapterData['pages']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_draft_pages_are_not_included()
|
||||||
|
{
|
||||||
|
$editor = $this->users->editor();
|
||||||
|
$entities = $this->entities->createChainBelongingToUser($editor);
|
||||||
|
$book = $entities['book'];
|
||||||
|
$page = $entities['page'];
|
||||||
|
$chapter = $entities['chapter'];
|
||||||
|
$book->tags()->saveMany(Tag::factory()->count(2)->make());
|
||||||
|
|
||||||
|
$page->created_by = $editor->id;
|
||||||
|
$page->draft = true;
|
||||||
|
$page->save();
|
||||||
|
|
||||||
|
$zipResp = $this->actingAs($editor)->get($book->getUrl("/export/zip"));
|
||||||
|
$zip = $this->extractZipResponse($zipResp);
|
||||||
|
$this->assertCount(0, $zip->data['book']['chapters'][0]['pages'] ?? ['cat']);
|
||||||
|
|
||||||
|
$zipResp = $this->actingAs($editor)->get($chapter->getUrl("/export/zip"));
|
||||||
|
$zip = $this->extractZipResponse($zipResp);
|
||||||
|
$this->assertCount(0, $zip->data['chapter']['pages'] ?? ['cat']);
|
||||||
|
|
||||||
|
$page->chapter_id = 0;
|
||||||
|
$page->save();
|
||||||
|
|
||||||
|
$zipResp = $this->actingAs($editor)->get($book->getUrl("/export/zip"));
|
||||||
|
$zip = $this->extractZipResponse($zipResp);
|
||||||
|
$this->assertCount(0, $zip->data['book']['pages'] ?? ['cat']);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public function test_cross_reference_links_are_converted()
|
public function test_cross_reference_links_are_converted()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user