@designliquido/foles 0.3.1 → 0.3.2
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.js +76 -1
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/foles.js +1 -1
- package/fontes/foles.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/foles.d.ts +17 -2
- package/fontes/lexador/palavras-reservadas/foles.js +23 -2
- package/fontes/lexador/palavras-reservadas/foles.js.map +1 -1
- package/fontes/modificadores/altura-maxima.js +2 -3
- package/fontes/modificadores/altura-maxima.js.map +1 -1
- package/fontes/modificadores/altura-minima.js +2 -3
- package/fontes/modificadores/altura-minima.js.map +1 -1
- package/fontes/modificadores/altura.js +2 -4
- package/fontes/modificadores/altura.js.map +1 -1
- package/fontes/modificadores/grade.js +2 -2
- package/fontes/modificadores/grade.js.map +1 -1
- package/fontes/modificadores/largura-maxima.js +2 -4
- package/fontes/modificadores/largura-maxima.js.map +1 -1
- package/fontes/modificadores/largura-minima.js +2 -4
- package/fontes/modificadores/largura-minima.js.map +1 -1
- package/fontes/modificadores/largura.js +2 -4
- package/fontes/modificadores/largura.js.map +1 -1
- package/fontes/modificadores/tamanho-colunas-em-grade.js +2 -4
- package/fontes/modificadores/tamanho-colunas-em-grade.js.map +1 -1
- package/fontes/modificadores/tamanho-em-linha.js +2 -4
- package/fontes/modificadores/tamanho-em-linha.js.map +1 -1
- package/fontes/modificadores/tamanho-linhas-em-grade.js +2 -3
- package/fontes/modificadores/tamanho-linhas-em-grade.js.map +1 -1
- package/fontes/modificadores/tamanho-maximo-em-bloco.js +2 -4
- package/fontes/modificadores/tamanho-maximo-em-bloco.js.map +1 -1
- package/fontes/modificadores/tamanho-maximo-em-linha.js +2 -4
- package/fontes/modificadores/tamanho-maximo-em-linha.js.map +1 -1
- package/fontes/modificadores/tamanho-minimo-em-bloco.js +2 -4
- package/fontes/modificadores/tamanho-minimo-em-bloco.js.map +1 -1
- package/fontes/modificadores/tamanho-minimo-em-linha.js +2 -4
- package/fontes/modificadores/tamanho-minimo-em-linha.js.map +1 -1
- package/fontes/modificadores/tempo-transicao.d.ts +0 -3
- package/fontes/modificadores/tempo-transicao.js +2 -11
- package/fontes/modificadores/tempo-transicao.js.map +1 -1
- package/fontes/modificadores/transicao.js +2 -1
- package/fontes/modificadores/transicao.js.map +1 -1
- package/fontes/modificadores/validacoes/comum.d.ts +1 -1
- package/fontes/modificadores/validacoes/comum.js +23 -4
- package/fontes/modificadores/validacoes/comum.js.map +1 -1
- package/fontes/modificadores/validacoes/numerica.d.ts +1 -3
- package/fontes/modificadores/validacoes/numerica.js +9 -12
- package/fontes/modificadores/validacoes/numerica.js.map +1 -1
- package/fontes/modificadores/velocidade-animacao.d.ts +0 -3
- package/fontes/modificadores/velocidade-animacao.js +3 -21
- package/fontes/modificadores/velocidade-animacao.js.map +1 -1
- package/fontes/tradutor/tradutor.js +10 -0
- package/fontes/tradutor/tradutor.js.map +1 -1
- package/fontes/valores/dicionario-valores.js +18 -2
- package/fontes/valores/dicionario-valores.js.map +1 -1
- package/fontes/valores/metodos/curva-cubica.d.ts +11 -0
- package/fontes/valores/metodos/curva-cubica.js +19 -0
- package/fontes/valores/metodos/curva-cubica.js.map +1 -0
- package/fontes/valores/metodos/encaixar-conteudo.d.ts +8 -0
- package/fontes/valores/metodos/encaixar-conteudo.js +16 -0
- package/fontes/valores/metodos/encaixar-conteudo.js.map +1 -0
- package/fontes/valores/metodos/limitar.d.ts +12 -0
- package/fontes/valores/metodos/limitar.js +20 -0
- package/fontes/valores/metodos/limitar.js.map +1 -0
- package/fontes/valores/metodos/linear.d.ts +9 -0
- package/fontes/valores/metodos/linear.js +17 -0
- package/fontes/valores/metodos/linear.js.map +1 -0
- package/fontes/valores/metodos/minmax.d.ts +14 -0
- package/fontes/valores/metodos/minmax.js +30 -0
- package/fontes/valores/metodos/minmax.js.map +1 -0
- package/fontes/valores/metodos/passos.d.ts +16 -0
- package/fontes/valores/metodos/passos.js +34 -0
- package/fontes/valores/metodos/passos.js.map +1 -0
- package/fontes/valores/metodos/url.d.ts +6 -0
- package/fontes/valores/metodos/url.js +15 -0
- package/fontes/valores/metodos/url.js.map +1 -0
- package/package.json +1 -1
- package/testes/listas/metodos.d.ts +6 -0
- package/testes/listas/metodos.js +51 -0
- package/testes/listas/metodos.js.map +1 -0
- package/testes/modificadores/metodos.test.d.ts +1 -0
- package/testes/modificadores/metodos.test.js +214 -0
- package/testes/modificadores/metodos.test.js.map +1 -0
package/package.json
CHANGED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const MetodoEncaixarConteudo: Array<string>;
|
|
2
|
+
export declare const MetodoLimitar: Array<string>;
|
|
3
|
+
export declare const MetodoMinMax: Array<string>;
|
|
4
|
+
export declare const MetodoPassos: Array<string>;
|
|
5
|
+
export declare const MetodoCurvaCubica: Array<string>;
|
|
6
|
+
export declare const MetodoLinear: Array<string>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MetodoLinear = exports.MetodoCurvaCubica = exports.MetodoPassos = exports.MetodoMinMax = exports.MetodoLimitar = exports.MetodoEncaixarConteudo = void 0;
|
|
4
|
+
exports.MetodoEncaixarConteudo = [
|
|
5
|
+
'altura-maxima',
|
|
6
|
+
'altura-máxima',
|
|
7
|
+
'altura-minima',
|
|
8
|
+
'altura-mínima',
|
|
9
|
+
'altura',
|
|
10
|
+
'largura-maxima',
|
|
11
|
+
'largura-máxima',
|
|
12
|
+
'largura-minima',
|
|
13
|
+
'largura-mínima',
|
|
14
|
+
'largura',
|
|
15
|
+
'tamanho-colunas-em-grade',
|
|
16
|
+
'tamanho-em-linha',
|
|
17
|
+
'tamanho-linhas-em-grade',
|
|
18
|
+
'tamanho-maximo-em-bloco',
|
|
19
|
+
'tamanho-máximo-em-bloco',
|
|
20
|
+
'tamanho-maximo-em-linha',
|
|
21
|
+
'tamanho-máximo-em-linha',
|
|
22
|
+
'tamanho-mínimo-em-bloco',
|
|
23
|
+
'tamanho-mínimo-em-bloco',
|
|
24
|
+
'tamanho-minimo-em-linha',
|
|
25
|
+
'tamanho-mínimo-em-linha',
|
|
26
|
+
];
|
|
27
|
+
exports.MetodoLimitar = [
|
|
28
|
+
'altura',
|
|
29
|
+
];
|
|
30
|
+
exports.MetodoMinMax = [
|
|
31
|
+
'grade',
|
|
32
|
+
'tamanho-colunas-em-grade',
|
|
33
|
+
'tamanho-linhas-em-grade',
|
|
34
|
+
];
|
|
35
|
+
exports.MetodoPassos = [
|
|
36
|
+
'tempo-transicao',
|
|
37
|
+
'tempo-transição',
|
|
38
|
+
'velocidade-animacao',
|
|
39
|
+
'velocidade-animação',
|
|
40
|
+
];
|
|
41
|
+
exports.MetodoCurvaCubica = [
|
|
42
|
+
'tempo-transicao',
|
|
43
|
+
'tempo-transição',
|
|
44
|
+
'velocidade-animacao',
|
|
45
|
+
'velocidade-animação',
|
|
46
|
+
];
|
|
47
|
+
exports.MetodoLinear = [
|
|
48
|
+
'transicao',
|
|
49
|
+
'transição',
|
|
50
|
+
];
|
|
51
|
+
//# sourceMappingURL=metodos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metodos.js","sourceRoot":"","sources":["../../../testes/listas/metodos.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAkB;IACjD,eAAe;IACf,eAAe;IACf,eAAe;IACf,eAAe;IACf,QAAQ;IACR,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,0BAA0B;IAC1B,kBAAkB;IAClB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;IACzB,yBAAyB;CAC5B,CAAC;AAEW,QAAA,aAAa,GAAkB;IACxC,QAAQ;CACX,CAAC;AAEW,QAAA,YAAY,GAAkB;IACvC,OAAO;IACP,0BAA0B;IAC1B,yBAAyB;CAC5B,CAAC;AAEW,QAAA,YAAY,GAAkB;IACvC,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;CACxB,CAAC;AAEW,QAAA,iBAAiB,GAAkB;IAC5C,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;IACrB,qBAAqB;CACxB,CAAC;AAEW,QAAA,YAAY,GAAkB;IACvC,WAAW;IACX,WAAW;CACd,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,214 @@
|
|
|
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 metodos_1 = require("../listas/metodos");
|
|
12
|
+
describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
13
|
+
describe('Testes Unitários', () => {
|
|
14
|
+
let lexador;
|
|
15
|
+
let avaliador;
|
|
16
|
+
let tradutor;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
lexador = new lexador_1.Lexador();
|
|
19
|
+
avaliador = new avaliador_sintatico_1.AvaliadorSintatico();
|
|
20
|
+
tradutor = new tradutor_1.Tradutor();
|
|
21
|
+
});
|
|
22
|
+
it('Atribuindo Método "encaixar-conteúdo" (fit-content)', () => {
|
|
23
|
+
for (let index = 0; index < metodos_1.MetodoEncaixarConteudo.length; index += 1) {
|
|
24
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoEncaixarConteudo[index], 'fit-content(200px)');
|
|
25
|
+
// Lexador
|
|
26
|
+
const resultadoLexador = lexador.mapear([
|
|
27
|
+
"lmht {",
|
|
28
|
+
`${metodos_1.MetodoEncaixarConteudo[index]}: encaixar-conteúdo(200px);`,
|
|
29
|
+
"}"
|
|
30
|
+
]);
|
|
31
|
+
// O Lexador deve montar um objeto de comprimento 11 sem retornar nenhum erro
|
|
32
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
33
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
34
|
+
// O valor recebido deve ser mapeado como METODO
|
|
35
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
36
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
37
|
+
]));
|
|
38
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
39
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
40
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
41
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
42
|
+
]));
|
|
43
|
+
// Avaliador Sintático
|
|
44
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
45
|
+
// // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
46
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
47
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
48
|
+
// // // Tradutor
|
|
49
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
50
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
51
|
+
expect(resultadoTradutor).toContain('fit-content(200px)');
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
it('Atribuindo Método "limitar" (clamp)', () => {
|
|
55
|
+
for (let index = 0; index < metodos_1.MetodoLimitar.length; index += 1) {
|
|
56
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoLimitar[index], 'clamp(10vw, 20em, 100vw)');
|
|
57
|
+
// Lexador
|
|
58
|
+
const resultadoLexador = lexador.mapear([
|
|
59
|
+
"lmht {",
|
|
60
|
+
`${metodos_1.MetodoLimitar[index]}: limitar(10vw, 20em, 100vw);`,
|
|
61
|
+
"}"
|
|
62
|
+
]);
|
|
63
|
+
// O Lexador deve montar um objeto de comprimento 17 sem retornar nenhum erro
|
|
64
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
65
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
66
|
+
// O valor recebido deve ser mapeado como METODO
|
|
67
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
68
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
69
|
+
]));
|
|
70
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
71
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
72
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
73
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
74
|
+
]));
|
|
75
|
+
// Avaliador Sintático
|
|
76
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
77
|
+
// // // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
78
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
79
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
80
|
+
// // // // Tradutor
|
|
81
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
82
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
83
|
+
expect(resultadoTradutor).toContain('clamp(10vw, 20em, 100vw);');
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
it('Atribuindo Método "minmax()"', () => {
|
|
87
|
+
for (let index = 0; index < metodos_1.MetodoMinMax.length; index += 1) {
|
|
88
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoMinMax[index], 'minmax(100px, max-content)');
|
|
89
|
+
// Lexador
|
|
90
|
+
const resultadoLexador = lexador.mapear([
|
|
91
|
+
"lmht {",
|
|
92
|
+
`${metodos_1.MetodoMinMax[index]}: minmax(100px, conteúdo-máximo);`,
|
|
93
|
+
"}"
|
|
94
|
+
]);
|
|
95
|
+
// O Lexador deve montar um objeto de comprimento 13 sem retornar nenhum erro
|
|
96
|
+
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
97
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
98
|
+
// O valor recebido deve ser mapeado como METODO
|
|
99
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
100
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
101
|
+
]));
|
|
102
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
103
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
104
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
105
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
106
|
+
]));
|
|
107
|
+
// Avaliador Sintático
|
|
108
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
109
|
+
// // // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
110
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
111
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
112
|
+
// // // // Tradutor
|
|
113
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
114
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
115
|
+
expect(resultadoTradutor).toContain('minmax(100px, max-content);');
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
it('Atribuindo Método "passos" (steps)', () => {
|
|
119
|
+
for (let index = 0; index < metodos_1.MetodoPassos.length; index += 1) {
|
|
120
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoPassos[index], 'steps(2, jump-start)');
|
|
121
|
+
// Lexador
|
|
122
|
+
const resultadoLexador = lexador.mapear([
|
|
123
|
+
"lmht {",
|
|
124
|
+
`${metodos_1.MetodoPassos[index]}: passos(2, salto-inicial);`,
|
|
125
|
+
"}"
|
|
126
|
+
]);
|
|
127
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar nenhum erro
|
|
128
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
129
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
130
|
+
// O valor recebido deve ser mapeado como METODO
|
|
131
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
132
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
133
|
+
]));
|
|
134
|
+
// O Lexador também deve encontrar número e qualitativo no mapeamento
|
|
135
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
136
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
137
|
+
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
138
|
+
]));
|
|
139
|
+
// Avaliador Sintático
|
|
140
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
141
|
+
// // // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
142
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
143
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
144
|
+
// // // // Tradutor
|
|
145
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
146
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
147
|
+
expect(resultadoTradutor).toContain('steps(2, jump-start);');
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
it('Atribuindo Método "curva-cúbica" (cubic-bezier)', () => {
|
|
151
|
+
for (let index = 0; index < metodos_1.MetodoPassos.length; index += 1) {
|
|
152
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoPassos[index], 'cubic-bezier(0.42, 0.0, 1.0, 1.0)');
|
|
153
|
+
// Lexador
|
|
154
|
+
const resultadoLexador = lexador.mapear([
|
|
155
|
+
"lmht {",
|
|
156
|
+
`${metodos_1.MetodoPassos[index]}: curva-cúbica(0.42, 0.0, 1.0, 1.0);`,
|
|
157
|
+
"}"
|
|
158
|
+
]);
|
|
159
|
+
// O Lexador deve montar um objeto de comprimento 16 sem retornar nenhum erro
|
|
160
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
161
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
162
|
+
// O valor recebido deve ser mapeado como METODO
|
|
163
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
164
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
165
|
+
]));
|
|
166
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
167
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
168
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
169
|
+
]));
|
|
170
|
+
// Avaliador Sintático
|
|
171
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
172
|
+
// // // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
173
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
174
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
175
|
+
// // // // Tradutor
|
|
176
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
177
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
178
|
+
expect(resultadoTradutor).toContain('cubic-bezier(0.42, 0, 1, 1);');
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
it('Atribuindo Método "linear()"', () => {
|
|
182
|
+
for (let index = 0; index < metodos_1.MetodoLinear.length; index += 1) {
|
|
183
|
+
const seletor = new superclasse_1.SeletorModificador(metodos_1.MetodoLinear[index], 'linear(0, 0.25, 1)');
|
|
184
|
+
// Lexador
|
|
185
|
+
const resultadoLexador = lexador.mapear([
|
|
186
|
+
"lmht {",
|
|
187
|
+
`${metodos_1.MetodoLinear[index]}: linear(0, 0.25, 1);`,
|
|
188
|
+
"}"
|
|
189
|
+
]);
|
|
190
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
191
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
192
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
193
|
+
// O valor recebido deve ser mapeado como METODO
|
|
194
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
195
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
196
|
+
]));
|
|
197
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
198
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
199
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
200
|
+
]));
|
|
201
|
+
// Avaliador Sintático
|
|
202
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
203
|
+
// // // O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
204
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].nomeFoles).toStrictEqual(seletor['nomeFoles']);
|
|
205
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(seletor['propriedadeCss']);
|
|
206
|
+
// // // // Tradutor
|
|
207
|
+
const resultadoTradutor = tradutor.traduzir(resultadoAvaliadorSintatico);
|
|
208
|
+
expect(resultadoTradutor).toContain(seletor['propriedadeCss']);
|
|
209
|
+
expect(resultadoTradutor).toContain('linear(0, 0.25, 1);');
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
//# sourceMappingURL=metodos.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metodos.test.js","sourceRoot":"","sources":["../../../testes/modificadores/metodos.test.ts"],"names":[],"mappings":"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"}
|