@@ -104,3 +104,38 @@ describe('ImpalaSQL validate invalid sql and test msg', () => {
104104 expect ( errors [ 0 ] . message ) . toBe ( `'<' 在此位置无效,期望一个存在的column或者一个关键字` ) ;
105105 } ) ;
106106} ) ;
107+
108+ describe ( 'ImpalaSQL validate multiple erroneous statements' , ( ) => {
109+ const impala = new ImpalaSQL ( ) ;
110+
111+ test ( 'validate multiple erroneous statements' , ( ) => {
112+ const sql = `SELEC * from table1; SELECT * form table2;` ;
113+ const errors = impala . validate ( sql ) ;
114+ expect ( errors . length ) . toBe ( 2 ) ;
115+ } ) ;
116+
117+ test ( 'validate valid + erroneous statements' , ( ) => {
118+ const sql = `SELECT * from table1; SELEC * from table2;` ;
119+ const errors = impala . validate ( sql ) ;
120+ expect ( errors . length ) . toBe ( 1 ) ;
121+ } ) ;
122+
123+ test ( 'validate erroneous + valid statements' , ( ) => {
124+ const sql = `SELEC * from table1; SELECT * from table2;` ;
125+ const errors = impala . validate ( sql ) ;
126+ expect ( errors . length ) . toBe ( 1 ) ;
127+ } ) ;
128+
129+ test ( 'validate multiple valid statements' , ( ) => {
130+ const sql = `SELECT * from table1; SELECT * from table2;` ;
131+ const errors = impala . validate ( sql ) ;
132+ expect ( errors . length ) . toBe ( 0 ) ;
133+ } ) ;
134+
135+ test ( 'validate multiline erroneous statement reports correct line' , ( ) => {
136+ const sql = `SELECT * from table1;\nSELEC *\n from table2;` ;
137+ const errors = impala . validate ( sql ) ;
138+ expect ( errors . length ) . toBe ( 1 ) ;
139+ expect ( errors [ 0 ] . startLine ) . toBe ( 2 ) ;
140+ } ) ;
141+ } ) ;
0 commit comments