Spaces:
Sleeping
Sleeping
Download frontend/tests/importDefaults.test.mjs from gui-sparim/teste_docs: direct link, hf CLI and curl.
- Browser
- Download file 3.26 kB
-
https://huggingface.co/spaces/gui-sparim/teste_docs/resolve/main/frontend/tests/importDefaults.test.mjs
- Command line
-
hf download hf://spaces/gui-sparim/teste_docs/frontend/tests/importDefaults.test.mjs
-
curl -L -o importDefaults.test.mjs https://huggingface.co/spaces/gui-sparim/teste_docs/resolve/main/frontend/tests/importDefaults.test.mjs
3.26 kB
| import test from 'node:test'; | |
| import assert from 'node:assert/strict'; | |
| import { adoptedValues, applyImportDefaults, importDefaults, decimalValue, EMPTY_REASON } from '../src/importDefaults.js'; | |
| const imported = (patch = {}) => ({ | |
| preview: { tipo: 'evolutivo', avaliacoes: [{ id: 'evo-1', modelo: 'MODELO_A' }, { id: 'evo-2', modelo: 'MODELO_A' }], | |
| sugestoes: { motivos_desvalorizantes: [{ descricao: 'Sem esgoto', alegado: false, confirmado: true }] } }, | |
| referenciaAnos: 'ano_base', anos: { 'evo-1': '2025', 'evo-2': '2023' }, ...patch, | |
| }); | |
| test('importação preenche motivos, método, modelo e referências ordenadas', () => { | |
| const defaults = importDefaults(imported()); | |
| assert.equal(defaults.metodo_avaliacao, 'Método Comparativo Dados de Mercado - ABNT NBR 14.653-2 e Método de Quantificação de Custo'); | |
| assert.equal(defaults.modelo_avaliacao, 'MODELO_A'); | |
| assert.equal(defaults.datas_referencia, 'Dezembro/2023, Dezembro/2025'); | |
| assert.deepEqual(defaults.motivos_desvalorizantes, [{ descricao: 'Sem esgoto', alegado: false, confirmado: true }]); | |
| }); | |
| test('corrigir exercício ou ano-base atualiza somente os campos ainda automáticos', () => { | |
| const previous = importDefaults(imported()); | |
| const next = importDefaults(imported({ referenciaAnos: 'exercicio_iptu' })); | |
| const form = { ...previous, modelo_avaliacao: 'Texto revisado', motivos_desvalorizantes: [] }; | |
| const result = applyImportDefaults(form, next, previous, new Set(['modelo_avaliacao', 'motivos_desvalorizantes'])); | |
| assert.equal(result.datas_referencia, 'Dezembro/2022, Dezembro/2024'); | |
| assert.equal(result.modelo_avaliacao, 'Texto revisado'); | |
| assert.deepEqual(result.motivos_desvalorizantes, []); | |
| }); | |
| test('trocar arquivo substitui sugestões e preserva inclusive edições vazias', () => { | |
| const previous = importDefaults(imported()); | |
| const next = { ...previous, modelo_avaliacao: 'MODELO_B', datas_referencia: 'Dezembro/2020' }; | |
| const result = applyImportDefaults({ ...previous, datas_referencia: '' }, next, previous, new Set(['datas_referencia'])); | |
| assert.equal(result.modelo_avaliacao, 'MODELO_B'); | |
| assert.equal(result.datas_referencia, ''); | |
| }); | |
| test('remover arquivo limpa sugestões antigas e mantém campos manuais', () => { | |
| const previous = importDefaults(imported()); | |
| const result = applyImportDefaults({ ...previous, numero_laudo: 'LA_01', modelo_avaliacao: 'Manual' }, {}, previous, new Set(['modelo_avaliacao'])); | |
| assert.equal(result.modelo_avaliacao, 'Manual'); | |
| assert.equal(result.metodo_avaliacao, ''); | |
| assert.equal(result.numero_laudo, 'LA_01'); | |
| assert.deepEqual(result.motivos_desvalorizantes, [EMPTY_REASON]); | |
| }); | |
| test('referências pendentes não são adivinhadas', () => { | |
| assert.equal(importDefaults(imported({ anos: {} })).datas_referencia, ''); | |
| }); | |
| test('valores adotados aceitam reais e zero sem perder a parte decimal', () => { | |
| assert.deepEqual(adoptedValues({ valoresAdotados: { a: 'R$ 1.234.567,89', b: '0,00', c: '100.12' } }), | |
| { a: '1234567.89', b: '0.00', c: '100.12' }); | |
| for (const input of ['', '-1', 'NaN', '1..2,00', '1,234', '1e3']) assert.equal(decimalValue(input), null); | |
| assert.throws(() => adoptedValues({ valoresAdotados: { a: '' } }), /valores de mercado válidos/); | |
| }); | |