@designliquido/foles
Version:
Linguagem de folhas de estilo para documentos em geral em português
59 lines • 2.58 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const lexador_1 = require("../fontes/lexador");
const foles_1 = __importDefault(require("../fontes/tipos-de-simbolos/foles"));
describe('Lexador', () => {
let lexador;
beforeEach(() => {
lexador = new lexador_1.Lexador();
});
it('Caso de sucesso - função mapear() monta objeto corretamente', () => {
const resultadoLexador = lexador.mapear([
"lmht {",
" tamanho-texto: 12px;",
"}"
]);
expect(resultadoLexador).toBeTruthy();
expect(resultadoLexador.simbolos).toHaveLength(8);
// Tipos devem estar mapeados
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
expect.objectContaining({ tipo: foles_1.default.ESTRUTURA }),
expect.objectContaining({ tipo: foles_1.default.CHAVE_ESQUERDA }),
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
expect.objectContaining({ tipo: foles_1.default.DOIS_PONTOS }),
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
expect.objectContaining({ tipo: foles_1.default.PONTO_E_VIRGULA }),
expect.objectContaining({ tipo: foles_1.default.CHAVE_DIREITA }),
]));
// Lexemas devem estar mapeados
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
expect.objectContaining({ lexema: '12' }),
expect.objectContaining({ lexema: 'px' }),
]));
});
it('Caso de falha - mapear() não recebe parâmetros corretos', () => {
const resultadoLexador = lexador.mapear([
"lmht {",
" tamanho-texto: px;",
"}"
]);
// Não deve mapear números
expect(resultadoLexador.simbolos).not.toEqual(expect.arrayContaining([
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
]));
const novoLexador = lexador.mapear([
"lmht {",
" tamanho-texto: 12;",
"}"
]);
// Não deve mapear quantificador
expect(novoLexador.simbolos).not.toEqual(expect.arrayContaining([
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
]));
});
});
//# sourceMappingURL=lexador.test.js.map