@designliquido/foles 0.1.1 → 0.2.0
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/fontes/avaliador-sintatico/avaliador-sintatico.d.ts +2 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico.js +13 -14
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/foles.d.ts +5 -1
- package/fontes/foles.js +20 -8
- package/fontes/foles.js.map +1 -1
- package/fontes/lexador/lexador.js +12 -0
- package/fontes/lexador/lexador.js.map +1 -1
- package/fontes/modificadores/dicionario/dicionario-modificadores.js +3 -3
- package/fontes/modificadores/dicionario/dicionario-modificadores.js.map +1 -1
- package/fontes/modificadores/{deslocamento-rotacao.d.ts → rotacao-deslocamento.d.ts} +1 -1
- package/fontes/modificadores/{deslocamento-rotacao.js → rotacao-deslocamento.js} +5 -5
- package/fontes/modificadores/{deslocamento-rotacao.js.map → rotacao-deslocamento.js.map} +1 -1
- package/fontes/tipos-de-simbolos/foles.d.ts +2 -0
- package/fontes/tipos-de-simbolos/foles.js +2 -0
- package/fontes/tipos-de-simbolos/foles.js.map +1 -1
- package/fontes/tradutor/index.js +7 -1
- package/fontes/tradutor/index.js.map +1 -1
- package/package.json +1 -1
- package/testes/foles.test.d.ts +1 -0
- package/testes/foles.test.js +16 -0
- package/testes/foles.test.js.map +1 -0
- package/testes/listas/cores.d.ts +3 -0
- package/testes/listas/cores.js +44 -0
- package/testes/listas/cores.js.map +1 -0
- package/testes/listas/estilo.d.ts +3 -0
- package/testes/listas/estilo.js +50 -0
- package/testes/listas/estilo.js.map +1 -0
- package/testes/listas/palavras-reservadas.d.ts +3 -0
- package/testes/listas/palavras-reservadas.js +63 -0
- package/testes/listas/palavras-reservadas.js.map +1 -0
- package/testes/listas/posi/303/247/303/243o.d.ts +3 -0
- package/testes/listas/posi/303/247/303/243o.js +61 -0
- package/testes/listas/posi/303/247/303/243o.js.map +1 -0
- package/testes/listas/shorthand.d.ts +3 -0
- package/testes/listas/shorthand.js +80 -0
- package/testes/listas/shorthand.js.map +1 -0
- package/testes/listas/status.d.ts +3 -0
- package/testes/listas/status.js +91 -0
- package/testes/listas/status.js.map +1 -0
- package/testes/listas/url.d.ts +3 -0
- package/testes/listas/url.js +28 -0
- package/testes/listas/url.js.map +1 -0
- package/testes/listas/valor-global.d.ts +3 -0
- package/testes/listas/valor-global.js +149 -0
- package/testes/listas/valor-global.js.map +1 -0
- package/testes/listas/valor-numerico.d.ts +3 -0
- package/testes/listas/valor-numerico.js +49 -0
- package/testes/listas/valor-numerico.js.map +1 -0
- package/testes/listas/valor-quantificador.d.ts +3 -0
- package/testes/listas/valor-quantificador.js +184 -0
- package/testes/listas/valor-quantificador.js.map +1 -0
- package/testes/modificadores/cores.test.d.ts +1 -0
- package/testes/modificadores/cores.test.js +111 -0
- package/testes/modificadores/cores.test.js.map +1 -0
- package/testes/modificadores/estilo.test.d.ts +1 -0
- package/testes/modificadores/estilo.test.js +101 -0
- package/testes/modificadores/estilo.test.js.map +1 -0
- package/testes/modificadores/palavras-reservadas.test.d.ts +1 -0
- package/testes/modificadores/palavras-reservadas.test.js +20 -0
- package/testes/modificadores/palavras-reservadas.test.js.map +1 -0
- package/testes/modificadores/posi/303/247/303/243o.test.d.ts +1 -0
- package/testes/modificadores/posi/303/247/303/243o.test.js +101 -0
- package/testes/modificadores/posi/303/247/303/243o.test.js.map +1 -0
- package/testes/modificadores/shorthand.test.d.ts +1 -0
- package/testes/modificadores/shorthand.test.js +23 -0
- package/testes/modificadores/shorthand.test.js.map +1 -0
- package/testes/modificadores/status.test.d.ts +1 -0
- package/testes/modificadores/status.test.js +101 -0
- package/testes/modificadores/status.test.js.map +1 -0
- package/testes/modificadores/url.test.d.ts +1 -0
- package/testes/modificadores/url.test.js +97 -0
- package/testes/modificadores/url.test.js.map +1 -0
- package/testes/modificadores/valor-global.test.d.ts +1 -0
- package/testes/modificadores/valor-global.test.js +107 -0
- package/testes/modificadores/valor-global.test.js.map +1 -0
- package/testes/modificadores/valor-numerico.test.d.ts +1 -0
- package/testes/modificadores/valor-numerico.test.js +95 -0
- package/testes/modificadores/valor-numerico.test.js.map +1 -0
- package/testes/modificadores/valor-quantificador.test.d.ts +1 -0
- package/testes/modificadores/valor-quantificador.test.js +95 -0
- package/testes/modificadores/valor-quantificador.test.js.map +1 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
7
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
8
|
+
const superclasse_1 = require("../../fontes/modificadores/superclasse");
|
|
9
|
+
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
+
const tradutor_1 = require("../../fontes/tradutor");
|
|
11
|
+
const status_1 = require("../listas/status");
|
|
12
|
+
describe('Testando Seletores com STATUS como atributo', () => {
|
|
13
|
+
const atributosCss = [
|
|
14
|
+
'auto', 'none', 'always', 'avoid',
|
|
15
|
+
'all', 'both', 'left', 'right'
|
|
16
|
+
];
|
|
17
|
+
const atributosFolEs = [
|
|
18
|
+
['automatico', 'automático'], 'nenhum', 'sempre', 'evitar',
|
|
19
|
+
'tudo', 'ambos', 'esquerda', 'direita'
|
|
20
|
+
];
|
|
21
|
+
describe('Testes Unitários', () => {
|
|
22
|
+
let lexador;
|
|
23
|
+
let avaliador;
|
|
24
|
+
let tradutor;
|
|
25
|
+
beforeEach(() => {
|
|
26
|
+
lexador = new lexador_1.Lexador();
|
|
27
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
28
|
+
tradutor = new tradutor_1.Tradutor();
|
|
29
|
+
});
|
|
30
|
+
it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
|
|
31
|
+
for (let index = 0; index < Object.keys(status_1.Status).length; index += 1) {
|
|
32
|
+
const seletor = new superclasse_1.SeletorModificador(status_1.Status[index], 'sempre', null);
|
|
33
|
+
// LEXADOR
|
|
34
|
+
const resultadoLexador = lexador.mapear([
|
|
35
|
+
"corpo {",
|
|
36
|
+
`${status_1.Status[index]}: ${seletor['valor']};`,
|
|
37
|
+
"}"
|
|
38
|
+
]);
|
|
39
|
+
expect(resultadoLexador).toBeTruthy();
|
|
40
|
+
expect(resultadoLexador.simbolos).toHaveLength(7);
|
|
41
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
42
|
+
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
|
|
43
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
|
|
44
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
45
|
+
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
|
|
46
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_STATUS }),
|
|
47
|
+
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
|
|
48
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
|
|
49
|
+
]));
|
|
50
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
51
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
52
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
53
|
+
]));
|
|
54
|
+
// AVALIADOR SINTÁTICO
|
|
55
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
56
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
57
|
+
expect(resultadoAvaliadorSintatico).toHaveLength(1);
|
|
58
|
+
expect(resultadoAvaliadorSintatico[0].seletor).toBe('corpo');
|
|
59
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
60
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
61
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('sempre');
|
|
62
|
+
// TRADUTOR
|
|
63
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
64
|
+
expect(resultadoTradutor).toBeTruthy();
|
|
65
|
+
expect(resultadoTradutor).toContain("body");
|
|
66
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
67
|
+
expect(resultadoTradutor).toContain('always;');
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
|
|
71
|
+
for (let index = 0; index < Object.keys(status_1.Status).length; index += 1) {
|
|
72
|
+
// LEXADOR - Status não informado
|
|
73
|
+
const resultadoLexador = lexador.mapear([
|
|
74
|
+
"lmht {",
|
|
75
|
+
`${status_1.Status[index]}: ;`,
|
|
76
|
+
"}"
|
|
77
|
+
]);
|
|
78
|
+
expect(resultadoLexador.simbolos).not.toHaveLength(7);
|
|
79
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
80
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_STATUS }),
|
|
81
|
+
]));
|
|
82
|
+
// Causar erro de digitação
|
|
83
|
+
const seletorIncorreto = status_1.Status[index].replace(status_1.Status[index][0], '');
|
|
84
|
+
const novoLexador = lexador.mapear([
|
|
85
|
+
"lmht {",
|
|
86
|
+
`${seletorIncorreto}: automatico;`,
|
|
87
|
+
"}"
|
|
88
|
+
]);
|
|
89
|
+
// AVALIADOR SINTÁTICO - Erro esperado como retorno
|
|
90
|
+
expect(() => {
|
|
91
|
+
avaliador.analisar(novoLexador.simbolos);
|
|
92
|
+
}).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
|
|
93
|
+
// TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
|
|
94
|
+
expect(() => {
|
|
95
|
+
tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
|
|
96
|
+
}).toHaveLength(0);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=status.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../../testes/modificadores/status.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
7
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
8
|
+
const superclasse_1 = require("../../fontes/modificadores/superclasse");
|
|
9
|
+
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
+
const tradutor_1 = require("../../fontes/tradutor");
|
|
11
|
+
const url_1 = require("../listas/url");
|
|
12
|
+
describe('Testando Seletores que recebem URL como atributo', () => {
|
|
13
|
+
const atributos = [
|
|
14
|
+
'url("img_tree.gif")',
|
|
15
|
+
'url("https://www.showmetech.com.br/wp-content/uploads//2018/12/email_ss_1920-1920x1024.png")',
|
|
16
|
+
];
|
|
17
|
+
describe('Testes Unitários', () => {
|
|
18
|
+
let lexador;
|
|
19
|
+
let avaliador;
|
|
20
|
+
let tradutor;
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
lexador = new lexador_1.Lexador();
|
|
23
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
24
|
+
tradutor = new tradutor_1.Tradutor();
|
|
25
|
+
});
|
|
26
|
+
it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
|
|
27
|
+
for (let index = 0; index < Object.keys(url_1.Url).length; index += 1) {
|
|
28
|
+
const seletor = new superclasse_1.SeletorModificador(url_1.Url[index], 'url("img_tree.gif")', null);
|
|
29
|
+
// LEXADOR
|
|
30
|
+
const resultadoLexador = lexador.mapear([
|
|
31
|
+
"lmht {",
|
|
32
|
+
`${url_1.Url[index]}: ${seletor['valor']};`,
|
|
33
|
+
"}"
|
|
34
|
+
]);
|
|
35
|
+
expect(resultadoLexador).toBeTruthy();
|
|
36
|
+
expect(resultadoLexador.simbolos).toHaveLength(7);
|
|
37
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
38
|
+
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
|
|
39
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
|
|
40
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
41
|
+
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
|
|
42
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_URL }),
|
|
43
|
+
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
|
|
44
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
|
|
45
|
+
]));
|
|
46
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
47
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
48
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
49
|
+
]));
|
|
50
|
+
// AVALIADOR SINTÁTICO
|
|
51
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
52
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
53
|
+
expect(resultadoAvaliadorSintatico).toHaveLength(1);
|
|
54
|
+
expect(resultadoAvaliadorSintatico[0].seletor).toBe('lmht');
|
|
55
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
56
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
57
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('url("img_tree.gif")');
|
|
58
|
+
// TRADUTOR
|
|
59
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
60
|
+
expect(resultadoTradutor).toBeTruthy();
|
|
61
|
+
expect(resultadoTradutor).toContain("html");
|
|
62
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
63
|
+
expect(resultadoTradutor).toContain('url("img_tree.gif");');
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
|
|
67
|
+
for (let index = 0; index < Object.keys(url_1.Url).length; index += 1) {
|
|
68
|
+
// LEXADOR - URL não informada
|
|
69
|
+
const resultadoLexador = lexador.mapear([
|
|
70
|
+
"lmht {",
|
|
71
|
+
`${url_1.Url[index]}: ;`,
|
|
72
|
+
"}"
|
|
73
|
+
]);
|
|
74
|
+
expect(resultadoLexador.simbolos).not.toHaveLength(7);
|
|
75
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
76
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_URL }),
|
|
77
|
+
]));
|
|
78
|
+
// Causar erro de digitação
|
|
79
|
+
const seletorIncorreto = url_1.Url[index].replace(url_1.Url[index][0], '');
|
|
80
|
+
const novoLexador = lexador.mapear([
|
|
81
|
+
"lmht {",
|
|
82
|
+
`${seletorIncorreto}: 'url("img_tree.gif")';`,
|
|
83
|
+
"}"
|
|
84
|
+
]);
|
|
85
|
+
// AVALIADOR SINTÁTICO - Erro esperado como retorno
|
|
86
|
+
expect(() => {
|
|
87
|
+
avaliador.analisar(novoLexador.simbolos);
|
|
88
|
+
}).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
|
|
89
|
+
// TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
|
|
90
|
+
expect(() => {
|
|
91
|
+
tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
|
|
92
|
+
}).toHaveLength(0);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=url.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.test.js","sourceRoot":"","sources":["../../../testes/modificadores/url.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
7
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
8
|
+
const superclasse_1 = require("../../fontes/modificadores/superclasse");
|
|
9
|
+
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
+
const tradutor_1 = require("../../fontes/tradutor");
|
|
11
|
+
const valor_global_1 = require("../listas/valor-global");
|
|
12
|
+
describe('Testando Seletores com VALORES GLOBAIS', () => {
|
|
13
|
+
const atributosCss = [
|
|
14
|
+
'inherit',
|
|
15
|
+
'initial',
|
|
16
|
+
'revert',
|
|
17
|
+
'revert-layer',
|
|
18
|
+
'unset',
|
|
19
|
+
];
|
|
20
|
+
const atributosFolEs = [
|
|
21
|
+
'herdar',
|
|
22
|
+
'inicial',
|
|
23
|
+
'reverter',
|
|
24
|
+
'reverter-camada',
|
|
25
|
+
'desarmar'
|
|
26
|
+
];
|
|
27
|
+
describe('Testes Unitários', () => {
|
|
28
|
+
let lexador;
|
|
29
|
+
let avaliador;
|
|
30
|
+
let tradutor;
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
lexador = new lexador_1.Lexador();
|
|
33
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
34
|
+
tradutor = new tradutor_1.Tradutor();
|
|
35
|
+
});
|
|
36
|
+
it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
|
|
37
|
+
for (let index = 0; index < Object.keys(valor_global_1.ValorGlobal).length; index += 1) {
|
|
38
|
+
const seletor = new superclasse_1.SeletorModificador(valor_global_1.ValorGlobal[index], 'herdar', null);
|
|
39
|
+
// LEXADOR
|
|
40
|
+
const resultadoLexador = lexador.mapear([
|
|
41
|
+
"corpo {",
|
|
42
|
+
`${valor_global_1.ValorGlobal[index]}: ${seletor['valor']};`,
|
|
43
|
+
"}"
|
|
44
|
+
]);
|
|
45
|
+
expect(resultadoLexador).toBeTruthy();
|
|
46
|
+
expect(resultadoLexador.simbolos).toHaveLength(7);
|
|
47
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
48
|
+
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
|
|
49
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
|
|
50
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
51
|
+
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
|
|
52
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_GLOBAL }),
|
|
53
|
+
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
|
|
54
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
|
|
55
|
+
]));
|
|
56
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
57
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
58
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
59
|
+
]));
|
|
60
|
+
// AVALIADOR SINTÁTICO
|
|
61
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
62
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
63
|
+
expect(resultadoAvaliadorSintatico).toHaveLength(1);
|
|
64
|
+
expect(resultadoAvaliadorSintatico[0].seletor).toBe('corpo');
|
|
65
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
66
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
67
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('herdar');
|
|
68
|
+
// TRADUTOR
|
|
69
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
70
|
+
expect(resultadoTradutor).toBeTruthy();
|
|
71
|
+
expect(resultadoTradutor).toContain("body");
|
|
72
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
73
|
+
expect(resultadoTradutor).toContain('inherit;');
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
|
|
77
|
+
for (let index = 0; index < Object.keys(valor_global_1.ValorGlobal).length; index += 1) {
|
|
78
|
+
// LEXADOR - Valor Global não informado
|
|
79
|
+
const resultadoLexador = lexador.mapear([
|
|
80
|
+
"lmht {",
|
|
81
|
+
`${valor_global_1.ValorGlobal[index]}: ;`,
|
|
82
|
+
"}"
|
|
83
|
+
]);
|
|
84
|
+
expect(resultadoLexador.simbolos).not.toHaveLength(7);
|
|
85
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
86
|
+
// expect.objectContaining({ tipo: tiposDeSimbolos.ATRIBUTO_GLOBAL }),
|
|
87
|
+
]));
|
|
88
|
+
// Causar erro de digitação
|
|
89
|
+
const seletorIncorreto = valor_global_1.ValorGlobal[index].replace(valor_global_1.ValorGlobal[index][0], '');
|
|
90
|
+
const novoLexador = lexador.mapear([
|
|
91
|
+
"lmht {",
|
|
92
|
+
`${seletorIncorreto}: reverter;`,
|
|
93
|
+
"}"
|
|
94
|
+
]);
|
|
95
|
+
// AVALIADOR SINTÁTICO - Erro esperado como retorno
|
|
96
|
+
expect(() => {
|
|
97
|
+
avaliador.analisar(novoLexador.simbolos);
|
|
98
|
+
}).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
|
|
99
|
+
// TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
|
|
100
|
+
expect(() => {
|
|
101
|
+
tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
|
|
102
|
+
}).toHaveLength(0);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=valor-global.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valor-global.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-global.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
7
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
8
|
+
const superclasse_1 = require("../../fontes/modificadores/superclasse");
|
|
9
|
+
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
+
const tradutor_1 = require("../../fontes/tradutor");
|
|
11
|
+
const valor_numerico_1 = require("../listas/valor-numerico");
|
|
12
|
+
describe('Testando Seletores que recebem VALOR NUMÉRICO como atributo', () => {
|
|
13
|
+
const atributos = [
|
|
14
|
+
'1', '10', '0.5', '0'
|
|
15
|
+
];
|
|
16
|
+
describe('Testes Unitários', () => {
|
|
17
|
+
let lexador;
|
|
18
|
+
let avaliador;
|
|
19
|
+
let tradutor;
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
lexador = new lexador_1.Lexador();
|
|
22
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
23
|
+
tradutor = new tradutor_1.Tradutor();
|
|
24
|
+
});
|
|
25
|
+
it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
|
|
26
|
+
for (let index = 0; index < Object.keys(valor_numerico_1.ValorNumerico).length; index += 1) {
|
|
27
|
+
const seletor = new superclasse_1.SeletorModificador(valor_numerico_1.ValorNumerico[index], '3', '');
|
|
28
|
+
// LEXADOR
|
|
29
|
+
const resultadoLexador = lexador.mapear([
|
|
30
|
+
"corpo {",
|
|
31
|
+
`${valor_numerico_1.ValorNumerico[index]}: ${seletor['valor']};`,
|
|
32
|
+
"}"
|
|
33
|
+
]);
|
|
34
|
+
expect(resultadoLexador).toBeTruthy();
|
|
35
|
+
expect(resultadoLexador.simbolos).toHaveLength(7);
|
|
36
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
37
|
+
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
|
|
38
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
|
|
39
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
40
|
+
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
|
|
41
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
42
|
+
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
|
|
43
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
|
|
44
|
+
]));
|
|
45
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
46
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
47
|
+
]));
|
|
48
|
+
// AVALIADOR SINTÁTICO
|
|
49
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
50
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
51
|
+
expect(resultadoAvaliadorSintatico).toHaveLength(1);
|
|
52
|
+
expect(resultadoAvaliadorSintatico[0].seletor).toBe('corpo');
|
|
53
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
54
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
55
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('3');
|
|
56
|
+
// TRADUTOR
|
|
57
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
58
|
+
expect(resultadoTradutor).toBeTruthy();
|
|
59
|
+
expect(resultadoTradutor).toContain("body");
|
|
60
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
61
|
+
expect(resultadoTradutor).toContain("3;");
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
|
|
65
|
+
for (let index = 0; index < Object.keys(valor_numerico_1.ValorNumerico).length; index += 1) {
|
|
66
|
+
// LEXADOR - valor numérico não informado
|
|
67
|
+
const resultadoLexador = lexador.mapear([
|
|
68
|
+
"lmht {",
|
|
69
|
+
`${valor_numerico_1.ValorNumerico[index]}: ;`,
|
|
70
|
+
"}"
|
|
71
|
+
]);
|
|
72
|
+
expect(resultadoLexador.simbolos).not.toHaveLength(7);
|
|
73
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
74
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
75
|
+
]));
|
|
76
|
+
// Causar erro de digitação
|
|
77
|
+
const seletorIncorreto = valor_numerico_1.ValorNumerico[index].replace(valor_numerico_1.ValorNumerico[index][0], '');
|
|
78
|
+
const novoLexador = lexador.mapear([
|
|
79
|
+
"lmht {",
|
|
80
|
+
`${seletorIncorreto}: 1.5;`,
|
|
81
|
+
"}"
|
|
82
|
+
]);
|
|
83
|
+
// AVALIADOR SINTÁTICO - Erro esperado como retorno
|
|
84
|
+
expect(() => {
|
|
85
|
+
avaliador.analisar(novoLexador.simbolos);
|
|
86
|
+
}).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
|
|
87
|
+
// TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
|
|
88
|
+
expect(() => {
|
|
89
|
+
tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
|
|
90
|
+
}).toHaveLength(0);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=valor-numerico.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valor-numerico.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-numerico.test.ts"],"names":[],"mappings":";;;;;AAAA,0EAAsE;AACtE,kDAA+C;AAC/C,wEAA4E;AAC5E,iFAAmE;AACnE,oDAAiD;AACjD,6DAAyD;AAEzD,QAAQ,CAAC,6DAA6D,EAAE,GAAG,EAAE;IACzE,MAAM,SAAS,GAAG;QACd,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG;KACxB,CAAC;IAEF,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC9B,IAAI,OAAgB,CAAC;QACrB,IAAI,SAA6B,CAAC;QAClC,IAAI,QAAkB,CAAC;QAEvB,UAAU,CAAC,GAAG,EAAE;YACZ,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;YACxB,SAAS,GAAG,IAAI,wCAAkB,EAAE,CAAC;YACrC,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;gBACvE,MAAM,OAAO,GAAG,IAAI,gCAAkB,CAAC,8BAAa,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;gBAEtE,UAAU;gBACV,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,SAAS;oBACT,GAAG,8BAAa,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG;oBAC/C,GAAG;iBACN,CAAC,CAAC;gBAEH,MAAM,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,CAAC;gBACtC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CACrC,MAAM,CAAC,eAAe,CAAC;oBACnB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC;oBAC5D,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,cAAc,EAAE,CAAC;oBACjE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC;oBAChE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,WAAW,EAAE,CAAC;oBAC9D,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC;oBAClE,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC;iBACnE,CAAC,CACL,CAAC;gBAEF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CACzC,MAAM,CAAC,eAAe,CAAC;oBACnB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,CAAC;iBACnE,CAAC,CACL,CAAC;gBAGF,sBAAsB;gBACtB,MAAM,2BAA2B,GAAG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAElF,MAAM,CAAC,2BAA2B,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjD,MAAM,CAAC,2BAA2B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACpD,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7D,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,aAAa,CAC3E,OAAO,CAAC,WAAW,CAAC,CACvB,CAAC;gBACF,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAChF,OAAO,CAAC,gBAAgB,CAAC,CAC5B,CAAC;gBACF,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CACvE,GAAG,CACN,CAAC;gBAGF,WAAW;gBACX,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;gBAEzE,MAAM,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC;gBACvC,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC/D,MAAM,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC7C;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACtD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,8BAAa,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;gBAEvE,yCAAyC;gBACzC,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,QAAQ;oBACR,GAAG,8BAAa,CAAC,KAAK,CAAC,KAAK;oBAC5B,GAAG;iBACN,CAAC,CAAC;gBAEH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACtD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CACzC,MAAM,CAAC,eAAe,CAAC;oBACnB,MAAM,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC;iBAC5D,CAAC,CACL,CAAC;gBAEF,2BAA2B;gBAC3B,MAAM,gBAAgB,GAAG,8BAAa,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,8BAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAElF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;oBAC/B,QAAQ;oBACR,GAAG,gBAAgB,QAAQ;oBAC3B,GAAG;iBACN,CAAC,CAAC;gBAEH,mDAAmD;gBACnD,MAAM,CAAC,GAAG,EAAE;oBACR,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,gBAAgB,uBAAuB,CAAC,CAAC;gBAGlE,qEAAqE;gBACrE,MAAM,CAAC,GAAG,EAAE;oBACR,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aACtB;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const avaliador_sintatico_1 = require("../../fontes/avaliador-sintatico");
|
|
7
|
+
const lexador_1 = require("../../fontes/lexador");
|
|
8
|
+
const superclasse_1 = require("../../fontes/modificadores/superclasse");
|
|
9
|
+
const foles_1 = __importDefault(require("../../fontes/tipos-de-simbolos/foles"));
|
|
10
|
+
const tradutor_1 = require("../../fontes/tradutor");
|
|
11
|
+
const valor_quantificador_1 = require("../listas/valor-quantificador");
|
|
12
|
+
describe('Testando Seletores que recebem VALOR e QUANTIFICADOR como atributos', () => {
|
|
13
|
+
const atributos = [
|
|
14
|
+
'12px', '1mm', '2em', '150cm',
|
|
15
|
+
];
|
|
16
|
+
describe('Testes Unitários', () => {
|
|
17
|
+
let lexador;
|
|
18
|
+
let avaliador;
|
|
19
|
+
let tradutor;
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
lexador = new lexador_1.Lexador();
|
|
22
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
23
|
+
tradutor = new tradutor_1.Tradutor();
|
|
24
|
+
});
|
|
25
|
+
it('Casos de sucesso - Lexador, Avaliador e Tradutor', () => {
|
|
26
|
+
for (let index = 0; index < Object.keys(valor_quantificador_1.ValorQuantificador).length; index += 1) {
|
|
27
|
+
const seletor = new superclasse_1.SeletorModificador(valor_quantificador_1.ValorQuantificador[index], '12', 'px');
|
|
28
|
+
// LEXADOR
|
|
29
|
+
const resultadoLexador = lexador.mapear([
|
|
30
|
+
"lmht {",
|
|
31
|
+
`${valor_quantificador_1.ValorQuantificador[index]}: ${seletor['valor']}${seletor['quantificador']};`,
|
|
32
|
+
"}"
|
|
33
|
+
]);
|
|
34
|
+
expect(resultadoLexador).toBeTruthy();
|
|
35
|
+
expect(resultadoLexador.simbolos).toHaveLength(8);
|
|
36
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
37
|
+
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
|
|
38
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
|
|
39
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
40
|
+
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
|
|
41
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
42
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
43
|
+
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
|
|
44
|
+
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
|
|
45
|
+
]));
|
|
46
|
+
// AVALIADOR SINTÁTICO
|
|
47
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
48
|
+
expect(resultadoAvaliadorSintatico).toBeTruthy();
|
|
49
|
+
expect(resultadoAvaliadorSintatico).toHaveLength(1);
|
|
50
|
+
expect(resultadoAvaliadorSintatico[0].seletor).toBe('lmht');
|
|
51
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
52
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
53
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].valor).toStrictEqual('12');
|
|
54
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].quantificador).toStrictEqual('px');
|
|
55
|
+
// TRADUTOR
|
|
56
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
57
|
+
expect(resultadoTradutor).toBeTruthy();
|
|
58
|
+
expect(resultadoTradutor).toContain("html");
|
|
59
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
60
|
+
expect(resultadoTradutor).toContain("12px");
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
it('Casos de Falha - Lexador, Avaliador e Tradutor', () => {
|
|
64
|
+
for (let index = 0; index < Object.keys(valor_quantificador_1.ValorQuantificador).length; index += 1) {
|
|
65
|
+
// LEXADOR - valor e quantificador não informados
|
|
66
|
+
const resultadoLexador = lexador.mapear([
|
|
67
|
+
"lmht {",
|
|
68
|
+
`${valor_quantificador_1.ValorQuantificador[index]}: ;`,
|
|
69
|
+
"}"
|
|
70
|
+
]);
|
|
71
|
+
expect(resultadoLexador.simbolos).not.toHaveLength(8);
|
|
72
|
+
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
|
|
73
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
74
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
75
|
+
]));
|
|
76
|
+
// Causar erro de digitação
|
|
77
|
+
const seletorIncorreto = valor_quantificador_1.ValorQuantificador[index].replace(valor_quantificador_1.ValorQuantificador[index][0], '');
|
|
78
|
+
const novoLexador = lexador.mapear([
|
|
79
|
+
"lmht {",
|
|
80
|
+
`${seletorIncorreto}: 12px;`,
|
|
81
|
+
"}"
|
|
82
|
+
]);
|
|
83
|
+
// AVALIADOR SINTÁTICO - Erro esperado como retorno
|
|
84
|
+
expect(() => {
|
|
85
|
+
avaliador.analisar(novoLexador.simbolos);
|
|
86
|
+
}).toThrow(`O seletor '${seletorIncorreto}' não foi encontrado.`);
|
|
87
|
+
// TRADUTOR - Não deve traduzir devido ao erro do Avaliador Sintático
|
|
88
|
+
expect(() => {
|
|
89
|
+
tradutor.traduzir(avaliador.analisar(novoLexador.simbolos));
|
|
90
|
+
}).toHaveLength(0);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=valor-quantificador.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valor-quantificador.test.js","sourceRoot":"","sources":["../../../testes/modificadores/valor-quantificador.test.ts"],"names":[],"mappings":"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"}
|