import { TestBed } from '@angular/core/testing'; import { ActivatedRoute, convertToParamMap, provideRouter } from '@angular/router'; import { of } from 'rxjs'; import { PublicTeamApi } from '../../core/team/public-team-api'; import { PublicTeam } from './public-team'; describe('PublicTeam', () => { it('renders the combined public team response without a separate penalty request', async () => { const team = { name: 'Team A', balance: 120, outstanding: 15, players: [ { id: 7, firstName: 'Bea', lastName: 'Test', balance: -5, active: true }, { id: 8, firstName: 'Inaktiv', lastName: 'Mitglied', balance: 0, active: false }, ], penalties: [{ id: 1, description: 'Zu spät', amount: 5 }], }; await TestBed.configureTestingModule({ imports: [PublicTeam], providers: [ provideRouter([]), { provide: ActivatedRoute, useValue: { snapshot: { paramMap: convertToParamMap({ token: 'public-token' }) } }, }, { provide: PublicTeamApi, useValue: { loadTeam: vi.fn(() => of(team)) } }, ], }).compileComponents(); const fixture = TestBed.createComponent(PublicTeam); fixture.detectChanges(); expect(fixture.nativeElement.textContent).toContain('Team A'); expect(fixture.nativeElement.textContent).toContain('Bea Test'); expect(fixture.nativeElement.textContent).not.toContain('Inaktiv Mitglied'); expect(fixture.nativeElement.textContent).toContain('Zu spät'); }); });