create(['name' => 'Lokalisierter ManagedEnvironment']); [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'readonly'); $user->forceFill(['preferred_locale' => 'de'])->save(); $snapshot = seedEnvironmentReviewEvidence($tenant); $review = composeEnvironmentReviewForTest($tenant, $user, $snapshot); $review->forceFill([ 'status' => EnvironmentReviewStatus::Published->value, 'published_at' => now(), 'published_by_user_id' => (int) $user->getKey(), ])->save(); App::setLocale('de'); $this->actingAs($user); setAdminPanelContext(); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); Livewire::actingAs($user) ->test(CustomerReviewWorkspace::class) ->assertCanSeeTableRecords([$tenant->fresh()]) ->assertSee('Kundensichere Review-Pakete') ->assertSee('Prüfen Sie veröffentlichte Governance-Pakete, Evidence-Bereitschaft, akzeptierte Risiken und Übergabestatus über berechtigte Umgebungen hinweg.') ->assertSee('Nur Service-Delivery-Zusammenfassung. Ersetzt weder formales Auditurteil noch Zertifizierung oder rechtliche Attestierung.') ->assertSee('Review-Paket-Index') ->assertSee('Offenlegungsregel') ->assertSee('Governance-Paket') ->assertSee('Nachweise') ->assertSee('Nächster Schritt') ->assertSee('Review öffnen') ->assertDontSee('Customer-safe governance package index'); }); it('renders the customer review detail surface in german for the effective locale', function (): void { Storage::fake('exports'); $tenant = ManagedEnvironment::factory()->create(['name' => 'Lokalisierter Detail-ManagedEnvironment']); [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'owner'); $user->forceFill(['preferred_locale' => 'de'])->save(); $snapshot = seedEnvironmentReviewEvidence($tenant); $review = composeEnvironmentReviewForTest($tenant, $user, $snapshot); $review->forceFill([ 'status' => EnvironmentReviewStatus::Published->value, 'published_at' => now(), 'published_by_user_id' => (int) $user->getKey(), ])->save(); Storage::disk('exports')->put('review-packs/customer-review-localization-test.zip', 'PK-test'); $pack = ReviewPack::factory()->ready()->create([ 'managed_environment_id' => (int) $tenant->getKey(), 'workspace_id' => (int) $tenant->workspace_id, 'environment_review_id' => (int) $review->getKey(), 'evidence_snapshot_id' => (int) $snapshot->getKey(), 'initiated_by_user_id' => (int) $user->getKey(), 'file_path' => 'review-packs/customer-review-localization-test.zip', 'file_disk' => 'exports', ]); $review->forceFill(['current_export_review_pack_id' => (int) $pack->getKey()])->save(); App::setLocale('de'); setAdminEnvironmentContext($tenant); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get(EnvironmentReviewResource::environmentScopedUrl('view', ['record' => $review], $tenant).'?'.http_build_query([ CustomerReviewWorkspace::DETAIL_CONTEXT_QUERY_KEY => 1, ])) ->assertOk() ->assertSee('Veröffentlichter Governance-Nachweis') ->assertSee('Primäre Aktion') ->assertSee('Internen Bericht anzeigen') ->assertSee('Executive-Einstieg') ->assertSee('Strukturierter Auditor-Anhang') ->assertDontSee('Released governance record'); $component = localizedEnvironmentReviewComponent($user, $review->getKey()); $component->assertActionExists( 'open_current_rendered_report', fn (\Filament\Actions\Action $action): bool => $action->getLabel() === 'Internen Bericht anzeigen', ); }); function localizedEnvironmentReviewComponent($user, int $reviewId): Testable { return Livewire::withQueryParams([CustomerReviewWorkspace::DETAIL_CONTEXT_QUERY_KEY => 1]) ->actingAs($user) ->test(ViewEnvironmentReview::class, ['record' => $reviewId]); }