@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
83 lines • 4.6 kB
JavaScript
;
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