UNPKG

@designliquido/foles

Version:

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

96 lines 4.91 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_1 = require("../fontes/avaliador-sintatico"); const lexador_1 = require("../fontes/lexador"); const superclasse_1 = require("../fontes/modificadores/superclasse"); const serializadores_1 = require("../fontes/serializadores"); const valor_quantificador_1 = require("./listas/valor-quantificador"); const importador_1 = require("../fontes/importador"); const estruturas_html_1 = __importDefault(require("../fontes/tradutores/estruturas-html")); describe('Serializador', () => { let lexador; let importador; let avaliador; let serializador; beforeEach(() => { lexador = new lexador_1.Lexador(); importador = new importador_1.Importador(lexador); avaliador = new avaliador_sintatico_1.AvaliadorSintatico(importador); serializador = new serializadores_1.Serializador(); }); describe('Casos de Sucesso', () => { it('Testando tradução das estruturas HTML', () => { for (let index = 0; index < Object.keys(estruturas_html_1.default).length; index += 1) { // Lexador recebe as estruturas FolEs const resultadoLexador = lexador.mapear([ `${Object.keys(estruturas_html_1.default)[index]} {`, " tamanho-fonte: 60px;", "}" ]); // Avaliador Sintático const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos); // Tradutor deve retornar a estrutura HTML correspondente const resultadoTradutor = serializador.serializar(resultadoAvaliadorSintatico); expect(resultadoTradutor).toContain(Object.values(estruturas_html_1.default)[index]); } }); it('Casos de sucesso - traduzindo seletores valor-quantificador', () => { for (let index = 0; index < valor_quantificador_1.ValorQuantificador.length; index += 1) { const seletor = new superclasse_1.SeletorModificador(valor_quantificador_1.ValorQuantificador[index], '40', 'px'); // Lexador const resultadoLexador = lexador.mapear([ "lmht {", `${valor_quantificador_1.ValorQuantificador[index]}: ${seletor['valor']}${seletor['quantificador']};`, "}" ]); // Avaliador Sintático const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos); // Tradutor deve funcionar de acordo const resultadoTradutor = serializador.serializar(resultadoAvaliadorSintatico); expect(resultadoTradutor).toBeTruthy(); expect(resultadoTradutor).toContain("html"); expect(resultadoTradutor).toContain(seletor['propriedadeCss']); expect(resultadoTradutor).toContain('40px;'); } }); it('Qualificador', () => { // Lexador const resultadoLexador = lexador.mapear([ "lmht {", " estilo-contorno: pontilhado;", "}" ]); // Avaliador Sintático const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos); // Tradutor deve funcionar de acordo const resultadoTradutor = serializador.serializar(resultadoAvaliadorSintatico); expect(resultadoTradutor).toBeTruthy(); expect(resultadoTradutor).toContain("html"); expect(resultadoTradutor).toContain("outline-style"); expect(resultadoTradutor).toContain('dotted'); }); }); describe('Casos de Falha', () => { it('Casos de Falha - seletores valor-quantificador', () => { for (let index = 0; index < Object.keys(valor_quantificador_1.ValorQuantificador).length; index += 1) { // Lexador - valor e quantificador não informados const resultadoLexador = lexador.mapear([ "lmht {", `${valor_quantificador_1.ValorQuantificador[index]}: ;`, "}" ]); // Tradutor - Não deve ser executado, dado o erro gerado no Avaliador Sintático expect(() => { serializador.serializar(avaliador.analisar(resultadoLexador.simbolos)); }).not.toBeTruthy; expect(() => { serializador.serializar(avaliador.analisar(resultadoLexador.simbolos)); }).toHaveLength(0); } }); }); }); //# sourceMappingURL=serializador.test.js.map