Minor UI changes
Some checks failed
Tests et déploiement / validate (push) Failing after 3m19s
Tests et déploiement / deploy (push) Has been skipped

This commit is contained in:
2026-10-11 09:16:57 +02:00
parent 0be1d54347
commit e02730f5db
7 changed files with 62 additions and 57 deletions

View File

@@ -13,6 +13,7 @@ async function importFixture(page, payload = fixture()) {
await page.clock.install({ time:now });
await page.goto('/#/settings');
await expect(page.getByRole('heading',{name:'Réglages',exact:true})).toBeVisible();
await expect(page.getByText('Pensez à exporter et vérifier régulièrement une sauvegarde pour pouvoir restaurer vos données en cas de perte de l’appareil.',{exact:true})).toBeVisible();
await page.getByRole('button',{name:'Gérer les données et sauvegardes'}).click();
await expect(page.getByRole('heading',{name:'Données et sauvegardes',exact:true})).toBeVisible();
await page.locator('input[type=file]').setInputFiles({ name:'fixture-synthetique.json',mimeType:'application/json',buffer:Buffer.from(JSON.stringify(payload)) });
@@ -21,6 +22,11 @@ async function importFixture(page, payload = fixture()) {
await expect(page.getByRole('status').filter({hasText:'Données remplacées'})).toBeVisible();
await page.getByRole('button',{name:'Récap',exact:true}).click();
}
async function openDataSettings(page) {
await page.getByRole('button',{name:'Réglages',exact:true}).click();
await page.getByRole('button',{name:'Gérer les données et sauvegardes'}).click();
await expect(page.getByRole('heading',{name:'Données et sauvegardes',exact:true})).toBeVisible();
}
async function entries(page) {
return page.evaluate(() => new Promise((resolve,reject) => {
const request = indexedDB.open('TimeLogDB');
@@ -88,8 +94,7 @@ test('consultation, correction, recalcul, copie et statistiques à 320 px', asyn
await expect(page.getByText('Heures de présence',{exact:true})).toBeVisible();
await expect(page.getByTestId('stats-worked')).toHaveText('9h00');
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true);
// Wider or larger fonts must also fit the backup reminder on CI and mobile.
await expect(page.locator('.update')).toContainText('Sauvegarde à vérifier');
await expect(page.getByText('Sauvegarde à vérifier',{exact:true})).toHaveCount(0);
await page.addStyleTag({content:'.update { font-family: monospace; font-size: 24px; }'});
expect(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth)).toBe(true);
});
@@ -113,7 +118,7 @@ test('date conservée, rechargement et Retour depuis les trois nouvelles pages',
await expect(page.getByRole('heading',{name:'Réglages',exact:true})).toBeVisible();
});
test('écran données dédié, conservation persistée et accès depuis le rappel', async ({page}) => {
test('écran données dédié, conservation persistée et accès depuis les réglages', async ({page}) => {
await importFixture(page,fixture({dates:['2025-01-01',date]}));
await page.getByRole('button',{name:'Réglages',exact:true}).click();
await expect(page.getByRole('button',{name:'Exporter les données',exact:true})).toHaveCount(0);
@@ -144,14 +149,13 @@ test('écran données dédié, conservation persistée et accès depuis le rappe
await page.getByRole('button',{name:'Gérer les données et sauvegardes'}).click();
await page.goBack();
await expect(page.getByRole('heading',{name:'Réglages',exact:true})).toBeVisible();
await page.getByRole('button',{name:'Récap',exact:true}).click();
await page.getByRole('button',{name:'Sauvegarder',exact:true}).click();
await page.getByRole('button',{name:'Gérer les données et sauvegardes'}).click();
await expect(page.getByRole('heading',{name:'Données et sauvegardes',exact:true})).toBeVisible();
});
test('échec de conservation restaure le champ et les données, puis permet de réessayer', async ({page}) => {
await importFixture(page,fixture({dates:['2025-01-01',date]}));
await page.getByRole('button',{name:'Sauvegarder',exact:true}).click();
await openDataSettings(page);
const input = page.getByLabel('Conserver (jours)');
await expect(input).toHaveValue('30');
const before = await storedData(page);
@@ -250,7 +254,7 @@ test('export relu et vérifié, PWA relancée hors ligne', async ({page,context}
test('export modifié refusé sans écriture, puis vérification du fichier original', async ({page}) => {
await importFixture(page);
await page.getByRole('button',{name:'Sauvegarder',exact:true}).click();
await openDataSettings(page);
const downloading = page.waitForEvent('download');
await page.getByRole('button',{name:'Exporter les données',exact:true}).click();
const download = await downloading;
@@ -311,7 +315,7 @@ test('purge confirmée et restauration de sa sauvegarde récupérable', async ({
test('échec de purge conserve les journées et la sauvegarde précédente, puis permet de réessayer', async ({page}) => {
await importFixture(page,fixture({dates:['2025-01-01',date]}));
await page.getByRole('button',{name:'Sauvegarder',exact:true}).click();
await openDataSettings(page);
const dialog = page.getByRole('dialog',{name:'Confirmer la purge'});
await page.getByRole('button',{name:'Purger maintenant'}).click();
await dialog.getByRole('button',{name:'Confirmer la purge'}).click();