The lib barrel exports the generated BffApiV1Service + models (SubmitAccepted, OpenbaarEntry), so the app can inject a typed client for the BFF. Add an 'api-client:generate' target (orval) to regenerate from services/bff/openapi.json; generation is idempotent. Tests (HttpClientTesting) now pass: POST /self-service/ registrations and GET /openbaar/register with the query, mapping typed responses. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { provideHttpClient } from '@angular/common/http';
|
|
import {
|
|
HttpTestingController,
|
|
provideHttpClientTesting,
|
|
} from '@angular/common/http/testing';
|
|
import { TestBed } from '@angular/core/testing';
|
|
import {
|
|
BffApiV1Service,
|
|
type OpenbaarEntry,
|
|
type SubmitAccepted,
|
|
} from '../index';
|
|
|
|
describe('BffApiV1Service (generated from services/bff/openapi.json)', () => {
|
|
let service: BffApiV1Service;
|
|
let http: HttpTestingController;
|
|
|
|
beforeEach(() => {
|
|
TestBed.configureTestingModule({
|
|
providers: [provideHttpClient(), provideHttpClientTesting()],
|
|
});
|
|
service = TestBed.inject(BffApiV1Service);
|
|
http = TestBed.inject(HttpTestingController);
|
|
});
|
|
|
|
afterEach(() => http.verify());
|
|
|
|
it('submits a registration via POST /self-service/registrations', () => {
|
|
let result: SubmitAccepted | undefined;
|
|
service.postSelfServiceRegistrations().subscribe((r) => (result = r));
|
|
|
|
const req = http.expectOne('/self-service/registrations');
|
|
expect(req.request.method).toBe('POST');
|
|
req.flush({ registrationId: 'reg-1', status: 'Ingediend' });
|
|
|
|
expect(result?.registrationId).toBe('reg-1');
|
|
expect(result?.status).toBe('Ingediend');
|
|
});
|
|
|
|
it('reads the openbaar register via GET /openbaar/register with the query', () => {
|
|
let rows: OpenbaarEntry[] | undefined;
|
|
service.getOpenbaarRegister({ q: 'abc' }).subscribe((r) => (rows = r));
|
|
|
|
const req = http.expectOne((r) => r.url === '/openbaar/register');
|
|
expect(req.request.method).toBe('GET');
|
|
expect(req.request.params.get('q')).toBe('abc');
|
|
req.flush([{ id: 'abc-111', status: 'INGEDIEND' }]);
|
|
|
|
expect(rows?.[0].id).toBe('abc-111');
|
|
});
|
|
});
|