@designliquido/foles 0.10.0 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.d.ts +4 -2
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.js +59 -11
- package/fontes/avaliador-sintatico/avaliador-sintatico-reverso.js.map +1 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +0 -5
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/foles.js +4 -3
- package/fontes/foles.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/css.d.ts +451 -34
- package/fontes/lexador/palavras-reservadas/css.js +472 -41
- package/fontes/lexador/palavras-reservadas/css.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/foles.d.ts +9 -9
- package/fontes/lexador/palavras-reservadas/foles.js +9 -10
- package/fontes/lexador/palavras-reservadas/foles.js.map +1 -1
- package/fontes/modificadores/aparencia.js +1 -1
- package/fontes/modificadores/aparencia.js.map +1 -1
- package/fontes/modificadores/atributos/gerais.js +1 -0
- package/fontes/modificadores/atributos/gerais.js.map +1 -1
- package/fontes/modificadores/cor-borda.js +1 -1
- package/fontes/modificadores/cor-borda.js.map +1 -1
- package/fontes/modificadores/margem-superior.js +1 -0
- package/fontes/modificadores/margem-superior.js.map +1 -1
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.d.ts +1 -1
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.js +2 -2
- package/fontes/modificadores/superclasse/seletor-reverso-modificador.js.map +1 -1
- package/fontes/modificadores/validacoes/comum.js +22 -5
- package/fontes/modificadores/validacoes/comum.js.map +1 -1
- package/fontes/modificadores/validacoes/condicao-extra.js +20 -5
- package/fontes/modificadores/validacoes/condicao-extra.js.map +1 -1
- package/fontes/modificadores/validacoes/cor.js +21 -9
- package/fontes/modificadores/validacoes/cor.js.map +1 -1
- package/fontes/modificadores/validacoes/fonte.js +11 -2
- package/fontes/modificadores/validacoes/fonte.js.map +1 -1
- package/fontes/modificadores/validacoes/multiplos-qualitativos.js +29 -7
- package/fontes/modificadores/validacoes/multiplos-qualitativos.js.map +1 -1
- package/fontes/modificadores/validacoes/numerica.js +30 -6
- package/fontes/modificadores/validacoes/numerica.js.map +1 -1
- package/fontes/pseudoclasses/n-ultimo-tipo.js +1 -1
- package/fontes/pseudoclasses/n-ultimo-tipo.js.map +1 -1
- package/fontes/resolvedores/resolvedor-reverso.d.ts +9 -2
- package/fontes/resolvedores/resolvedor-reverso.js +137 -37
- package/fontes/resolvedores/resolvedor-reverso.js.map +1 -1
- package/fontes/tipos-de-simbolos/css.d.ts +4 -0
- package/fontes/tipos-de-simbolos/css.js +4 -0
- package/fontes/tipos-de-simbolos/css.js.map +1 -1
- package/fontes/valores/metodos/css/annotation.js +1 -5
- package/fontes/valores/metodos/css/annotation.js.map +1 -1
- package/fontes/valores/metodos/css/counter.js +1 -1
- package/fontes/valores/metodos/css/counter.js.map +1 -1
- package/fontes/valores/metodos/css/ornaments.js +0 -3
- package/fontes/valores/metodos/css/ornaments.js.map +1 -1
- package/fontes/valores/metodos/foles/hsl.js +1 -1
- package/fontes/valores/metodos/foles/hsl.js.map +1 -1
- package/fontes/valores/metodos/foles/hsla.js +1 -1
- package/fontes/valores/metodos/foles/hsla.js.map +1 -1
- package/package.json +2 -2
- package/testes/avaliador-sintatico-reverso.test.d.ts +1 -0
- package/testes/avaliador-sintatico-reverso.test.js +117 -0
- package/testes/avaliador-sintatico-reverso.test.js.map +1 -0
- package/testes/avaliador-sintatico.test.js +34 -0
- package/testes/avaliador-sintatico.test.js.map +1 -1
- package/testes/lexador-reverso.test.js.map +1 -1
- package/testes/listas/traducao-reversa.d.ts +2 -0
- package/testes/listas/traducao-reversa.js +129 -5
- package/testes/listas/traducao-reversa.js.map +1 -1
- package/testes/listas/valores-quantificadores.d.ts +2 -0
- package/testes/listas/valores-quantificadores.js +146 -1
- package/testes/listas/valores-quantificadores.js.map +1 -1
- package/testes/modificadores/cores.test.js +6 -6
- package/testes/modificadores/cores.test.js.map +1 -1
- package/testes/modificadores/metodos-reversos.test.js +485 -48
- package/testes/modificadores/metodos-reversos.test.js.map +1 -1
- package/testes/modificadores/metodos.test.js +34 -1
- package/testes/modificadores/metodos.test.js.map +1 -1
- package/testes/modificadores/suporte-variaveis.test.js +4 -9
- package/testes/modificadores/suporte-variaveis.test.js.map +1 -1
- package/testes/resolvedor-reverso.test.js +85 -8
- package/testes/resolvedor-reverso.test.js.map +1 -1
- package/testes/resolvedor.test.js +4 -4
- package/testes/resolvedor.test.js.map +1 -1
|
@@ -11,16 +11,69 @@ const css_1 = __importDefault(require("../../fontes/tipos-de-simbolos/css"));
|
|
|
11
11
|
const metodos_css_1 = require("../listas/metodos-css");
|
|
12
12
|
const declaracoes_1 = require("../../fontes/declaracoes");
|
|
13
13
|
const seletor_valor_reverso_1 = require("../../fontes/valores/seletor-valor-reverso");
|
|
14
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
15
|
+
const contador_1 = require("../../fontes/valores/metodos/foles/contador");
|
|
14
16
|
describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
15
17
|
let lexador;
|
|
16
18
|
let importador;
|
|
17
19
|
let avaliadorSintatico;
|
|
18
|
-
let
|
|
20
|
+
let resolvedor;
|
|
19
21
|
beforeEach(() => {
|
|
20
22
|
lexador = new lexador_reverso_1.LexadorReverso();
|
|
21
23
|
importador = new importador_1.Importador(lexador);
|
|
22
24
|
avaliadorSintatico = new avaliador_sintatico_reverso_1.AvaliadorSintaticoReverso(importador);
|
|
23
|
-
|
|
25
|
+
resolvedor = new resolvedores_1.ResolvedorReverso();
|
|
26
|
+
});
|
|
27
|
+
it('Atribuindo Método "annotation()" com valor numérico - caso de sucesso', () => {
|
|
28
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
29
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
30
|
+
// Lexador
|
|
31
|
+
const resultadoLexador = lexador.mapear([
|
|
32
|
+
"div {",
|
|
33
|
+
`font-variant-alternates: annotation(${valoresAceitos[index]});`,
|
|
34
|
+
"}"
|
|
35
|
+
]);
|
|
36
|
+
// O Lexador não deve encontrar erros
|
|
37
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
38
|
+
// O valor recebido deve ser mapeado como METODO
|
|
39
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
40
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
41
|
+
]));
|
|
42
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
43
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
44
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
45
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
46
|
+
]));
|
|
47
|
+
// Avaliador Sintático
|
|
48
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
49
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
50
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
51
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
52
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
53
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
54
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
55
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
56
|
+
// Resolvedor
|
|
57
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
58
|
+
// O Resolvedor deve resolver de acordo e traduzir anotação para annotation
|
|
59
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
60
|
+
expect(resultadoResolvedor).toContain(`anotação(${valoresAceitos[index]});`);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
it('Atribuindo Método "annotation()" com valor numérico - caso de falha', () => {
|
|
64
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
65
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
66
|
+
// Lexador
|
|
67
|
+
const resultadoLexador = lexador.mapear([
|
|
68
|
+
"div {",
|
|
69
|
+
`font-variant-alternates: annotation(${valoresAceitos[index]});`,
|
|
70
|
+
"}"
|
|
71
|
+
]);
|
|
72
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
73
|
+
expect(() => {
|
|
74
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
75
|
+
}).toThrow('O valor da função annotation() deve estar entre 1 e 99');
|
|
76
|
+
}
|
|
24
77
|
});
|
|
25
78
|
it('Atribuindo Método "blur()"', () => {
|
|
26
79
|
for (let index = 0; index < metodos_css_1.MetodoBorrar.length; index += 1) {
|
|
@@ -63,7 +116,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
63
116
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBorrar[index]);
|
|
64
117
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
65
118
|
// Tradutor
|
|
66
|
-
const resultadoTradutor =
|
|
119
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
67
120
|
// O Tradutor deve serializar de acordo e traduzir blur para borrar
|
|
68
121
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
69
122
|
expect(resultadoTradutor).toContain(`borrar(${valoresAceitos[valIndex]});`);
|
|
@@ -111,7 +164,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
111
164
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBrilho[index]);
|
|
112
165
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
113
166
|
// Tradutor
|
|
114
|
-
const resultadoTradutor =
|
|
167
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
115
168
|
// O Tradutor deve serializar de acordo e traduzir brightness para brilho
|
|
116
169
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
117
170
|
expect(resultadoTradutor).toContain(`brilho(${valoresAceitos[valIndex]});`);
|
|
@@ -148,11 +201,62 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
148
201
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
149
202
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoCalcular[index]);
|
|
150
203
|
// Tradutor deve serializar de acordo e traduzir calc para calcular
|
|
151
|
-
const resultadoTradutor =
|
|
204
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
152
205
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoCalcular[index]]);
|
|
153
206
|
expect(resultadoTradutor).toContain('calcular(100px - 80px);');
|
|
154
207
|
}
|
|
155
208
|
});
|
|
209
|
+
it('Atribuindo Método "character-variant()" - caso de sucesso', () => {
|
|
210
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
211
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
212
|
+
// Lexador
|
|
213
|
+
const resultadoLexador = lexador.mapear([
|
|
214
|
+
"div {",
|
|
215
|
+
`font-variant-alternates: character-variant(${valoresAceitos[index]});`,
|
|
216
|
+
"}"
|
|
217
|
+
]);
|
|
218
|
+
// O Lexador não deve encontrar erros
|
|
219
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
220
|
+
// O valor recebido deve ser mapeado como METODO
|
|
221
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
222
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
223
|
+
]));
|
|
224
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
225
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
226
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
227
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
228
|
+
]));
|
|
229
|
+
// Avaliador Sintático
|
|
230
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
231
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
232
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
233
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
234
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
235
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
236
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
237
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
238
|
+
// Resolvedor
|
|
239
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
240
|
+
// O Resolvedor deve resolver de acordo e traduzir character-variant para character-variant
|
|
241
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
242
|
+
expect(resultadoResolvedor).toContain(`variar-caractere(${valoresAceitos[index]});`);
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
it('Atribuindo Método "character-variant()" - caso de falha', () => {
|
|
246
|
+
const valoresAceitos = ['0', '210', '100'];
|
|
247
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
248
|
+
// Lexador
|
|
249
|
+
const resultadoLexador = lexador.mapear([
|
|
250
|
+
"div {",
|
|
251
|
+
`font-variant-alternates: character-variant(${valoresAceitos[index]});`,
|
|
252
|
+
"}"
|
|
253
|
+
]);
|
|
254
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
255
|
+
expect(() => {
|
|
256
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
257
|
+
}).toThrow('O valor da função character-variant() deve estar entre 1 e 99');
|
|
258
|
+
}
|
|
259
|
+
});
|
|
156
260
|
it('Atribuindo Método "contrast()"', () => {
|
|
157
261
|
for (let index = 0; index < metodos_css_1.MetodoContraste.length; index += 1) {
|
|
158
262
|
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
@@ -194,12 +298,109 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
194
298
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoContraste[index]);
|
|
195
299
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
196
300
|
// Tradutor deve serializar de acordo e traduzir contrast para contraste
|
|
197
|
-
const resultadoTradutor =
|
|
301
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
198
302
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
199
303
|
expect(resultadoTradutor).toContain(`contraste(${valoresAceitos[valIndex]});`);
|
|
200
304
|
}
|
|
201
305
|
}
|
|
202
306
|
});
|
|
307
|
+
it('Atribuindo Método "counter()" com parâmetro único', () => {
|
|
308
|
+
const valoresAceitos = ['contador1', 'meu-contador', 'contador-personalizado'];
|
|
309
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
310
|
+
// Lexador
|
|
311
|
+
const resultadoLexador = lexador.mapear([
|
|
312
|
+
"div {",
|
|
313
|
+
`content: counter(${valoresAceitos[index]});`,
|
|
314
|
+
"}"
|
|
315
|
+
]);
|
|
316
|
+
// O Lexador deve montar um objeto de comprimento 10 sem retornar erros
|
|
317
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
318
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
319
|
+
// O Lexador deve mapear METODO e IDENTIFICADOR no processo
|
|
320
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
321
|
+
expect.objectContaining({ tipo: css_1.default.IDENTIFICADOR }),
|
|
322
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
323
|
+
]));
|
|
324
|
+
// Avaliador Sintático
|
|
325
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
326
|
+
// O Avaliador deve montar um objeto com o devido nome CSS
|
|
327
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
328
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
329
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
330
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
331
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
332
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('content');
|
|
333
|
+
// Resolvedor
|
|
334
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
335
|
+
expect(resultadoResolvedor).toContain('conteudo');
|
|
336
|
+
expect(resultadoResolvedor).toContain('contador');
|
|
337
|
+
expect(resultadoResolvedor).toContain(valoresAceitos[index]);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
it('Atribuindo Método "counter()" com dois parâmetros', () => {
|
|
341
|
+
const nomeSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'contador', 'any', 1, 2, 3);
|
|
342
|
+
const estiloSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'romano-maiusculo', 'any', 1, 2, 3);
|
|
343
|
+
const instanciaContador = new contador_1.Contador(nomeSimbolo, estiloSimbolo);
|
|
344
|
+
const estilosAceitos = [];
|
|
345
|
+
Object.values(instanciaContador.estilosAceitos).forEach((valor) => estilosAceitos.push(valor));
|
|
346
|
+
const estilosTraduzidos = [];
|
|
347
|
+
Object.keys(instanciaContador.estilosAceitos).forEach((valor) => estilosTraduzidos.push(valor));
|
|
348
|
+
for (let index = 0; index < estilosAceitos.length; index += 1) {
|
|
349
|
+
// Lexador
|
|
350
|
+
const resultadoLexador = lexador.mapear([
|
|
351
|
+
"div {",
|
|
352
|
+
`content: counter(contador1, ${estilosAceitos[index]});`,
|
|
353
|
+
"}"
|
|
354
|
+
]);
|
|
355
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar erros
|
|
356
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
357
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
358
|
+
// O Lexador deve mapear METODO e IDENTIFICADOR no processo
|
|
359
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
360
|
+
expect.objectContaining({ tipo: css_1.default.IDENTIFICADOR }),
|
|
361
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
362
|
+
]));
|
|
363
|
+
// Avaliador Sintático
|
|
364
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
365
|
+
// O Avaliador deve montar um objeto com o devido nome CSS
|
|
366
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
367
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
368
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
369
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
370
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
371
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('content');
|
|
372
|
+
// Resolvedor
|
|
373
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
374
|
+
expect(resultadoResolvedor).toContain('conteudo');
|
|
375
|
+
expect(resultadoResolvedor).toContain('contador');
|
|
376
|
+
expect(resultadoResolvedor).toContain('contador1');
|
|
377
|
+
}
|
|
378
|
+
});
|
|
379
|
+
it('Caso de Falha - Método "counter()" com valor de estilo inválido', () => {
|
|
380
|
+
const nomeSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'contador', 'any', 1, 2, 3);
|
|
381
|
+
const estiloSimbolo = new lexador_1.Simbolo('IDENTIFICADOR', 'romano-maiusculo', 'any', 1, 2, 3);
|
|
382
|
+
const instanciaContador = new contador_1.Contador(nomeSimbolo, estiloSimbolo);
|
|
383
|
+
const estilosAceitos = [];
|
|
384
|
+
Object.keys(instanciaContador.estilosAceitos).forEach((valor) => estilosAceitos.push(valor));
|
|
385
|
+
for (let index = 0; index < estilosAceitos.length; index += 1) {
|
|
386
|
+
const estiloErroDigitacao = estilosAceitos[index].replace(/./, "x");
|
|
387
|
+
// Lexador
|
|
388
|
+
const resultadoLexador = lexador.mapear([
|
|
389
|
+
"div {",
|
|
390
|
+
`content: counter(contador1, ${estiloErroDigitacao});`,
|
|
391
|
+
"}"
|
|
392
|
+
]);
|
|
393
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar erros
|
|
394
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
395
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
396
|
+
// O Avaliador Sintático também deve retornar o seu objeto sem retornar erros
|
|
397
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
398
|
+
// O Resolvedor deve retornar o erro de estilo inválido uma vez que não consegue traduzir o valor
|
|
399
|
+
expect(() => {
|
|
400
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
401
|
+
}).toThrow(`Valor de estilo ${estiloErroDigitacao} inválido para a função counter().`);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
203
404
|
it('Atribuindo Método "cubic-bezier()"', () => {
|
|
204
405
|
for (let index = 0; index < metodos_css_1.MetodoCurvaCubica.length; index += 1) {
|
|
205
406
|
// Lexador
|
|
@@ -229,7 +430,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
229
430
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
230
431
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoCurvaCubica[index]);
|
|
231
432
|
// Tradutor
|
|
232
|
-
const resultadoTradutor =
|
|
433
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
233
434
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoCurvaCubica[index]]);
|
|
234
435
|
expect(resultadoTradutor).toContain('curva-cubica(0.42, 0, 1, 1);');
|
|
235
436
|
}
|
|
@@ -264,7 +465,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
264
465
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
265
466
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoEncaixarConteudo[index]);
|
|
266
467
|
// Tradutor
|
|
267
|
-
const resultadoTradutor =
|
|
468
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
268
469
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoEncaixarConteudo[index]]);
|
|
269
470
|
expect(resultadoTradutor).toContain('encaixar-conteudo(200px)');
|
|
270
471
|
}
|
|
@@ -310,7 +511,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
310
511
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoEscalaCinza[index]);
|
|
311
512
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoEscalaCinza[index]]);
|
|
312
513
|
// Tradutor
|
|
313
|
-
const resultadoTradutor =
|
|
514
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
314
515
|
// O Tradutor deve serializar de acordo e traduzir grayscale para escala-cinza
|
|
315
516
|
expect(resultadoTradutor).toContain(`escala-cinza(${valoresAceitos[valIndex]});`);
|
|
316
517
|
}
|
|
@@ -344,7 +545,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
344
545
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
345
546
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
346
547
|
// Tradutor
|
|
347
|
-
const resultadoTradutor =
|
|
548
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
348
549
|
// O Tradutor deve serializar de acordo e traduzir scale para escalamento
|
|
349
550
|
expect(resultadoTradutor).toContain(`escalamento(${valoresAceitos[valIndex]});`);
|
|
350
551
|
}
|
|
@@ -376,7 +577,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
376
577
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
377
578
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
378
579
|
// Tradutor
|
|
379
|
-
const resultadoTradutor =
|
|
580
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
380
581
|
// O Tradutor deve serializar de acordo e traduzir scale para escalamento
|
|
381
582
|
expect(resultadoTradutor).toContain(`escalamento(1.3, 0.4);`);
|
|
382
583
|
}
|
|
@@ -411,7 +612,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
411
612
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
412
613
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
413
614
|
// Tradutor
|
|
414
|
-
const resultadoTradutor =
|
|
615
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
415
616
|
// O Tradutor deve serializar de acordo e traduzir scale3d para escalamento-3d
|
|
416
617
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
417
618
|
expect(resultadoTradutor).toContain(`escalamento-3d(0.5, 1, 1.7);`);
|
|
@@ -449,7 +650,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
449
650
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
450
651
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
451
652
|
// Tradutor
|
|
452
|
-
const resultadoTradutor =
|
|
653
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
453
654
|
// O Tradutor deve serializar de acordo e traduzir scaleZ para escalamento-eixo-z
|
|
454
655
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
455
656
|
expect(resultadoTradutor).toContain(`escalamento-eixo-z(${valoresAceitos[valIndex]});`);
|
|
@@ -488,7 +689,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
488
689
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
489
690
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
490
691
|
// Tradutor
|
|
491
|
-
const resultadoTradutor =
|
|
692
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
492
693
|
// O Tradutor deve serializar de acordo e traduzir scaleX para escalamento-horizontal
|
|
493
694
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
494
695
|
expect(resultadoTradutor).toContain(`escalamento-horizontal(${valoresAceitos[valIndex]});`);
|
|
@@ -527,7 +728,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
527
728
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
528
729
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
529
730
|
// Tradutor
|
|
530
|
-
const resultadoTradutor =
|
|
731
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
531
732
|
// O Tradutor deve serializar de acordo e traduzir scaleY para escalamento-vertical
|
|
532
733
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
533
734
|
expect(resultadoTradutor).toContain(`escalamento-vertical(${valoresAceitos[valIndex]});`);
|
|
@@ -564,7 +765,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
564
765
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
565
766
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoGradienteLinear[index]);
|
|
566
767
|
// Tradutor
|
|
567
|
-
const resultadoTradutor =
|
|
768
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
568
769
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoGradienteLinear[index]]);
|
|
569
770
|
expect(resultadoTradutor).toContain('gradiente-linear(90deg, verde, amarelo);');
|
|
570
771
|
}
|
|
@@ -610,7 +811,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
610
811
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
611
812
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
612
813
|
// Tradutor
|
|
613
|
-
const resultadoTradutor =
|
|
814
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
614
815
|
// O Tradutor deve serializar de acordo e traduzir skew para inclinar
|
|
615
816
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
616
817
|
expect(resultadoTradutor).toContain(`inclinar(${valoresAceitos[valIndex]});`);
|
|
@@ -648,7 +849,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
648
849
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
649
850
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
650
851
|
// Tradutor
|
|
651
|
-
const resultadoTradutor =
|
|
852
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
652
853
|
// O Tradutor deve serializar de acordo e traduzir skew para inclinar
|
|
653
854
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
654
855
|
expect(resultadoTradutor).toContain(`inclinar(15deg, 15deg);`);
|
|
@@ -695,7 +896,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
695
896
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
696
897
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
697
898
|
// Tradutor
|
|
698
|
-
const resultadoTradutor =
|
|
899
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
699
900
|
// O Tradutor deve serializar de acordo e traduzir skewX para inclinar-horizontal
|
|
700
901
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
701
902
|
}
|
|
@@ -742,7 +943,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
742
943
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
743
944
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
744
945
|
// Tradutor
|
|
745
|
-
const resultadoTradutor =
|
|
946
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
746
947
|
// O Tradutor deve serializar de acordo e traduzir skewY para inclinar-vertical
|
|
747
948
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
748
949
|
expect(resultadoTradutor).toContain(`inclinar-vertical(${valoresAceitos[valIndex]});`);
|
|
@@ -790,7 +991,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
790
991
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoInverter[index]);
|
|
791
992
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoInverter[index]]);
|
|
792
993
|
// Tradutor
|
|
793
|
-
const resultadoTradutor =
|
|
994
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
794
995
|
// O Tradutor deve serializar de acordo e traduzir invert para inverter
|
|
795
996
|
expect(resultadoTradutor).toContain(`inverter(${valoresAceitos[valIndex]});`);
|
|
796
997
|
}
|
|
@@ -827,7 +1028,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
827
1028
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoLimitar[index]);
|
|
828
1029
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLimitar[index]]);
|
|
829
1030
|
// Tradutor
|
|
830
|
-
const resultadoTradutor =
|
|
1031
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
831
1032
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLimitar[index]]);
|
|
832
1033
|
expect(resultadoTradutor).toContain('limitar(10vw, 20em, 100vw);');
|
|
833
1034
|
}
|
|
@@ -861,7 +1062,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
861
1062
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
862
1063
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoLinear[index]);
|
|
863
1064
|
// Tradutor
|
|
864
|
-
const resultadoTradutor =
|
|
1065
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
865
1066
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLinear[index]]);
|
|
866
1067
|
expect(resultadoTradutor).toContain('linear(0, 0.25, 1);');
|
|
867
1068
|
}
|
|
@@ -897,7 +1098,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
897
1098
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoMinMax[index]);
|
|
898
1099
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
899
1100
|
// Tradutor
|
|
900
|
-
const resultadoTradutor =
|
|
1101
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
901
1102
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
902
1103
|
expect(resultadoTradutor).toContain('minmax(100px, conteudo-máximo);');
|
|
903
1104
|
}
|
|
@@ -933,7 +1134,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
933
1134
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoMinMax[index]);
|
|
934
1135
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
935
1136
|
// Tradutor
|
|
936
|
-
const resultadoTradutor =
|
|
1137
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
937
1138
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
938
1139
|
expect(resultadoTradutor).toContain('minmax(conteudo-mínimo, 100px);');
|
|
939
1140
|
}
|
|
@@ -979,12 +1180,96 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
979
1180
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoOpacar[index]);
|
|
980
1181
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoOpacar[index]]);
|
|
981
1182
|
// Tradutor
|
|
982
|
-
const resultadoTradutor =
|
|
1183
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
983
1184
|
// O Tradutor deve serializar de acordo e traduzir opacity para opacar
|
|
984
1185
|
expect(resultadoTradutor).toContain(`opacar(${valoresAceitos[valIndex]});`);
|
|
985
1186
|
}
|
|
986
1187
|
}
|
|
987
1188
|
});
|
|
1189
|
+
it('Atribuindo Método "ornaments()" com valor numérico - caso de sucesso', () => {
|
|
1190
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
1191
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1192
|
+
// Lexador
|
|
1193
|
+
const resultadoLexador = lexador.mapear([
|
|
1194
|
+
"div {",
|
|
1195
|
+
`font-variant-alternates: ornaments(${valoresAceitos[index]});`,
|
|
1196
|
+
"}"
|
|
1197
|
+
]);
|
|
1198
|
+
// O Lexador não deve encontrar erros
|
|
1199
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1200
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1201
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1202
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1203
|
+
]));
|
|
1204
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
1205
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1206
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1207
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1208
|
+
]));
|
|
1209
|
+
// Avaliador Sintático
|
|
1210
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1211
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1212
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1213
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1214
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1215
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1216
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1217
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1218
|
+
// Resolvedor
|
|
1219
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1220
|
+
// O Resolvedor deve resolver de acordo e traduzir ornamentos para ornaments
|
|
1221
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
1222
|
+
expect(resultadoResolvedor).toContain(`ornamentos(${valoresAceitos[index]});`);
|
|
1223
|
+
}
|
|
1224
|
+
});
|
|
1225
|
+
it('Atribuindo Método "ornaments()" com valor string - caso de sucesso', () => {
|
|
1226
|
+
const valoresAceitos = ['Arial', 'Courier'];
|
|
1227
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1228
|
+
// Lexador
|
|
1229
|
+
const resultadoLexador = lexador.mapear([
|
|
1230
|
+
"div {",
|
|
1231
|
+
`font-variant-alternates: ornaments(${valoresAceitos[index]});`,
|
|
1232
|
+
"}"
|
|
1233
|
+
]);
|
|
1234
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento dos valores
|
|
1235
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1236
|
+
// O Lexador não deve encontrar erros
|
|
1237
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1238
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1239
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1240
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1241
|
+
]));
|
|
1242
|
+
// Avaliador Sintático
|
|
1243
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1244
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1245
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1246
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1247
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1248
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1249
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1250
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1251
|
+
// Resolvedor
|
|
1252
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1253
|
+
// O Resolvedor deve resolver de acordo e traduzir ornamentos para ornaments, assim como o valor
|
|
1254
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
1255
|
+
expect(resultadoResolvedor).toContain(`ornamentos("${valoresAceitos[index]}");`);
|
|
1256
|
+
}
|
|
1257
|
+
});
|
|
1258
|
+
it('Atribuindo Método "ornaments()" com valor numérico - caso de falha', () => {
|
|
1259
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
1260
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1261
|
+
// Lexador
|
|
1262
|
+
const resultadoLexador = lexador.mapear([
|
|
1263
|
+
"div {",
|
|
1264
|
+
`font-variant-alternates: ornaments(${valoresAceitos[index]});`,
|
|
1265
|
+
"}"
|
|
1266
|
+
]);
|
|
1267
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1268
|
+
expect(() => {
|
|
1269
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1270
|
+
}).toThrow('O valor da função ornaments() deve estar entre 1 e 99');
|
|
1271
|
+
}
|
|
1272
|
+
});
|
|
988
1273
|
it('Atribuindo Método "perspective()"', () => {
|
|
989
1274
|
for (let index = 0; index < metodos_css_1.MetodoPerspectivar.length; index += 1) {
|
|
990
1275
|
const valoresAceitos = ['800px', '6.5cm', '0.1', '0', '1', '1.75'];
|
|
@@ -1028,7 +1313,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1028
1313
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoPerspectivar[index]);
|
|
1029
1314
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoPerspectivar[index]]);
|
|
1030
1315
|
// Tradutor
|
|
1031
|
-
const resultadoTradutor =
|
|
1316
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1032
1317
|
// O Tradutor deve serializar de acordo e traduzir perspective para perspectivar
|
|
1033
1318
|
expect(resultadoTradutor).toContain(`perspectivar(${valoresAceitos[valIndex]});`);
|
|
1034
1319
|
}
|
|
@@ -1063,11 +1348,163 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1063
1348
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1064
1349
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoPassos[index]);
|
|
1065
1350
|
// Tradutor deve serializar de acordo e traduzir steps para passos, assim como o termo de salto
|
|
1066
|
-
const resultadoTradutor =
|
|
1351
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1067
1352
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoPassos[index]]);
|
|
1068
1353
|
expect(resultadoTradutor).toContain('passos(2, salto-inicial);');
|
|
1069
1354
|
}
|
|
1070
1355
|
});
|
|
1356
|
+
it('Atribuindo Método "styleset()" - caso de sucesso', () => {
|
|
1357
|
+
const valoresAceitos = ['1', '1, 2', '6, 12, 18'];
|
|
1358
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1359
|
+
// Lexador
|
|
1360
|
+
const resultadoLexador = lexador.mapear([
|
|
1361
|
+
"div {",
|
|
1362
|
+
`font-variant-alternates: styleset(${valoresAceitos[index]});`,
|
|
1363
|
+
"}"
|
|
1364
|
+
]);
|
|
1365
|
+
// O Lexador não deve encontrar erros
|
|
1366
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1367
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1368
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1369
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1370
|
+
]));
|
|
1371
|
+
// O Lexador deve montar um objeto contendo valores numéricos
|
|
1372
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1373
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1374
|
+
]));
|
|
1375
|
+
// Avaliador Sintático
|
|
1376
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1377
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1378
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1379
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1380
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1381
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1382
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1383
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1384
|
+
// Resolvedor
|
|
1385
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1386
|
+
// O Resolvedor deve resolver de acordo e traduzir de acordo
|
|
1387
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
1388
|
+
expect(resultadoResolvedor).toContain(`conjunto-estilos(${valoresAceitos[index]});`);
|
|
1389
|
+
}
|
|
1390
|
+
});
|
|
1391
|
+
it('Atribuindo Método "styleset()" - caso de falha', () => {
|
|
1392
|
+
const valoresAceitos = ['0', '1, 21, 12', '3, 13, 30'];
|
|
1393
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1394
|
+
// Lexador
|
|
1395
|
+
const resultadoLexador = lexador.mapear([
|
|
1396
|
+
"div {",
|
|
1397
|
+
`font-variant-alternates: styleset(${valoresAceitos[index]});`,
|
|
1398
|
+
"}"
|
|
1399
|
+
]);
|
|
1400
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1401
|
+
expect(() => {
|
|
1402
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1403
|
+
}).toThrow('Os valores da função styleset() devem estar entre 1 e 20');
|
|
1404
|
+
}
|
|
1405
|
+
});
|
|
1406
|
+
it('Atribuindo Método "stylistic()" - caso de sucesso', () => {
|
|
1407
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
1408
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1409
|
+
// Lexador
|
|
1410
|
+
const resultadoLexador = lexador.mapear([
|
|
1411
|
+
"div {",
|
|
1412
|
+
`font-variant-alternates: stylistic(${valoresAceitos[index]});`,
|
|
1413
|
+
"}"
|
|
1414
|
+
]);
|
|
1415
|
+
// O Lexador não deve encontrar erros
|
|
1416
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1417
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1418
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1419
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1420
|
+
]));
|
|
1421
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
1422
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1423
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1424
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1425
|
+
]));
|
|
1426
|
+
// Avaliador Sintático
|
|
1427
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1428
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1429
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1430
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1431
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1432
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1433
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1434
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1435
|
+
// Resolvedor
|
|
1436
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1437
|
+
// O Resolvedor deve resolver de acordo e traduzir estilístico para stylistic
|
|
1438
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
1439
|
+
expect(resultadoResolvedor).toContain(`estilístico(${valoresAceitos[index]});`);
|
|
1440
|
+
}
|
|
1441
|
+
});
|
|
1442
|
+
it('Atribuindo Método "stylistic()" - caso de falha', () => {
|
|
1443
|
+
const valoresAceitos = ['0', '21', '30'];
|
|
1444
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1445
|
+
// Lexador
|
|
1446
|
+
const resultadoLexador = lexador.mapear([
|
|
1447
|
+
"div {",
|
|
1448
|
+
`font-variant-alternates: stylistic(${valoresAceitos[index]});`,
|
|
1449
|
+
"}"
|
|
1450
|
+
]);
|
|
1451
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1452
|
+
expect(() => {
|
|
1453
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1454
|
+
}).toThrow('O valor da função stylistic() deve estar entre 1 e 20');
|
|
1455
|
+
}
|
|
1456
|
+
});
|
|
1457
|
+
it('Atribuindo Método "swash()" - caso de sucesso', () => {
|
|
1458
|
+
const valoresAceitos = ['1', '2', '12', '20'];
|
|
1459
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1460
|
+
// Lexador
|
|
1461
|
+
const resultadoLexador = lexador.mapear([
|
|
1462
|
+
"div {",
|
|
1463
|
+
`font-variant-alternates: swash(${valoresAceitos[index]});`,
|
|
1464
|
+
"}"
|
|
1465
|
+
]);
|
|
1466
|
+
// O Lexador não deve encontrar erros
|
|
1467
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1468
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1469
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1470
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1471
|
+
]));
|
|
1472
|
+
// O Lexador deve montar um objeto de comprimento 10, incluindo mapeamento de valores numéricos
|
|
1473
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1474
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1475
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1476
|
+
]));
|
|
1477
|
+
// Avaliador Sintático
|
|
1478
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1479
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1480
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1481
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1482
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1483
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1484
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1485
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('font-variant-alternates');
|
|
1486
|
+
// Resolvedor
|
|
1487
|
+
const resultadoResolvedor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1488
|
+
// O Resolvedor deve resolver de acordo e traduzir espirrar para swash
|
|
1489
|
+
expect(resultadoResolvedor).toContain('variacao-fonte-alternativa');
|
|
1490
|
+
expect(resultadoResolvedor).toContain(`espirrar(${valoresAceitos[index]});`);
|
|
1491
|
+
}
|
|
1492
|
+
});
|
|
1493
|
+
it('Atribuindo Método "swash()" - caso de falha', () => {
|
|
1494
|
+
const valoresAceitos = ['0', '100', '300'];
|
|
1495
|
+
for (let index = 0; index < valoresAceitos.length; index += 1) {
|
|
1496
|
+
// Lexador
|
|
1497
|
+
const resultadoLexador = lexador.mapear([
|
|
1498
|
+
"div {",
|
|
1499
|
+
`font-variant-alternates: swash(${valoresAceitos[index]});`,
|
|
1500
|
+
"}"
|
|
1501
|
+
]);
|
|
1502
|
+
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1503
|
+
expect(() => {
|
|
1504
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1505
|
+
}).toThrow('O valor da função swash() deve estar entre 1 e 99');
|
|
1506
|
+
}
|
|
1507
|
+
});
|
|
1071
1508
|
it('Atribuindo Método "drop-shadow()" com valores de comprimento', () => {
|
|
1072
1509
|
for (let index = 0; index < metodos_css_1.MetodoProjetarSombra.length; index += 1) {
|
|
1073
1510
|
const comprimentos = ['15px 15px', '15px 15px 15px', '0.5rem 0.5rem', '0.5rem 0.5rem 1rem'];
|
|
@@ -1100,7 +1537,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1100
1537
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1101
1538
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1102
1539
|
// Tradutor
|
|
1103
|
-
const resultadoTradutor =
|
|
1540
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1104
1541
|
// O Tradutor deve serializar de acordo e traduzir drop-shadow para projetar-sombra
|
|
1105
1542
|
expect(resultadoTradutor).toContain(`projetar-sombra(${comprimentos[posIndex]});`);
|
|
1106
1543
|
}
|
|
@@ -1143,7 +1580,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1143
1580
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1144
1581
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1145
1582
|
// Tradutor
|
|
1146
|
-
const resultadoTradutor =
|
|
1583
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1147
1584
|
// O Tradutor deve serializar de acordo e traduzir red para vermelho
|
|
1148
1585
|
expect(resultadoTradutor).toContain('vermelho');
|
|
1149
1586
|
}
|
|
@@ -1183,7 +1620,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1183
1620
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRaio[index]);
|
|
1184
1621
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRaio[index]]);
|
|
1185
1622
|
// Tradutor
|
|
1186
|
-
const resultadoTradutor =
|
|
1623
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1187
1624
|
// O Tradutor deve serializar de acordo e traduzir ray para raio
|
|
1188
1625
|
expect(resultadoTradutor).toContain(`raio(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1189
1626
|
}
|
|
@@ -1220,7 +1657,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1220
1657
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRaio[index]);
|
|
1221
1658
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRaio[index]]);
|
|
1222
1659
|
// Tradutor
|
|
1223
|
-
const resultadoTradutor =
|
|
1660
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1224
1661
|
// O Tradutor deve serializar de acordo e traduzir ray para raio
|
|
1225
1662
|
expect(resultadoTradutor).toContain(`raio(200deg);`);
|
|
1226
1663
|
}
|
|
@@ -1262,7 +1699,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1262
1699
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1263
1700
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1264
1701
|
// Tradutor
|
|
1265
|
-
const resultadoTradutor =
|
|
1702
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1266
1703
|
// O Tradutor deve serializar de acordo e traduzir rotate para rotacionar
|
|
1267
1704
|
expect(resultadoTradutor).toContain(`rotacionar(${valoresAceitos[valIndex]});`);
|
|
1268
1705
|
}
|
|
@@ -1308,7 +1745,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1308
1745
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1309
1746
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual('transform');
|
|
1310
1747
|
// Tradutor
|
|
1311
|
-
const resultadoTradutor =
|
|
1748
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1312
1749
|
// O Tradutor deve serializar de acordo e traduzir rotate3d para rotacionar-3d
|
|
1313
1750
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1314
1751
|
expect(resultadoTradutor).toContain(`rotacionar-3d(${valoresAceitos[valIndex]});`);
|
|
@@ -1333,7 +1770,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1333
1770
|
const resultadoAvaliadorSintatico = avaliadorSintatico.analisar(resultadoLexador.simbolos);
|
|
1334
1771
|
// Serializador não deve aceitar 'px' como quantificador válido
|
|
1335
1772
|
expect(() => {
|
|
1336
|
-
|
|
1773
|
+
resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1337
1774
|
}).toThrow();
|
|
1338
1775
|
}
|
|
1339
1776
|
});
|
|
@@ -1378,7 +1815,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1378
1815
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1379
1816
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1380
1817
|
// Tradutor
|
|
1381
|
-
const resultadoTradutor =
|
|
1818
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1382
1819
|
// O Tradutor deve serializar de acordo e traduzir rotateX para rotacionar-horizontal
|
|
1383
1820
|
expect(resultadoTradutor).toContain(`rotacionar-horizontal(${valoresAceitos[valIndex]});`);
|
|
1384
1821
|
}
|
|
@@ -1425,7 +1862,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1425
1862
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1426
1863
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1427
1864
|
// Tradutor
|
|
1428
|
-
const resultadoTradutor =
|
|
1865
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1429
1866
|
// O Tradutor deve serializar de acordo e traduzir rotateY para rotacionar-vertical
|
|
1430
1867
|
expect(resultadoTradutor).toContain(`rotacionar-vertical(${valoresAceitos[valIndex]});`);
|
|
1431
1868
|
}
|
|
@@ -1472,7 +1909,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1472
1909
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1473
1910
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1474
1911
|
// Tradutor
|
|
1475
|
-
const resultadoTradutor =
|
|
1912
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1476
1913
|
// O Tradutor deve serializar de acordo e traduzir rotateZ para rotacionar-eixo-z
|
|
1477
1914
|
expect(resultadoTradutor).toContain(`rotacionar-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1478
1915
|
}
|
|
@@ -1519,7 +1956,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1519
1956
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRotacionarMatiz[index]);
|
|
1520
1957
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRotacionarMatiz[index]]);
|
|
1521
1958
|
// Tradutor
|
|
1522
|
-
const resultadoTradutor =
|
|
1959
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1523
1960
|
// O Tradutor deve serializar de acordo e traduzir hue-rotate para rotacionar-matiz
|
|
1524
1961
|
expect(resultadoTradutor).toContain(`rotacionar-matiz(${valoresAceitos[valIndex]});`);
|
|
1525
1962
|
}
|
|
@@ -1566,7 +2003,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1566
2003
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSaturar[index]);
|
|
1567
2004
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSaturar[index]]);
|
|
1568
2005
|
// Tradutor
|
|
1569
|
-
const resultadoTradutor =
|
|
2006
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1570
2007
|
// O Tradutor deve serializar de acordo e traduzir saturate para saturar
|
|
1571
2008
|
expect(resultadoTradutor).toContain(`saturar(${valoresAceitos[valIndex]});`);
|
|
1572
2009
|
}
|
|
@@ -1613,7 +2050,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1613
2050
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSepia[index]);
|
|
1614
2051
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSepia[index]]);
|
|
1615
2052
|
// Tradutor
|
|
1616
|
-
const resultadoTradutor =
|
|
2053
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1617
2054
|
// O Tradutor deve serializar de acordo e traduzir sépia para sepia
|
|
1618
2055
|
expect(resultadoTradutor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
1619
2056
|
}
|
|
@@ -1656,7 +2093,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1656
2093
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1657
2094
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1658
2095
|
// Tradutor
|
|
1659
|
-
const resultadoTradutor =
|
|
2096
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1660
2097
|
// O Tradutor deve serializar de acordo e traduzir translate para translação
|
|
1661
2098
|
expect(resultadoTradutor).toContain(`translação(${valoresAceitos[valIndex]});`);
|
|
1662
2099
|
}
|
|
@@ -1688,7 +2125,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1688
2125
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1689
2126
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1690
2127
|
// Tradutor
|
|
1691
|
-
const resultadoTradutor =
|
|
2128
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1692
2129
|
// O Tradutor deve serializar de acordo e traduzir translate para translação
|
|
1693
2130
|
expect(resultadoTradutor).toContain(`translação(100deg, 100deg);`);
|
|
1694
2131
|
}
|
|
@@ -1734,7 +2171,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1734
2171
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1735
2172
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1736
2173
|
// Tradutor
|
|
1737
|
-
const resultadoTradutor =
|
|
2174
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1738
2175
|
// O Tradutor deve serializar de acordo e traduzir translateX para translacao-horizontal
|
|
1739
2176
|
expect(resultadoTradutor).toContain(`translacao-horizontal(${valoresAceitos[valIndex]});`);
|
|
1740
2177
|
}
|
|
@@ -1781,7 +2218,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1781
2218
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1782
2219
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1783
2220
|
// Serialização
|
|
1784
|
-
const resultadoSerializacao =
|
|
2221
|
+
const resultadoSerializacao = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1785
2222
|
// O serializador deve serializar de acordo e traduzir translateY para translacao-vertical
|
|
1786
2223
|
expect(resultadoSerializacao).toContain(`translacao-vertical(${valoresAceitos[valIndex]});`);
|
|
1787
2224
|
}
|
|
@@ -1828,7 +2265,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1828
2265
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1829
2266
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1830
2267
|
// Tradutor
|
|
1831
|
-
const resultadoTradutor =
|
|
2268
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1832
2269
|
// O Tradutor deve serializar de acordo e traduzir translateZ para translação-eixo-z
|
|
1833
2270
|
expect(resultadoTradutor).toContain(`translacao-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1834
2271
|
}
|
|
@@ -1864,7 +2301,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1864
2301
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1865
2302
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1866
2303
|
// Tradutor
|
|
1867
|
-
const resultadoTradutor =
|
|
2304
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1868
2305
|
// O Tradutor deve serializar de acordo e traduzir translate3d para translação-3d
|
|
1869
2306
|
expect(resultadoTradutor).toContain(`translacao-3d(5ch, 0.4in, 5px);`);
|
|
1870
2307
|
}
|
|
@@ -1940,7 +2377,7 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1940
2377
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1941
2378
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1942
2379
|
// Tradutor
|
|
1943
|
-
const resultadoTradutor =
|
|
2380
|
+
const resultadoTradutor = resolvedor.resolver(resultadoAvaliadorSintatico);
|
|
1944
2381
|
// O Tradutor deve serializar de acordo e traduzir translate3d para translacao-3d
|
|
1945
2382
|
if (valIndex !== 8) {
|
|
1946
2383
|
expect(resultadoTradutor).toContain(`translacao-3d(${valoresAceitos[valIndex]});`);
|