feat(captura): módulo de captura por departamentos
Backend: tabla CapturaDepartamento, 5 departamentos, 7 desarrollos, service CRUD + importador Excel + 6 endpoints. Frontend: tabla editable inline, tabs por dept, resumen avance, paginación, filtro estatus, permisos por rol, dark mode. 746 API tests + 42 landing tests.
This commit is contained in:
@@ -8,8 +8,8 @@ const porId = (id: string): Modulo => {
|
||||
}
|
||||
|
||||
describe('MODULOS', () => {
|
||||
it('expone los 7 módulos del ecosistema', () => {
|
||||
expect(MODULOS).toHaveLength(7)
|
||||
it('expone los 8 módulos del ecosistema', () => {
|
||||
expect(MODULOS).toHaveLength(8)
|
||||
expect(MODULOS.map((m) => m.id)).toEqual([
|
||||
'cotizador',
|
||||
'alta-clientes',
|
||||
@@ -18,6 +18,7 @@ describe('MODULOS', () => {
|
||||
'tableros',
|
||||
'mi-dia',
|
||||
'contactos',
|
||||
'captura',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -39,8 +40,9 @@ describe('MODULOS', () => {
|
||||
expect(porId('mi-dia').url).toBe('/hoy/')
|
||||
})
|
||||
|
||||
it('Contactos es vista interna (sin url externa)', () => {
|
||||
it('Contactos y Captura son vistas internas (sin url externa)', () => {
|
||||
expect(porId('contactos').url).toBeUndefined()
|
||||
expect(porId('captura').url).toBeUndefined()
|
||||
})
|
||||
|
||||
it('liga cada módulo a la matriz de roles del API', () => {
|
||||
@@ -51,6 +53,7 @@ describe('MODULOS', () => {
|
||||
expect(porId('tableros').claves).toEqual(['mi-tablero', 'tablero-comercial'])
|
||||
expect(porId('mi-dia').claves).toEqual(['mi-dia'])
|
||||
expect(porId('contactos').claves).toEqual(['contactos'])
|
||||
expect(porId('captura').claves).toEqual(['captura'])
|
||||
})
|
||||
|
||||
it('no hay ids ni URLs duplicadas', () => {
|
||||
|
||||
@@ -59,6 +59,12 @@ export const MODULOS: Modulo[] = [
|
||||
descripcion: 'Directorio de contactos del CRM: teléfono, email y estado',
|
||||
claves: ['contactos'],
|
||||
},
|
||||
{
|
||||
id: 'captura',
|
||||
nombre: 'Captura',
|
||||
descripcion: 'Captura por departamentos: Obra, Ventas, Escrituración, Finanzas y Postventa',
|
||||
claves: ['captura'],
|
||||
},
|
||||
]
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user