diff --git a/src/SkyPlugin.php b/src/SkyPlugin.php index 73da4bc..0293b8b 100644 --- a/src/SkyPlugin.php +++ b/src/SkyPlugin.php @@ -49,11 +49,11 @@ public function register(Panel $panel): void $panel->resources([PageResource::class]); } - if (! in_array(FaqResource::class, $this->getHiddenResources())) { + if ($this->hasFaqResource() && ! in_array(FaqResource::class, $this->getHiddenResources())) { $panel->resources([FaqResource::class]); } - if (! in_array(LibraryResource::class, $this->getHiddenResources())) { + if ($this->hasLibraryResource() && ! in_array(LibraryResource::class, $this->getHiddenResources())) { $panel->resources([LibraryResource::class]); } diff --git a/tests/SkyPluginTest.php b/tests/SkyPluginTest.php new file mode 100644 index 0000000..5cec214 --- /dev/null +++ b/tests/SkyPluginTest.php @@ -0,0 +1,30 @@ +register($panel); + + expect($panel->getResources()) + ->toContain(FaqResource::class) + ->toContain(LibraryResource::class); +}); + +it('does not register a disabled addon resource', function (string $method, string $disabledResource, string $enabledResource) { + $panel = Panel::make(); + + $plugin = SkyPlugin::make(); + $plugin->{$method}(false); + $plugin->register($panel); + + expect($panel->getResources())->not->toContain($disabledResource); + expect($panel->getResources())->toContain($enabledResource); +})->with([ + 'FAQ' => ['faqResource', FaqResource::class, LibraryResource::class], + 'library' => ['libraryResource', LibraryResource::class, FaqResource::class], +]);