Los cambios en reporte de eficiencia
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled

This commit is contained in:
2026-06-23 17:09:54 -03:00
parent ecfb72c3f1
commit bf200b72f9
5 changed files with 813 additions and 25 deletions

View File

@@ -286,17 +286,23 @@ describe('ComparisonTable', () => {
currency="USD"
/>
)
// Buscar el th que contiene "Ahorro" (hay múltiples elementos con ese texto)
// Buscar el th que contiene "Ahorro" exacto (no "Ahorro esperado" — hay múltiples
// columnas cuyo texto incluye "Ahorro" desde Etapa 5)
const headers = screen.getAllByRole('columnheader')
const ahorroHeader = headers.find((h) => /Ahorro/i.test(h.textContent ?? ''))
const ahorroHeader = headers.find((h) => /^Ahorro$/i.test((h.textContent ?? '').trim()))
expect(ahorroHeader).toBeDefined()
// Antes del click: orden desc (a1=540 primero)
// Sort por defecto es 'efficiency' (Etapa 5). Con esta fixture, executionProbability
// y executionTimeMinutes son iguales en todas las filas, así que ordenar por
// efficiency-desc y por savings-desc da el mismo orden visual (a1 primero).
const rowsBefore = screen.getAllByRole('row').slice(1)
const firstNameBefore = rowsBefore[0].textContent
// Primer click: cambia la columna activa a 'savings' (desc) — el orden no cambia
// para esta fixture porque coincide con el de 'efficiency'.
fireEvent.click(ahorroHeader!)
// Segundo click: misma columna ya activa → invierte a asc (a3/null al final, a2 primero)
fireEvent.click(ahorroHeader!)
// Después del click: orden asc (a3=0 primero)
const rowsAfter = screen.getAllByRole('row').slice(1)
const firstNameAfter = rowsAfter[0].textContent