fix(ci): compatibilidad con el runner self-hosted (npm 10 / Node 20)
deploy-branch / deploy (push) Successful in 2m43s
deploy-branch / teardown (push) Skipped

- vitest 4 traía vite 8 anidado con esbuild 0.28: el lockfile quedaba
  incompleto para npm ci y el npm 10.8.2 del runner fallaba con
  "Missing @esbuild/* from lock file" / EBADPLATFORM. vitest 3 usa el
  vite 5 del proyecto como peer: sin árbol anidado, esbuild solo 0.21.5
- jsdom 30 exige Node >=22.22 (el runner tiene 20.20): bajado a jsdom 26
- tests.yml sobre el runner real (self-hosted, Node del sistema) en vez
  de ubuntu-latest, que no existe como label
- aserciones de max()/calc() tolerantes a la serialización de jsdom 26
This commit is contained in:
2026-08-18 07:27:19 +02:00
parent 7bb3ea22da
commit 0c5651a6c0
6 changed files with 717 additions and 1294 deletions
+7 -2
View File
@@ -30,8 +30,13 @@ describe("BotonProponerArriba (solo PC)", () => {
expect(boton.style.position).toBe("fixed");
expect(boton.style.top).toBe("20px");
// alineado al borde derecho de la columna de 720px; mínimo 16px
expect(boton.getAttribute("style")).toMatch(/right:\s*max\(16px,\s*[^;]*100vw[^;]*720px[^;]*16px[^;]*\)/);
// alineado al borde derecho de la columna de 720px; mínimo 16px.
// (la serialización exacta de max()/calc() varía entre versiones de jsdom)
const right = (boton.getAttribute("style").match(/right:\s*([^;]+)/) || [])[1];
expect(right).toMatch(/max\(/);
expect(right).toContain("100vw");
expect(right).toContain("720px");
expect(right).toContain("16px");
fireEvent.click(boton);
expect(onClick).toHaveBeenCalledTimes(1);