forgetCachedPermissions(); Role::create(['name' => 'Retailer']); Role::create(['name' => 'Customer']); }); test('authenticated user can view partner profile page', function () { $hub = Hub::factory()->create(); $partner = Partner::factory()->setupCompleted()->create([ 'hub_id' => $hub->id, 'company_name' => 'Tischlerei Müller GmbH', ]); $user = User::factory()->create(); $this->actingAs($user); Volt::test('partner.profile', ['partnerId' => $partner->id]) ->assertSee($partner->company_name); }); test('partner profile shows display name when set', function () { $hub = Hub::factory()->create(); $partner = Partner::factory()->setupCompleted()->create([ 'hub_id' => $hub->id, 'company_name' => 'Tischlerei Müller GmbH', 'display_name' => 'Tischlerei Müller', ]); $user = User::factory()->create(); $this->actingAs($user); Volt::test('partner.profile', ['partnerId' => $partner->id]) ->assertSee('Tischlerei Müller') ->assertSee('Tischlerei Müller GmbH'); }); test('partner profile shows story text when present', function () { $hub = Hub::factory()->create(); $partner = Partner::factory()->setupCompleted()->create([ 'hub_id' => $hub->id, 'story_text' => 'Wir sind seit 1985 eine regionale Tischlerei.', ]); $user = User::factory()->create(); $this->actingAs($user); Volt::test('partner.profile', ['partnerId' => $partner->id]) ->assertSee('Wir sind seit 1985 eine regionale Tischlerei.'); }); test('partner profile only shows active curated available products', function () { $hub = Hub::factory()->create(); $partner = Partner::factory()->setupCompleted()->create(['hub_id' => $hub->id]); $visibleProduct = Product::factory()->create([ 'partner_id' => $partner->id, 'hub_id' => $hub->id, 'status' => ProductStatus::Active, 'is_curated' => true, 'is_available' => true, ]); $draftProduct = Product::factory()->create([ 'partner_id' => $partner->id, 'hub_id' => $hub->id, 'status' => ProductStatus::Draft, 'is_curated' => false, 'is_available' => false, ]); $user = User::factory()->create(); $this->actingAs($user); Volt::test('partner.profile', ['partnerId' => $partner->id]) ->assertSee($visibleProduct->name) ->assertDontSee($draftProduct->name); }); test('partner profile throws model not found for non-existent partner', function () { $user = User::factory()->create(); $this->actingAs($user); expect(fn () => Volt::test('partner.profile', ['partnerId' => 99999])) ->toThrow(ModelNotFoundException::class); }); test('unauthenticated user is redirected from partner profile', function () { $hub = Hub::factory()->create(); $partner = Partner::factory()->setupCompleted()->create(['hub_id' => $hub->id]); $this->get(route('partner.profile', ['partnerId' => $partner->id])) ->assertRedirect(route('login')); });