refactor: address loading review findings (#18)

This commit is contained in:
nessar committed 2026-08-17 14:18:15 +02:00
1 parent ec3319494b
commit 0f68a91c5d
26 files changed
+607 -364

No files matched your search

@@ -4,13 +4,30 @@ import { LeaseCard } from './lease-card';
describe('LeaseCard', () => {
it('resolves apartment, tenants, and every status label', () => {
const fixture = TestBed.createComponent(LeaseCard);
fixture.componentRef.setInput('apartments', [{ id: 'apartment-1', name: 'T2', address: '', purchasePrice: 0, description: '' }]);
fixture.componentRef.setInput('apartments', [
{ id: 'apartment-1', name: 'T2', address: '', purchasePrice: 0, description: '' },
]);
fixture.componentRef.setInput('tenants', [
{ id: 'tenant-1', firstName: 'Camille', lastName: 'Martin', email: '', phone: '', address: '' },
{
id: 'tenant-1',
firstName: 'Camille',
lastName: 'Martin',
email: '',
phone: '',
address: '',
},
{ id: 'tenant-2', firstName: 'Alex', lastName: 'Durand', email: '', phone: '', address: '' },
]);
fixture.componentRef.setInput('lease', {
apartmentId: 'apartment-1', tenantIds: ['tenant-1', 'missing', 'tenant-2'], guarantors: [], startDate: '', endDate: '', monthlyRent: 0, monthlyCharges: 0, securityDeposit: 0, status: 'DRAFT',
apartmentId: 'apartment-1',
tenantIds: ['tenant-1', 'missing', 'tenant-2'],
guarantors: [],
startDate: '',
endDate: '',
monthlyRent: 0,
monthlyCharges: 0,
securityDeposit: 0,
status: 'DRAFT',
});
const component = fixture.componentInstance;
@@ -19,8 +36,41 @@ describe('LeaseCard', () => {
expect(component.statusLabel()).toBe('Bail en préparation');
fixture.componentRef.setInput('lease', { ...component.lease(), status: 'ACTIVE' });
expect(component.statusLabel()).toBe('Bail actif');
fixture.componentRef.setInput('lease', { ...component.lease(), apartmentId: 'missing', status: 'ARCHIVED' });
fixture.componentRef.setInput('lease', {
...component.lease(),
apartmentId: 'missing',
status: 'ARCHIVED',
});
expect(component.apartmentName()).toBe('Bien inconnu');
expect(component.statusLabel()).toBe('Bail archivé');
});
it('shows local Bail PDF download progress and failure', () => {
const fixture = TestBed.createComponent(LeaseCard);
fixture.componentRef.setInput('apartments', []);
fixture.componentRef.setInput('tenants', []);
fixture.componentRef.setInput('lease', {
id: 'lease-1',
apartmentId: 'apartment-1',
tenantIds: [],
guarantors: [],
startDate: '2026-01-01',
endDate: '2027-01-01',
monthlyRent: 800,
monthlyCharges: 50,
securityDeposit: 800,
status: 'ACTIVE',
});
fixture.componentRef.setInput('downloading', true);
fixture.detectChanges();
const download = fixture.nativeElement.querySelector('.card-actions button');
expect(download.disabled).toBe(true);
expect(download.textContent).toContain('Téléchargement…');
fixture.componentRef.setInput('downloading', false);
fixture.componentRef.setInput('downloadError', 'Impossible de télécharger ce bail.');
fixture.detectChanges();
expect(fixture.nativeElement.textContent).toContain('Impossible de télécharger ce bail.');
});
});