Squash of the patch of item 0xdae7aabec6318eccda62187f8fc64a511295f86a3ce9d036cbf8f412cd8c4904, final in the elffuss ledger. Solver 0xeb104004d5d1c1f091d70119cbfe17b6370433f1; 2 approvals of round 0. T2T-Item: 0xdae7aabec6318eccda62187f8fc64a511295f86a3ce9d036cbf8f412cd8c4904 T2T-Issue: 0xb63b45e576476cb6be638c97b58f24fa0b78c017c4edc89447b69a35b3602672 T2T-Event: 0x6ab7f5e5b3e24eddca765f3673ec9224ee4b78ab70bef84174845849c097794a
Tests E2E de Elffuss
python3 ../server/serve.py & # el dev server en :8642
npm i # playwright
npm run e2e # casos de datos: Excel→gráfico y carpetas vigiladas
e2e_datos.mjs valida con el modo básico (determinista, sin GPU ni modelo):
- A · Excel → visualización: siembra un
.xlsxREAL (SheetJS) en una carpeta autorizada, pide «visualiza ventas.xlsx» y comprueba que la cadenafs.read(xlsx→CSV) →app.createrenderiza una app de gráfico con la columna correcta en el visualizador. Igual con CSV. - B · Automatización entre carpetas: «pones un fichero en una carpeta y
Elffuss lo procesa y te lo deja en otra» — crea
fs.watch entrada→salida, deja DESPUÉS unstock.xlsxy unnota.txtenentrada, y comprueba que ensalidaaparecenstock.csv(convertido) ynota.txt(copiado), con aviso en el chat. Tambiénfs.copyone-shot con patrón (*.txtsí,.mdno).
Las carpetas del test son OPFS (los pickers nativos exigen gesto de
usuario); los handles se registran en el IndexedDB de Elffuss igual que los
reales. Esto valida la plataforma — la calidad del modelo se evalúa con los
casos de ../coordinacion/ERRORES.md.