diff --git a/app/Services/ViewService.php b/app/Services/ViewService.php index 55e32fe..4755009 100644 --- a/app/Services/ViewService.php +++ b/app/Services/ViewService.php @@ -27,6 +27,7 @@ public function __construct(View $view) */ public function add(Entity $entity) { + if($this->user === null) return 0; $view = $entity->views()->where('user_id', '=', $this->user->id)->first(); // Add view if model exists if ($view) { @@ -52,6 +53,7 @@ public function add(Entity $entity) */ public function getUserRecentlyViewed($count = 10, $page = 0, $filterModel = false) { + if($this->user === null) return collect(); $skipCount = $count * $page; $query = $this->view->where('user_id', '=', auth()->user()->id); diff --git a/tests/PublicViewTest.php b/tests/PublicViewTest.php new file mode 100644 index 0000000..b5141f0 --- /dev/null +++ b/tests/PublicViewTest.php @@ -0,0 +1,41 @@ +setSettings(['app-public' => 'true']); + $books = \BookStack\Book::orderBy('name', 'asc')->take(10)->get(); + $bookToVisit = $books[1]; + + // Check books index page is showing + $this->visit('/books') + ->seeStatusCode(200) + ->see($books[0]->name) + // Check indavidual book page is showing and it's child contents are visible. + ->click($bookToVisit->name) + ->seePageIs($bookToVisit->getUrl()) + ->see($bookToVisit->name) + ->see($bookToVisit->chapters()->first()->name); + } + + public function testChaptersViewable() + { + $this->setSettings(['app-public' => 'true']); + $chapterToVisit = \BookStack\Chapter::first(); + $pageToVisit = $chapterToVisit->pages()->first(); + + // Check chapters index page is showing + $this->visit($chapterToVisit->getUrl()) + ->seeStatusCode(200) + ->see($chapterToVisit->name) + // Check indavidual chapter page is showing and it's child contents are visible. + ->see($pageToVisit->name) + ->click($pageToVisit->name) + ->see($chapterToVisit->book->name) + ->see($chapterToVisit->name) + ->seePageIs($pageToVisit->getUrl()); + } + +} \ No newline at end of file