From 01b5ee64cc3969a17c9f847050f95a2f935d0eb0 Mon Sep 17 00:00:00 2001 From: mono Date: Sun, 25 Oct 2026 18:20:04 -0500 Subject: [PATCH] feat: importar csv y auditar ediciones --- .../src/__tests__/csv-import.test.ts | 14 +++++ apps/toldo-app/src/components/Layout.vue | 18 +++++- apps/toldo-app/src/router/index.ts | 18 +++--- apps/toldo-app/src/views/Ajustes.vue | 6 +- apps/toldo-app/src/views/Exportar.vue | 2 + apps/toldo-app/src/views/Inventario.vue | 41 +++++++++++- apps/toldo-app/src/views/Ventas.vue | 25 +++++++- apps/toldo-app/tests/e2e/navigation.spec.ts | 15 +++++ .../add-navigation-csv-audit/.openspec.yaml | 2 + .../add-navigation-csv-audit/design.md | 41 ++++++++++++ .../add-navigation-csv-audit/proposal.md | 35 +++++++++++ .../specs/auditable-edits/spec.md | 31 +++++++++ .../specs/inventory-csv-import/spec.md | 33 ++++++++++ .../specs/navigation/spec.md | 28 +++++++++ .../changes/add-navigation-csv-audit/tasks.md | 26 ++++++++ packages/core/src/entities/Auditoria.ts | 14 +++++ packages/core/src/entities/index.ts | 1 + packages/data/src/db/schema.ts | 15 ++++- .../src/auditoria/AuditoriaService.ts | 29 +++++++++ .../services/src/auditoria/EdicionService.ts | 37 +++++++++++ .../src/export-import/ExportImportService.ts | 5 +- packages/services/src/index.ts | 3 + .../inventario/ImportInventarioCsvService.ts | 63 +++++++++++++++++++ 23 files changed, 483 insertions(+), 19 deletions(-) create mode 100644 apps/toldo-app/src/__tests__/csv-import.test.ts create mode 100644 openspec/changes/add-navigation-csv-audit/.openspec.yaml create mode 100644 openspec/changes/add-navigation-csv-audit/design.md create mode 100644 openspec/changes/add-navigation-csv-audit/proposal.md create mode 100644 openspec/changes/add-navigation-csv-audit/specs/auditable-edits/spec.md create mode 100644 openspec/changes/add-navigation-csv-audit/specs/inventory-csv-import/spec.md create mode 100644 openspec/changes/add-navigation-csv-audit/specs/navigation/spec.md create mode 100644 openspec/changes/add-navigation-csv-audit/tasks.md create mode 100644 packages/core/src/entities/Auditoria.ts create mode 100644 packages/services/src/auditoria/AuditoriaService.ts create mode 100644 packages/services/src/auditoria/EdicionService.ts create mode 100644 packages/services/src/inventario/ImportInventarioCsvService.ts diff --git a/apps/toldo-app/src/__tests__/csv-import.test.ts b/apps/toldo-app/src/__tests__/csv-import.test.ts new file mode 100644 index 0000000..5d4bacf --- /dev/null +++ b/apps/toldo-app/src/__tests__/csv-import.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from 'vitest'; +import { normalizarNombre, validarEdicion } from '@toldo/services'; + +describe('importación de inventario CSV', () => { + it('compara nombres sin tildes, mayúsculas ni espacios extra', () => { + expect(normalizarNombre(' La Familia González ')).toBe('la familia gonzalez'); + expect(normalizarNombre('CAFÉ 250 GR')).toBe('cafe 250 gr'); + }); + + it('exige actor y motivo para editar', () => { + expect(() => validarEdicion({ modificadoPor: '', motivo: 'Corrección' })).toThrow('quién'); + expect(() => validarEdicion({ modificadoPor: 'Ana', motivo: '' })).toThrow('motivo'); + }); +}); diff --git a/apps/toldo-app/src/components/Layout.vue b/apps/toldo-app/src/components/Layout.vue index b34d70a..034ea13 100644 --- a/apps/toldo-app/src/components/Layout.vue +++ b/apps/toldo-app/src/components/Layout.vue @@ -15,7 +15,16 @@ - + +
+ + + +
+ Atrás + Inicio +
+
@@ -23,13 +32,16 @@