generated from bastian/boilerplate
51 lines
1.9 KiB
TypeScript
51 lines
1.9 KiB
TypeScript
import { TestBed } from '@angular/core/testing';
|
|
import { ActivatedRoute } from '@angular/router';
|
|
import { ApiClientService, type AdminUserDetailDto, type RoleDto } from '@boilerplate/api-client';
|
|
import { of } from 'rxjs';
|
|
import { AdminUserDetailPageComponent } from './admin-user-detail.page';
|
|
|
|
describe('AdminUserDetailPageComponent', () => {
|
|
it('shows OIDC role provenance and does not offer local removal without a manual source', async () => {
|
|
const adminRole = {
|
|
id: 'admin-role',
|
|
name: 'admin',
|
|
description: 'Administrator',
|
|
system: true,
|
|
protected: true,
|
|
roleKey: 'ADMIN',
|
|
oidcManaged: true,
|
|
oidcRoleName: 'hauspilot-admin',
|
|
permissions: [],
|
|
} satisfies RoleDto;
|
|
const user = {
|
|
id: 'user-1',
|
|
name: 'Bastian',
|
|
email: 'admin@example.test',
|
|
active: true,
|
|
roles: [{ id: adminRole.id, name: 'admin', system: true, sources: ['OIDC'] }],
|
|
lastLoginAt: '2026-07-20',
|
|
createdAt: '2026-07-20',
|
|
activeSessionCount: 0,
|
|
effectivePermissions: [],
|
|
sessions: [],
|
|
} satisfies AdminUserDetailDto;
|
|
await TestBed.configureTestingModule({
|
|
imports: [AdminUserDetailPageComponent],
|
|
providers: [
|
|
{ provide: ActivatedRoute, useValue: { snapshot: { paramMap: { get: () => user.id } } } },
|
|
{
|
|
provide: ApiClientService,
|
|
useValue: { adminRoles: () => of([adminRole]), adminUser: () => of(user) },
|
|
},
|
|
],
|
|
}).compileComponents();
|
|
const fixture = TestBed.createComponent(AdminUserDetailPageComponent);
|
|
fixture.detectChanges();
|
|
const host = fixture.nativeElement as HTMLElement;
|
|
|
|
expect(host.textContent).toContain('Herkunft: OIDC');
|
|
expect(host.textContent).toContain('Entfernen Sie die externe Rolle im Identity Provider');
|
|
expect(host.textContent).not.toContain('Manuelle Zuweisung entfernen');
|
|
});
|
|
});
|