/** * Tests E2E — Recharge de jauge en cours de session * * Setup: enclos avec baffeur a 100, DD ajoutee, timer demarre. * Recharge la jauge a 50000 et verifie les mises a jour. */ import { test, expect } from './electron-app'; test.describe('Recharge de jauge pendant une session', () => { test.beforeEach(async ({ page }) => { // Naviguer vers le premier enclos const firstEnclos = page.locator('.sb-item[data-view]').filter({ has: page.locator('.sb-dot'), }).first(); await firstEnclos.click(); await expect(page.locator('.enclos-view')).toBeVisible({ timeout: 5000 }); // Activer baffeur avec niveau bas (100) await page.click('.gauge-btn[data-gid="baffeur"]'); const gaugeInput = page.locator('.gauge-inp[data-gid="baffeur"]'); await gaugeInput.click(); await gaugeInput.fill('100'); await gaugeInput.press('Enter'); // L'enclos contient deja 1 DD (creee avec l'enclos) await expect(page.locator('.dd-grid .dd-card')).toHaveCount(1, { timeout: 5000 }); // Demarrer le timer await page.click('.enc-start-btn'); await expect(page.locator('.enc-btn-pause')).toBeVisible({ timeout: 3000 }); }); test('Recharger la jauge met a jour "Alarme dans"', async ({ page }) => { // Avec une jauge a 100, elle se vide rapidement // Attendre un peu pour que la jauge commence a se drainer await page.waitForTimeout(1000); // Recharger la jauge a 50000 const gaugeInput = page.locator('.gauge-inp[data-gid="baffeur"]'); await gaugeInput.click(); await gaugeInput.fill('50000'); await gaugeInput.press('Enter'); // Attendre la mise a jour du DOM await page.waitForTimeout(500); // "Alarme dans" devrait montrer un vrai temps (pas infini) const alarmText = await page.locator('.enc-alarm').textContent(); expect(alarmText).not.toBe('\u221e'); expect(alarmText).not.toBe('--:--:--'); }); test('La barre de jauge se met a jour apres la recharge', async ({ page }) => { // Capturer la largeur de la barre avant la recharge const barBefore = await page.locator('.enc-gauge-bar-fill').first().evaluate( (el: HTMLElement) => parseFloat(el.style.width) ); // Recharger a 80000 const gaugeInput = page.locator('.gauge-inp[data-gid="baffeur"]'); await gaugeInput.click(); await gaugeInput.fill('80000'); await gaugeInput.press('Enter'); // Attendre la mise a jour await page.waitForTimeout(500); // La barre devrait etre plus large maintenant const barAfter = await page.locator('.enc-gauge-bar-fill').first().evaluate( (el: HTMLElement) => parseFloat(el.style.width) ); expect(barAfter).toBeGreaterThan(barBefore); }); });