UNPKG

@designliquido/foles

Version:

Linguagem de folhas de estilo para documentos em geral em português

59 lines 2.58 kB
"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