Merge branch 'claude/mfa-lever-barriere-enrolement'

This commit is contained in:
Michael committed 2026-08-10 17:05:09 +02:00
commit e27d61dd4c
13 files changed
+827 -27

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
import { expect, test } from '@playwright/test';
/**
* Registre unique du personnel — édition.
*
* Ce qui est éprouvé n'est pas la mise en page, mais qu'un fichier sorte et
* qu'il porte le bon établissement : un registre édité pour le mauvais site ne
* répond à aucune demande d'inspection.
*/
test('le registre s’édite par établissement', async ({ page }) => {
await page.goto('/equipe');
await page.getByRole('button', { name: 'Registre unique du personnel' }).click();
await expect(
page.getByRole('heading', {
name: 'Téléchargez votre registre unique du personnel',
}),
).toBeVisible();
// Sans établissement, rien à télécharger : le registre se tient par site.
const download = page.getByRole('link', { name: 'Télécharger' });
await expect(download).toHaveAttribute('aria-disabled', 'true');
const select = page.getByLabel('Établissement pour lequel éditer le registre');
const value = await select.locator('option').nth(1).getAttribute('value');
await select.selectOption(value!);
const started = page.waitForEvent('download');
await download.click();
const file = await started;
expect(file.suggestedFilename()).toMatch(/^RUP - .+\.pdf$/);
// Le contenu est bien un PDF, pas une page d'erreur renvoyée en 200.
const path = await file.path();
const { readFileSync } = await import('node:fs');
expect(readFileSync(path).subarray(0, 5).toString()).toBe('%PDF-');
});
test('l’adresse du registre refuse un établissement absent', async ({
page,
}) => {
const response = await page.goto('/equipe/registre');
expect(response?.status()).toBe(400);
});