All checks were successful
Anonymous openbaar portal completing the walking skeleton (submit → projection → public visibility). closes #10
35 lines
1.7 KiB
TypeScript
35 lines
1.7 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
// Walking-skeleton happy path (S-08d + S-09): a zorgprofessional logs in via mock DigiD and submits a
|
|
// registration through the self-service portal → BFF → domain; the projection is updated via NRC → the
|
|
// event-subscriber, and the entry becomes publicly visible in the openbaar register portal.
|
|
test('DigiD login → submit → confirmation → public visibility', async ({ page }) => {
|
|
// Visiting the guarded page redirects to the Keycloak (mock DigiD) login.
|
|
await page.goto('/');
|
|
|
|
// Keycloak's default login form (stable ids across themes).
|
|
await page.locator('#username').fill('jan-burger');
|
|
await page.locator('#password').fill('test123');
|
|
await page.locator('#kc-login').click();
|
|
|
|
// Back on the portal, authenticated.
|
|
await expect(page.getByRole('heading', { name: /Zelfservice/i })).toBeVisible();
|
|
|
|
await page.getByRole('button', { name: /indienen/i }).click();
|
|
|
|
// The BFF accepted it and the page shows the confirmation.
|
|
await expect(page.getByText(/ontvangen/i)).toBeVisible();
|
|
|
|
// The openbaar register (anonymous, its own origin) shows the submitted entry once the projection
|
|
// catches up. The projection updates asynchronously (NRC → event-subscriber), and the register loads
|
|
// on open, so reload until a submitted (INGEDIEND) row appears.
|
|
await page.goto('http://openbaar/');
|
|
await expect(page.getByRole('heading', { name: /Openbaar BIG-register/i })).toBeVisible();
|
|
await expect
|
|
.poll(async () => {
|
|
await page.reload();
|
|
return page.getByRole('cell', { name: 'INGEDIEND' }).count();
|
|
}, { timeout: 30_000, intervals: [1_000, 2_000, 3_000, 5_000] })
|
|
.toBeGreaterThan(0);
|
|
});
|