businessportal24()->create(); $category ??= Category::factory()->create(['portal' => Portal::Both]); return PressRelease::factory() ->published() ->forPortal(Portal::Businessportal24) ->for($category) ->for($company) ->create(array_merge([ 'title' => $title, 'slug' => Str::slug($title).'-'.fake()->unique()->numberBetween(1000, 9999), 'language' => 'de', 'published_at' => now()->subDay(), ], $attributes)); } test('the search page renders the editorial shell and discovery state', function () { /** @var TestCase $this */ $this->get('https://businessportal24.test/de/suche') ->assertSuccessful() ->assertSee('businessportal', false) ->assertSeeText('Pressemitteilungen durchsuchen') ->assertSeeText('Durchsuchen Sie das Archiv'); }); test('the search page returns matching press releases for a query', function () { /** @var TestCase $this */ createSearchableRelease('Mittelständischer Fertiger eröffnet neues Werk'); $this->get('https://businessportal24.test/de/suche?q=Werk') ->assertSuccessful() ->assertSeeText('Mittelständischer Fertiger eröffnet neues Werk') ->assertSeeText('Ergebnis'); }); test('the search component filters by query and resets', function () { /** @var TestCase $this */ createSearchableRelease('Solarpark geht ans Netz'); createSearchableRelease('Neue Geschäftsführung berufen'); Volt::test('web.search', ['portal' => Portal::Businessportal24->value, 'language' => 'de']) ->set('q', 'Solarpark') ->assertSee('Solarpark geht ans Netz') ->assertDontSee('Neue Geschäftsführung berufen') ->call('clearFilters') ->assertSet('q', '') ->assertSee('Durchsuchen Sie das Archiv'); }); test('the search component filters by category', function () { /** @var TestCase $this */ $energie = Category::factory()->create(['portal' => Portal::Both]); $energie->translations()->create(['locale' => 'de', 'name' => 'Energie', 'slug' => 'energie']); $finanzen = Category::factory()->create(['portal' => Portal::Both]); $finanzen->translations()->create(['locale' => 'de', 'name' => 'Finanzen', 'slug' => 'finanzen']); createSearchableRelease('Windkraft-Ausbau beschleunigt', category: $energie); createSearchableRelease('Quartalszahlen veröffentlicht', category: $finanzen); Volt::test('web.search', ['portal' => Portal::Businessportal24->value, 'language' => 'de']) ->call('selectCategory', 'energie') ->assertSee('Windkraft-Ausbau beschleunigt') ->assertDontSee('Quartalszahlen veröffentlicht'); }); test('the search page is available per edition and portal', function () { /** @var TestCase $this */ $this->get('https://businessportal24.test/en/suche')->assertSuccessful(); $this->get('https://presseecho.test/de/suche') ->assertSuccessful() ->assertSee('presse', false); });