published()->create([ 'slug' => 'essenza', 'eyebrow' => 'Assessoria', 'title_line' => 'Assessoria', 'title_emphasis' => 'Completa', 'hero_lead' => 'Do planejamento ao grande dia, com calma, precisão e cuidado.', 'benefits' => [ ['icon_key' => 'calendar', 'label' => 'Organização integral'], ['icon_key' => 'users', 'label' => 'Fornecedores selecionados'], ], 'included_items' => [ ['icon_key' => 'checklist', 'title' => 'Planejamento completo', 'description' => 'Cada etapa mapeada com clareza.'], ['icon_key' => 'map', 'title' => 'Gestão de fornecedores', 'description' => 'Contatos e prazos sob cuidado.'], ], 'audience_heading' => 'Para quem é este pacote', 'audience_intro' => 'Para quem quer uma assessoria completa, do início ao fim.', 'audience_points' => ['Casamentos', 'Eventos corporativos'], 'final_cta_heading' => 'Pronta para começar?', 'final_cta_body' => 'Conte seu evento para a Amare e receba uma proposta.', ]); $response = $this->get(route('packages.show', $package->slug)); $response ->assertOk() ->assertSee('Assessoria') ->assertSee('Completa') ->assertSee('Do planejamento ao grande dia, com calma, precisão e cuidado.') ->assertSee('Organização integral') ->assertSee('Fornecedores selecionados') ->assertSee('O que está incluso') ->assertSee('Planejamento completo') ->assertSee('Cada etapa mapeada com clareza.') ->assertSee('Gestão de fornecedores') ->assertSee('Para quem é este pacote') ->assertSee('Casamentos') ->assertSee('Eventos corporativos') ->assertSee('Pronta para começar?') ->assertSee('Conte seu evento para a Amare e receba uma proposta.') ->assertSee('Solicitar proposta'); } public function test_draft_package_returns_404(): void { SiteSetting::instance(); $package = WeddingPackage::factory()->create([ 'slug' => 'rascunho-interno', 'title_line' => 'Rascunho', ]); $response = $this->get(route('packages.show', $package->slug)); $response->assertNotFound(); } public function test_unknown_slug_returns_404(): void { SiteSetting::instance(); $this->get(route('packages.show', 'inexistente'))->assertNotFound(); } public function test_package_cta_uses_whatsapp_when_a_number_is_configured(): void { SiteSetting::instance()->update(['whatsapp_number' => '+55 11 98888-7777']); $package = WeddingPackage::factory()->published()->create([ 'name' => 'Essenza', ]); $response = $this->get(route('packages.show', $package->slug)); $response ->assertOk() ->assertSee( 'https://wa.me/5511988887777?text='.rawurlencode('Olá, gostaria de conversar sobre a modalidade Essenza para meu casamento.'), false, ) ->assertSee('target="_blank"', false) ->assertDontSee(route('briefing', ['servico_interesse' => 'Essenza']), false); } public function test_package_cta_falls_back_to_briefing_without_whatsapp_number(): void { SiteSetting::instance(); $package = WeddingPackage::factory()->published()->create([ 'name' => 'Essenza', ]); $response = $this->get(route('packages.show', $package->slug)); $response ->assertOk() ->assertSee(route('briefing', ['servico_interesse' => 'Essenza']), false) ->assertDontSee('wa.me/', false); } }