import FlinkSQL from "../../../../src/parser/flinksql"; import { readSQL } from "../../../helper"; const parser = new FlinkSQL(); const features = { base: readSQL(__dirname, "select.sql"), withClause: readSQL(__dirname, "selectWithClause.sql"), distinct: readSQL(__dirname, "selectDistinct.sql"), windowTVF: readSQL(__dirname, "selectWindowTVF.sql"), aggregation: readSQL(__dirname, "selectAggregation.sql"), join: readSQL(__dirname, "selectJoin.sql"), setOperation: readSQL(__dirname, "selectSetOperations.sql"), pattern: readSQL(__dirname, "selectPatternRecognition.sql") }; describe("FlinkSQL Query Statement Tests", () => { describe("Base Select", () => { features.base.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }); }); describe("With Clause Select", () => { features.withClause.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }); }); describe("Select DISTINCT", () => { features.distinct.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) describe("Select Window TVF", () => { features.windowTVF.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) describe("Select Aggregation", () => { features.aggregation.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) describe("Select Join", () => { features.join.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) describe("Select Set Operations", () => { features.setOperation.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) describe("Select Pattern Recognition", () => { features.pattern.forEach((sql) => { it(sql, () => { expect(parser.validate(sql).length).toBe(0); }); }) }) });