Added tests - restore target es6 - transpile base into es5

This commit is contained in:
Salvatore Ravidà
2022-12-15 20:26:34 +01:00
committed by Ziv
parent f79202a5b7
commit ea0f061ff9
14 changed files with 411 additions and 113 deletions

View File

@ -0,0 +1,12 @@
import { PostgresSQL } from '../../../src/';
describe('PostgresSQL Lexer tests', () => {
const mysqlParser = new PostgresSQL();
const sql = 'select id,name,sex from user1;';
const tokens = mysqlParser.getAllTokens(sql);
test('token counts', () => {
expect(tokens.length).toBe(12);
});
});

View File

@ -0,0 +1,25 @@
import { PostgresSQL, PostgreSQLParserListener } from '../../../src';
describe('PostgresSQL Listener Tests', () => {
const expectTableName = 'user1';
const sql = `select id,name,sex from ${expectTableName};`;
const parser = new PostgresSQL();
const parserTree = parser.parse(sql);
console.log('Parser tree string:', parserTree);
test('Listener enterTableName', async () => {
let result = '';
class MyListener extends PostgreSQLParserListener {
// eslint-disable-next-line camelcase
enterTable_ref(ctx): void {
result = ctx.getText().toLowerCase();
}
}
const listenTableName: any = new MyListener();
await parser.listen(listenTableName, parserTree);
expect(result).toBe(expectTableName);
});
});

View File

@ -0,0 +1,18 @@
import { PostgresSQL } from '../../../src';
describe('Generic SQL Syntax Tests', () => {
const parser = new PostgresSQL();
test('Select Statement', () => {
const sql = 'select id,name from user1;';
const result = parser.validate(sql);
expect(result.length).toBe(0);
});
test('Select 1+1', () => {
const sql = 'SELECT 1+1;';
const result = parser.validate(sql);
expect(result.length).toBe(0);
});
});

View File

@ -0,0 +1,26 @@
import { PostgresSQL, PostgreSQLParserVisitor } from '../../../src';
describe('Generic SQL Visitor Tests', () => {
const expectTableName = 'user1';
const sql = `select id,name,sex from ${expectTableName};`;
const parser = new PostgresSQL();
const parserTree = parser.parse(sql, (error) => {
console.log('Parse error:', error);
});
test('Visitor visitTableName', () => {
let result = '';
class MyVisitor extends PostgreSQLParserVisitor {
// eslint-disable-next-line camelcase
visitTable_ref(ctx): void {
result = ctx.getText().toLowerCase();
super.visitTable_ref(ctx);
}
}
const visitor: any = new MyVisitor();
visitor.visit(parserTree);
expect(result).toBe(expectTableName);
});
});