Skip to content

Commit

Permalink
Implementa testes de tradução reversa de modificadores
Browse files Browse the repository at this point in the history
  • Loading branch information
VitBrandao committed Nov 21, 2024
1 parent de4f261 commit d344373
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 5 deletions.
66 changes: 66 additions & 0 deletions testes/listas/traducao-reversa.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
export const TraducaoReversa: Array<Object> = [
{
foles: 'estender-borda-imagem',
css: 'border-image-outset',
},
{
foles: 'deslocar-contorno',
css: 'outline-offset',
},
{
foles: 'largura-contorno',
css: 'outline-width',
},
{
foles: 'recortar-margem-vazada',
css: 'overflow-clip-margin',
},
{
foles: 'perspectiva',
css: 'perspective',
},
{
foles: 'margem-inferior-rolagem-mouse',
css: 'scroll-margin-bottom',
},
{
foles: 'margem-esquerda-rolagem-mouse',
css: 'scroll-margin-left',
},
{
foles: 'margem-direita-rolagem-mouse',
css: 'scroll-margin-right',
},
{
foles: 'margem-superior-rolagem-mouse',
css: 'scroll-margin-top',
},
{
foles: 'tabulacao',
css: 'tab-size',
},
{
foles: 'tabulação',
css: 'tab-size',
},
{
foles: 'espacamento-palavras',
css: 'word-spacing',
},
{
foles: 'espaçamento-palavras',
css: 'word-spacing',
},
{
foles: 'raio-borda',
css: 'border-radius',
},
{
foles: 'recuo',
css: 'padding',
},
{
foles: 'regras-coluna',
css: 'column-rules',
},
];
34 changes: 29 additions & 5 deletions testes/serializador-reverso.test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { AvaliadorSintaticoReverso } from "../fontes/avaliador-sintatico/avaliador-sintatico-reverso";
import { LexadorReverso } from "../fontes/lexador/lexador-reverso";
import { SerializadorReverso } from "../fontes/serializadores/serializador-reverso";

import estruturasLmht from "../fontes/tradutores/estruturas-lmht";
import { AvaliadorSintaticoInterface, ImportadorInterface, LexadorInterface } from "../fontes/interfaces";
import { Importador } from "../fontes/importador";
import { TraducaoReversa } from "./listas/traducao-reversa";

describe('Serializador Reverso', () => {
let lexadorReverso: LexadorInterface;
Expand All @@ -19,24 +19,23 @@ describe('Serializador Reverso', () => {
serializadorReverso = new SerializadorReverso();
});

// TODO: Finalizar a lógica em `declaracaoPorSeletor()` (avaliador sintático reverso)
it('Testando tradução das estruturas HTML', () => {
for (let index = 0; index < Object.keys(estruturasLmht).length; index += 1) {

// Lexador recebe as estruturas FolEs
const resultadoLexador = lexadorReverso.mapear([
`${Object.keys(estruturasLmht)[index]} {`,
" font-size: 60px;",
"}"
])

// Lexador deve montar um objeto de 8 símbolos sem retornar erros
expect(resultadoLexador.simbolos).toHaveLength(8);
expect(resultadoLexador.erros).toHaveLength(0);

// Avaliador Sintático
const resultadoAvaliadorSintatico = avaliadorReverso.analisar(resultadoLexador.simbolos);

// Tradutor deve retornar a estrutura HTML correspondente
const resultadoSerializador = serializadorReverso.serializar(resultadoAvaliadorSintatico);

Expand All @@ -49,4 +48,29 @@ describe('Serializador Reverso', () => {
}
}
});

// TODO: Finalizar a lógica em `declaracaoPorSeletor()` (avaliador sintático reverso) para testes abaixo funcionarem
it.skip('Testando tradução reversa dos modificadores', () => {
for (let index = 0; index < Object.keys(TraducaoReversa).length; index += 1) {

// Lexador recebe as estruturas FolEs
const resultadoLexador = lexadorReverso.mapear([
`lmht {`,
` ${TraducaoReversa[index]['css']}: 60px;`,
"}"
])

// Lexador deve montar um objeto de 8 símbolos sem retornar erros
expect(resultadoLexador.simbolos).toHaveLength(8);
expect(resultadoLexador.erros).toHaveLength(0);

// Avaliador Sintático
const resultadoAvaliadorSintatico = avaliadorReverso.analisar(resultadoLexador.simbolos);

// Tradutor deve retornar a estrutura HTML correspondente
const resultadoSerializador = serializadorReverso.serializar(resultadoAvaliadorSintatico);

expect(resultadoSerializador).toContain(TraducaoReversa[index]['foles']);
}
});
});

0 comments on commit d344373

Please sign in to comment.