+
+ public function test_all_endpoint_includes_parent_details_where_visible()
+ {
+ $page = $this->entities->pageWithinChapter();
+ $chapter = $page->chapter;
+ $book = $page->book;
+
+ $page->update(['name' => 'name with superextrauniquevalue within']);
+ $page->indexForSearch();
+
+ $editor = $this->users->editor();
+ $this->actingAsApiEditor();
+ $resp = $this->getJson($this->baseEndpoint . '?query=superextrauniquevalue');
+ $resp->assertJsonFragment([
+ 'id' => $page->id,
+ 'type' => 'page',
+ 'book' => [
+ 'id' => $book->id,
+ 'name' => $book->name,
+ 'slug' => $book->slug,
+ ],
+ 'chapter' => [
+ 'id' => $chapter->id,
+ 'name' => $chapter->name,
+ 'slug' => $chapter->slug,
+ ],
+ ]);
+
+ $this->permissions->disableEntityInheritedPermissions($chapter);
+ $this->permissions->setEntityPermissions($page, ['view'], [$editor->roles()->first()]);
+
+ $resp = $this->getJson($this->baseEndpoint . '?query=superextrauniquevalue');
+ $resp->assertJsonPath('data.0.id', $page->id);
+ $resp->assertJsonPath('data.0.book.name', $book->name);
+ $resp->assertJsonMissingPath('data.0.chapter');
+
+ $this->permissions->disableEntityInheritedPermissions($book);
+
+ $resp = $this->getJson($this->baseEndpoint . '?query=superextrauniquevalue');
+ $resp->assertJsonPath('data.0.id', $page->id);
+ $resp->assertJsonMissingPath('data.0.book.name');
+ }