diff --git a/infraestrutura/formatadores/index.ts b/infraestrutura/formatadores/index.ts index 5364b32..264e8ab 100644 --- a/infraestrutura/formatadores/index.ts +++ b/infraestrutura/formatadores/index.ts @@ -27,9 +27,20 @@ export class FormatadorLmht { * @returns O resultado das duas conversões. */ async formatar(caminhoRota: string, valores: any): Promise { - let visaoCorrespondente = caminho.join(this.diretorioBase, "visoes", caminhoRota, ".lmht"); - if (visaoCorrespondente.endsWith(caminho.sep + ".lmht")) { - visaoCorrespondente = visaoCorrespondente.replace(caminho.sep + ".lmht", caminho.sep + "inicial.lmht"); + let visaoCorrespondente: string = caminho.join(this.diretorioBase, "visoes", caminhoRota, ".lmht"); + const diretorioOuArquivo = caminho.join(this.diretorioBase, "visoes", caminhoRota); + if (sistemaDeArquivos.existsSync(diretorioOuArquivo)) { + // É diretório + if (visaoCorrespondente.endsWith(caminho.sep + ".lmht")) { + visaoCorrespondente = visaoCorrespondente.replace(caminho.sep + ".lmht", caminho.sep + "inicial.lmht"); + } + } else if (sistemaDeArquivos.existsSync(diretorioOuArquivo + ".lmht")) { + // É arquivo + visaoCorrespondente = visaoCorrespondente.replace(caminho.sep + ".lmht", ".lmht"); + } else { + // Caminho não existe + return Promise.reject( + `Visão correspondente à rota ${caminhoRota} não existe. Caminhos tentados: ${diretorioOuArquivo}, ${diretorioOuArquivo + ".lmht"}`); } const arquivoBase: Buffer = sistemaDeArquivos.readFileSync(visaoCorrespondente); diff --git a/jest.config.ts b/jest.config.ts index b9bb90e..48d97a6 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -1,20 +1,16 @@ import type { Config } from '@jest/types'; export default async (): Promise => { return { - preset: 'ts-jest', + setupFiles: ['dotenv/config'], + verbose: true, + modulePathIgnorePatterns: ['/dist/'], + preset: 'ts-jest', + testEnvironment: 'node', + coverageReporters: ['json-summary', 'lcov', 'text', 'text-summary'], displayName: { name: 'liquido', color: 'greenBright' }, - verbose: true, - setupFiles: ['dotenv/config'], - testMatch: ['**/**/*.test.ts'], - testEnvironment: 'node', detectOpenHandles: true, - collectCoverage: true, - transform: { '^.+\\.tsx?$': 'ts-jest' }, - globalTeardown: '/testes/jest-globals-teardown.ts', - forceExit: true, - coverageReporters: ['json-summary', 'lcov', 'text', 'text-summary'] - }; + }; }; diff --git a/rotas/mvc/parciais.delegua b/rotas/mvc/parciais.delegua new file mode 100644 index 0000000..a780d9c --- /dev/null +++ b/rotas/mvc/parciais.delegua @@ -0,0 +1,3 @@ +liquido.rotaGet(funcao(requisicao, resposta) { + resposta.lmht({ "titulo": "Parciais" }) +}) \ No newline at end of file diff --git a/testes/jest-globals-teardown.ts b/testes/jest-globals-teardown.ts deleted file mode 100644 index 54f1bc4..0000000 --- a/testes/jest-globals-teardown.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default () => { - process.exit(0); -}; diff --git a/testes/testes-unitarios/liquido.test.ts b/testes/testes-unitarios/liquido.test.ts index 8c9b560..ca4f239 100644 --- a/testes/testes-unitarios/liquido.test.ts +++ b/testes/testes-unitarios/liquido.test.ts @@ -1,5 +1,6 @@ -import { Liquido } from '../../liquido'; import * as caminho from 'path'; + +import { Liquido } from '../../liquido'; import { RetornoMiddleware } from '../../interfaces'; describe('Liquido', () => { @@ -14,8 +15,8 @@ describe('Liquido', () => { const rota1 = liquido.arquivosDelegua[0].split('rotas')[1]; const rota2 = liquido.arquivosDelegua[1].split('rotas')[1]; expect(liquido.arquivosDelegua).toHaveLength(2); - expect(rota1).toBe('\\inicial.delegua'); - expect(rota2).toBe('\\mvc\\inicial.delegua'); + expect(rota1).toBe(`${caminho.sep}inicial.delegua`); + expect(rota2).toBe(`${caminho.sep}mvc${caminho.sep}inicial.delegua`); }); it('Testando resolverCaminhoRota()', () => { diff --git a/visoes/mvc/parciais.lmht b/visoes/mvc/parciais.lmht new file mode 100644 index 0000000..2681057 --- /dev/null +++ b/visoes/mvc/parciais.lmht @@ -0,0 +1,8 @@ + + + Teste de Parciais + + + + + \ No newline at end of file