updateOrCreate( ['group' => 'pages', 'key' => 'referenzen_enabled'], ['value' => $enabled ? '1' : '0', 'type' => 'boolean'], ); } it('shows the page and the menu item while the switch is on or unset', function () { $this->get('/referenzen')->assertSuccessful(); $this->get('/')->assertSuccessful()->assertSee('href="/referenzen"', false); referencesSwitch(true); $this->get('/referenzen')->assertSuccessful(); }); it('hides the page, the menu item and the feed button while the switch is off', function () { referencesSwitch(false); $this->get('/referenzen')->assertNotFound(); $this->get('/')->assertSuccessful()->assertDontSee('href="/referenzen"', false); $this->get('/marken')->assertSuccessful()->assertDontSee('href="/referenzen"', false); Livewire::test(DisplayFeed::class)->assertSet('showLink', false); }); it('keeps the feed button when it points somewhere else', function () { referencesSwitch(false); \FluxCms\Core\Models\CmsContent::create(['group' => 'referenzen', 'key' => 'display_feed', 'type' => 'json', 'order' => 0, 'value' => [ 'de' => ['title' => 'Aus den Stores', 'link_text' => 'Zum Showroom', 'link_url' => '/contact'], ]]); Livewire::test(DisplayFeed::class)->assertSet('showLink', true); }); it('switches the page from the references module in the CMS', function () { $this->actingAs(User::factory()->create()); Volt::test('admin.cms.references-index') ->assertSet('pageEnabled', true) ->set('pageEnabled', false); expect(references_page_enabled())->toBeFalse(); $this->get('/referenzen')->assertNotFound(); Volt::test('admin.cms.references-index') ->assertSet('pageEnabled', false) ->set('pageEnabled', true); expect(references_page_enabled())->toBeTrue(); }); it('switches the page off on deployment but respects a choice made in the CMS', function () { $this->seed(ReferencesPageSwitchSeeder::class); expect(references_page_enabled())->toBeFalse(); referencesSwitch(true); $this->seed(ReferencesPageSwitchSeeder::class); expect(references_page_enabled())->toBeTrue(); });