UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

83 lines 4.6 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const avaliador_sintatico_reverso_1 = require("../fontes/avaliador-sintatico/avaliador-sintatico-reverso"); const lexador_reverso_1 = require("../fontes/lexador/lexador-reverso"); const serializador_reverso_1 = require("../fontes/serializadores/serializador-reverso"); const estruturas_lmht_1 = __importDefault(require("../fontes/tradutores/estruturas-lmht")); const importador_1 = require("../fontes/importador"); const traducao_reversa_1 = require("./listas/traducao-reversa"); describe('Serializador Reverso', () => { let lexadorReverso; let importador; let avaliadorReverso; let serializadorReverso; beforeEach(() => { lexadorReverso = new lexador_reverso_1.LexadorReverso(); importador = new importador_1.Importador(lexadorReverso); avaliadorReverso = new avaliador_sintatico_reverso_1.AvaliadorSintaticoReverso(importador); serializadorReverso = new serializador_reverso_1.SerializadorReverso(); }); it.only('Testando tradução das estruturas HTML', () => { for (let index = 0; index < Object.keys(estruturas_lmht_1.default).length; index += 1) { // Lexador recebe as estruturas FolEs const resultadoLexador = lexadorReverso.mapear([ `${Object.keys(estruturas_lmht_1.default)[index]} {`, " font-size: 60px;", "}" ]); // Avaliador Sintático const resultadoAvaliadorSintatico = avaliadorReverso.analisar(resultadoLexador.simbolos); // Tradutor deve retornar a estrutura HTML correspondente const resultadoSerializador = serializadorReverso.serializar(resultadoAvaliadorSintatico); if (Object.values(estruturas_lmht_1.default)[index].length > 1) { const estruturaLmhtString = Object.values(estruturas_lmht_1.default)[index][0].toString(); expect(resultadoSerializador).toContain(estruturaLmhtString); } else { const estruturaLmhtString = Object.values(estruturas_lmht_1.default)[index].toString(); expect(resultadoSerializador).toContain(estruturaLmhtString); } } }); // TODO: Finalizar a lógica em `declaracaoPorSeletor()` (avaliador sintático reverso) para testes abaixo funcionarem it('Testando tradução reversa de modificadores', () => { for (let index = 0; index < Object.keys(traducao_reversa_1.TraducaoReversa).length; index += 1) { // Lexador Reverso recebe as estruturas FolEs const resultadoLexador = lexadorReverso.mapear([ `html {`, ` ${traducao_reversa_1.TraducaoReversa[index]['css']}: 60px;`, "}" ]); // Avaliador Sintático Reverso const resultadoAvaliadorSintatico = avaliadorReverso.analisar(resultadoLexador.simbolos); // Serializador reverso const resultadoSerializador = serializadorReverso.serializar(resultadoAvaliadorSintatico); // Serializador reverso deve retornar a estrutura HTML correspondente expect(resultadoSerializador).toContain('lmht'); expect(resultadoSerializador).toContain(traducao_reversa_1.TraducaoReversa[index]['foles']); expect(resultadoSerializador).toContain('60px;'); } }); // OBS.: Teste genérico, precisa de implementações no Av. Sintático Reverso antes de funcionar // TODO: Implementar lista de métodos quando estiver funcionando it.skip('Testando tradução reversa de métodos', () => { // Lexador Reverso recebe as estruturas FolEs const resultadoLexador = lexadorReverso.mapear([ `html {`, ` filter: blur(4px);`, "}" ]); // Avaliador Sintático Reverso const resultadoAvaliadorSintatico = avaliadorReverso.analisar(resultadoLexador.simbolos); // Serializador reverso const resultadoSerializador = serializadorReverso.serializar(resultadoAvaliadorSintatico); // Serializador reverso deve retornar a estrutura HTML correspondente expect(resultadoSerializador).toContain('lmht'); expect(resultadoSerializador).toContain('borrar'); expect(resultadoSerializador).toContain('4px;'); }); }); //# sourceMappingURL=serializador-reverso.test.js.map