UNPKG

@designliquido/lincones-mysql

Version:
83 lines 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const lexador_1 = require("../fontes/lexador"); describe('Lexador SQL ANSI', () => { let lexador; beforeEach(() => { lexador = new lexador_1.LexadorSqlAnsi(); }); describe('mapear()', () => { describe('Cenário de sucesso', () => { it('Sucesso com código vazio', () => { const codigo = ['']; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(0); }); it('Sucesso com código com apenas espaços', () => { const codigo = [' ']; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(0); }); it('Sucesso com código repetindo instruções', () => { const codigo = [ '((((((((((((((((((((((((((', ')))))))))))))))))))))))))', 'CREATE CREATE CREATE CREATE CREATE CREATE' ]; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(57); }); it('CREATE TABLE', () => { const codigo = ['CREATE TABLE usuarios']; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(3); }); it('UPDATE', () => { const codigo = ['UPDATE usuarios']; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(2); }); describe('Casos concretos', () => { it('CREATE TABLE Clientes', () => { const codigo = [ 'CREATE TABLE clientes(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, nome VARCHAR(100) NOT NULL, idade INTEIRO NAO NULO, email VARCHAR(255) NOT NULL, ativo BOOLEAN NOT NULL)' ]; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(38); }); it('CRUD', () => { const codigo = [ 'INSERT INTO clientes VALUES(1, "João", 20, "joao@gmail.com", TRUE)', 'INSERT INTO clientes VALUES(2, "Carlos", 23, "carlos@gmail.com", TRUE)', 'INSERT INTO clientes VALUES(3, "Thiago", 40, "thiago@gmail.com", TRUE)', 'INSERT INTO clientes VALUES(4, "Jose", 44, "jose@gmail.com", TRUE)' ]; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(60); }); it('Selecionar', () => { const codigo = ['SELECT * FROM clientes']; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(4); }); it('Criar Tabela Clientes', () => { const codigo = [ 'CREATE TABLE clientes(id INTEGER NOT NULL PRIMARY KEY, nome VARCHAR(100) NOT NULL, idade INTEGER NOT NULL, email VARCHAR(255) NOT NULL, ativo BOOLEAN NOT NULL);' ]; const resultado = lexador.mapear(codigo); expect(resultado).toBeTruthy(); expect(resultado.simbolos).toHaveLength(38); }); }); }); }); }); //# sourceMappingURL=lexador-sql-ansi.test.js.map