Files
L-Ami-Fiduciaire/tests/Feature/Client/ClientEmailTest.php
Saad Ibn-Ezzoubayr fd43a6f429 feat: complete Epic 0 — foundation migration & infrastructure setup
Stories 0.2-0.5: rename folders→declarations (backend+frontend), configure
Redis for cache/queue/sessions, add foundation database migrations
(permissions, archived_at), replace DeclarationStatus enum with architecture
lifecycle values, create DeclarationObserver for status transition validation
and auto-archive, fix controller status transitions to respect observer rules.

93 tests pass (240 assertions).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 18:25:32 +00:00

34 lines
986 B
PHP

<?php
use App\Models\Client;
test('primary_contact_email returns principal contact email', function () {
$client = Client::factory()->create();
$principal = $client->contacts->firstWhere('is_principal', true);
expect($client->primary_contact_email)->toBe($principal->email);
});
test('primary_contact_email falls back to old contact_email column', function () {
$client = Client::factory()->create([
'contact_email' => 'fallback@test.com',
]);
// Remove all contacts to force fallback
$client->contacts()->delete();
$client->unsetRelation('primaryContact');
expect($client->primary_contact_email)->toBe('fallback@test.com');
});
test('primary_contact_email returns null when no contact exists', function () {
$client = Client::factory()->create([
'contact_email' => null,
]);
$client->contacts()->delete();
$client->unsetRelation('primaryContact');
expect($client->primary_contact_email)->toBeNull();
});