test(admin): navigate populated Users pagination in responsive checks

This commit is contained in:
cesnimda
2026-10-21 08:05:01 +02:00
parent f51e0506cc
commit 2f772e1322
3 changed files with 127 additions and 0 deletions
@@ -120,12 +120,26 @@ test('[P7-10 Users A01] finite bilingual light/dark widths retain long identitie
test.setTimeout(180_000); const administrator=await login(session.requests, page.request, 'e2e@example.test');
const email=`long-administrative-identity-${Date.now()}@example.test`;
expect((await call(session.requests, page.request, 'POST', '/users', administrator.headers, { email, password, roles: [] })).status()).toBe(200);
for (let index=0; index<10; index++) {
expect((await call(session.requests, page.request, 'POST', '/users', administrator.headers, { email: `a-page-${index}-${email}`, password, roles: [] })).status()).toBe(200);
}
const samples=[{ width: 320, language: 'nb', mode: 'dark' }, { width: 390, language: 'en', mode: 'light' }, { width: 768, language: 'nb', mode: 'light' }, { width: 1024, language: 'en', mode: 'dark' }, { width: 1440, language: 'en', mode: 'light' }, { width: 1920, language: 'nb', mode: 'dark' }] as const;
for (const sample of samples) {
expect((await call(session.requests, page.request, 'PUT', '/auth/preferences/language', administrator.headers, { language: sample.language==='nb' ? 'nb-NO' : 'en' })).status()).toBe(204);
await page.addInitScript(value => { localStorage.setItem('uiLanguage', value.language); localStorage.setItem('jobtracker.themeMode', value.mode); }, sample);
await start(page, '/admin/users', sample.width);
await expect(page.getByRole('heading', { level: 3, name: copy('adminUsersCreateUser', sample.language), exact: true })).toBeVisible();
if (sample.width>=768) {
const grid=page.getByRole('grid');
await expect(grid.getByRole('row').nth(1)).toBeVisible();
while (!await page.getByText(email, { exact: true }).first().isVisible()) {
const next=page.getByRole('button', { name: 'Go to next page', exact: true });
await expect(next).toBeEnabled();
const before=await grid.getByRole('row').nth(1).innerText();
await next.click();
await expect.poll(() => grid.getByRole('row').nth(1).innerText()).not.toBe(before);
}
}
await expect(page.getByText(email, { exact: true }).first()).toBeVisible();
if (sample.width>=768) {
const region=page.getByRole('region', { name: copy('adminUsersTitle', sample.language), exact: true }); await expect(region).toHaveAttribute('tabindex', '0');