import { describe, expect, it } from 'vitest' import { cotizacionAPrellenado, type CotizacionParaAlta } from './cotizacionAlta' import { PROYECTOS } from '../data/constantes' const base: CotizacionParaAlta = { clienteNombre: 'María Elena López García', clienteEmail: 'maria@example.com', clienteTelefono: '4421234567', desarrollo: 'DIAGONAL', unidadCodigo: 'U-101', precioFinal: 1450000, enganche: 217500, } describe('cotizacionAPrellenado', () => { it('prellena nombre y contacto del cliente', () => { const pre = cotizacionAPrellenado(base) expect(pre.datosGenerales.nombreCompleto).toBe('MARÍA ELENA LÓPEZ GARCÍA') expect(pre.datosGenerales.email).toBe('maria@example.com') expect(pre.datosGenerales.celular).toBe('4421234567') }) it('omite email/celular cuando la cotización no los trae', () => { const pre = cotizacionAPrellenado({ ...base, clienteEmail: null, clienteTelefono: null }) expect(pre.datosGenerales).not.toHaveProperty('email') expect(pre.datosGenerales).not.toHaveProperty('celular') }) it('mapea un desarrollo conocido al dropdown de proyecto', () => { const pre = cotizacionAPrellenado(base) expect(PROYECTOS).toContain('DIAGONAL') expect(pre.viviendaCredito.proyecto).toBe('DIAGONAL') expect(pre.viviendaCredito.proyectoOtro).toBe('') }) it('un desarrollo fuera de PROYECTOS cae en OTRO con el nombre en texto libre', () => { const pre = cotizacionAPrellenado({ ...base, desarrollo: 'JURIQUILLA' }) expect(pre.viviendaCredito.proyecto).toBe('OTRO') expect(pre.viviendaCredito.proyectoOtro).toBe('JURIQUILLA') }) it('prellena unidad, valor de venta y enganche', () => { const pre = cotizacionAPrellenado(base) expect(pre.viviendaCredito.ubicacion).toBe('U-101') expect(pre.viviendaCredito.valorVenta).toBe('1450000') expect(pre.viviendaCredito.enganche).toBe('217500') }) it('montos en cero quedan vacíos (no inventa "0")', () => { const pre = cotizacionAPrellenado({ ...base, precioFinal: 0, enganche: 0 }) expect(pre.viviendaCredito.valorVenta).toBe('') expect(pre.viviendaCredito.enganche).toBe('') }) })