@balena/abstract-sql-compiler 10.2.3-build-renovate-major-22-node-d6c0f904df738bdfb51aa65395e2b146a26000e6-1 → 10.2.3-build-tests-0edb21cc4ee30ead2a6eeb290623f3a0adc7a0fe-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.versionbot/CHANGELOG.yml +21 -6
- package/CHANGELOG.md +4 -2
- package/package.json +3 -3
- package/test/abstract-sql/aggregate-json.ts +2 -13
- package/test/abstract-sql/aggregate.ts +14 -38
- package/test/abstract-sql/and-or-boolean-optimisations.ts +5 -16
- package/test/abstract-sql/{case-when-else.js → case-when-else.ts} +13 -22
- package/test/abstract-sql/cast.ts +3 -14
- package/test/abstract-sql/coalesce.ts +3 -14
- package/test/abstract-sql/comparisons.ts +14 -25
- package/test/abstract-sql/dates.ts +23 -37
- package/test/abstract-sql/duration.ts +3 -17
- package/test/abstract-sql/empty-query-optimisations.ts +4 -16
- package/test/abstract-sql/functions_wrapper.ts +3 -16
- package/test/abstract-sql/insert-query.ts +2 -13
- package/test/abstract-sql/is-distinct.ts +9 -23
- package/test/abstract-sql/joins.ts +3 -14
- package/test/abstract-sql/json.ts +4 -18
- package/test/abstract-sql/math.ts +28 -39
- package/test/abstract-sql/nested-in-optimisations.ts +5 -16
- package/test/abstract-sql/not-not-optimisations.ts +2 -13
- package/test/abstract-sql/test.ts +192 -0
- package/test/abstract-sql/text.ts +11 -22
- package/test/odata/test.js +19 -22
- package/test/abstract-sql/test.js +0 -92
@@ -1,15 +1,4 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
type TestCb = (
|
4
|
-
result: { query: string },
|
5
|
-
sqlEquals: (a: string, b: string) => void,
|
6
|
-
) => void;
|
7
|
-
import $test from './test';
|
8
|
-
const test = $test as (
|
9
|
-
query: AnyTypeNodes,
|
10
|
-
binds: any[][] | TestCb,
|
11
|
-
cb?: TestCb,
|
12
|
-
) => void;
|
1
|
+
import test from './test';
|
13
2
|
|
14
3
|
describe('Year', () => {
|
15
4
|
test(
|
@@ -17,7 +6,7 @@ describe('Year', () => {
|
|
17
6
|
[['Date', '2022-10-10']],
|
18
7
|
(result, sqlEquals) => {
|
19
8
|
it('should produce a valid Year statement', () => {
|
20
|
-
sqlEquals(result
|
9
|
+
sqlEquals(result, `SELECT EXTRACT('YEAR' FROM $1)`);
|
21
10
|
});
|
22
11
|
},
|
23
12
|
);
|
@@ -29,7 +18,7 @@ describe('Month', () => {
|
|
29
18
|
[['Date', '2022-10-10']],
|
30
19
|
(result, sqlEquals) => {
|
31
20
|
it('should produce a valid Month statement', () => {
|
32
|
-
sqlEquals(result
|
21
|
+
sqlEquals(result, `SELECT EXTRACT('MONTH' FROM $1)`);
|
33
22
|
});
|
34
23
|
},
|
35
24
|
);
|
@@ -41,7 +30,7 @@ describe('Day', () => {
|
|
41
30
|
[['Date', '2022-10-10']],
|
42
31
|
(result, sqlEquals) => {
|
43
32
|
it('should produce a valid Day statement', () => {
|
44
|
-
sqlEquals(result
|
33
|
+
sqlEquals(result, `SELECT EXTRACT('DAY' FROM $1)`);
|
45
34
|
});
|
46
35
|
},
|
47
36
|
);
|
@@ -56,7 +45,7 @@ describe('Hour', () => {
|
|
56
45
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
57
46
|
(result, sqlEquals) => {
|
58
47
|
it('should produce a valid Hour statement', () => {
|
59
|
-
sqlEquals(result
|
48
|
+
sqlEquals(result, `SELECT EXTRACT('HOUR' FROM $1)`);
|
60
49
|
});
|
61
50
|
},
|
62
51
|
);
|
@@ -71,7 +60,7 @@ describe('Minute', () => {
|
|
71
60
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
72
61
|
(result, sqlEquals) => {
|
73
62
|
it('should produce a valid Minute statement', () => {
|
74
|
-
sqlEquals(result
|
63
|
+
sqlEquals(result, `SELECT EXTRACT('MINUTE' FROM $1)`);
|
75
64
|
});
|
76
65
|
},
|
77
66
|
);
|
@@ -86,7 +75,7 @@ describe('Second', () => {
|
|
86
75
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
87
76
|
(result, sqlEquals) => {
|
88
77
|
it('should produce a valid extract second statement', () => {
|
89
|
-
sqlEquals(result
|
78
|
+
sqlEquals(result, `SELECT FLOOR(EXTRACT('SECOND' FROM $1))`);
|
90
79
|
});
|
91
80
|
},
|
92
81
|
);
|
@@ -102,7 +91,7 @@ describe('Fractionalseconds', () => {
|
|
102
91
|
(result, sqlEquals) => {
|
103
92
|
it('should produce a valid extract Fractionalseconds statement', () => {
|
104
93
|
sqlEquals(
|
105
|
-
result
|
94
|
+
result,
|
106
95
|
`SELECT EXTRACT('SECOND' FROM $1) - FLOOR(EXTRACT('SECOND' FROM $1))`,
|
107
96
|
);
|
108
97
|
});
|
@@ -116,7 +105,7 @@ describe('ToDate', () => {
|
|
116
105
|
[['Date', '2022-10-10']],
|
117
106
|
(result, sqlEquals) => {
|
118
107
|
it('should produce a valid ToDate statement', () => {
|
119
|
-
sqlEquals(result
|
108
|
+
sqlEquals(result, `SELECT DATE($1)`);
|
120
109
|
});
|
121
110
|
},
|
122
111
|
);
|
@@ -134,7 +123,7 @@ describe('DateTrunc', () => {
|
|
134
123
|
[['Date', '2022-10-10']],
|
135
124
|
(result, sqlEquals) => {
|
136
125
|
it('should produce a valid DateTrunc statement', () => {
|
137
|
-
sqlEquals(result
|
126
|
+
sqlEquals(result, `SELECT DATE_TRUNC('year', $1)`);
|
138
127
|
});
|
139
128
|
},
|
140
129
|
);
|
@@ -149,7 +138,7 @@ describe('ToTime', () => {
|
|
149
138
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
150
139
|
(result, sqlEquals) => {
|
151
140
|
it('should produce a valid ToTime statement', () => {
|
152
|
-
sqlEquals(result
|
141
|
+
sqlEquals(result, `SELECT CAST($1 AS TIME)`);
|
153
142
|
});
|
154
143
|
},
|
155
144
|
);
|
@@ -178,7 +167,7 @@ describe('AddDateDuration', () => {
|
|
178
167
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
179
168
|
(result, sqlEquals) => {
|
180
169
|
it('should produce a valid Date addition statement', () => {
|
181
|
-
sqlEquals(result
|
170
|
+
sqlEquals(result, `SELECT $1 + INTERVAL '1 0:0:0.0'`);
|
182
171
|
});
|
183
172
|
},
|
184
173
|
);
|
@@ -215,7 +204,7 @@ describe('AddDateDuration', () => {
|
|
215
204
|
(result, sqlEquals) => {
|
216
205
|
it('should produce a valid Date addition statement when the first operand returns a Date node', () => {
|
217
206
|
sqlEquals(
|
218
|
-
result
|
207
|
+
result,
|
219
208
|
`SELECT ($1 + INTERVAL '1 0:0:0.0') + INTERVAL '2 0:0:0.0'`,
|
220
209
|
);
|
221
210
|
});
|
@@ -241,7 +230,7 @@ describe('AddDateNumber', () => {
|
|
241
230
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
242
231
|
(result, sqlEquals) => {
|
243
232
|
it('should produce a valid Date addition statement', () => {
|
244
|
-
sqlEquals(result
|
233
|
+
sqlEquals(result, `SELECT $1 + 10`);
|
245
234
|
});
|
246
235
|
},
|
247
236
|
);
|
@@ -263,7 +252,7 @@ describe('AddDateNumber', () => {
|
|
263
252
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
264
253
|
(result, sqlEquals) => {
|
265
254
|
it('should produce a valid Date addition statement when the second operand is a math operation', () => {
|
266
|
-
sqlEquals(result
|
255
|
+
sqlEquals(result, `SELECT $1 + (4 - 5)`);
|
267
256
|
});
|
268
257
|
},
|
269
258
|
);
|
@@ -287,7 +276,7 @@ describe('SubtractDateNumber', () => {
|
|
287
276
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
288
277
|
(result, sqlEquals) => {
|
289
278
|
it('should produce a valid Date subtraction statement', () => {
|
290
|
-
sqlEquals(result
|
279
|
+
sqlEquals(result, `SELECT $1 - 10`);
|
291
280
|
});
|
292
281
|
},
|
293
282
|
);
|
@@ -309,7 +298,7 @@ describe('SubtractDateNumber', () => {
|
|
309
298
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
310
299
|
(result, sqlEquals) => {
|
311
300
|
it('should produce a valid Date subtraction statement when the second operand is a math operation', () => {
|
312
|
-
sqlEquals(result
|
301
|
+
sqlEquals(result, `SELECT $1 - (4 - 5)`);
|
313
302
|
});
|
314
303
|
},
|
315
304
|
);
|
@@ -335,7 +324,7 @@ describe('SubtractDateNumber', () => {
|
|
335
324
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
336
325
|
(result, sqlEquals) => {
|
337
326
|
it('should produce a valid Date subtraction statement when first operand returns a Date and the second operand is a math operation', () => {
|
338
|
-
sqlEquals(result
|
327
|
+
sqlEquals(result, `SELECT ($1 + 1) - (4 - 5)`);
|
339
328
|
});
|
340
329
|
},
|
341
330
|
);
|
@@ -352,10 +341,7 @@ describe('SubtractDateDate', () => {
|
|
352
341
|
],
|
353
342
|
(result, sqlEquals) => {
|
354
343
|
it('should produce a valid multiplication statement when the first operand is a SubtractDateDate operation and the second a number', () => {
|
355
|
-
sqlEquals(
|
356
|
-
result.query,
|
357
|
-
`SELECT (CURRENT_TIMESTAMP - CURRENT_TIMESTAMP) * 4`,
|
358
|
-
);
|
344
|
+
sqlEquals(result, `SELECT (CURRENT_TIMESTAMP - CURRENT_TIMESTAMP) * 4`);
|
359
345
|
});
|
360
346
|
},
|
361
347
|
);
|
@@ -377,7 +363,7 @@ describe('SubtractDateDate', () => {
|
|
377
363
|
(result, sqlEquals) => {
|
378
364
|
it('should produce a valid multiplication statement when the first operand is a SubtractDateDate operation and the second a math subtraction', () => {
|
379
365
|
sqlEquals(
|
380
|
-
result
|
366
|
+
result,
|
381
367
|
`SELECT (CURRENT_TIMESTAMP - CURRENT_TIMESTAMP) * (4 - 5)`,
|
382
368
|
);
|
383
369
|
});
|
@@ -420,7 +406,7 @@ describe('SubtractDateDate', () => {
|
|
420
406
|
(result, sqlEquals) => {
|
421
407
|
it('should produce a valid SubtractDateDate operation when the operands return a Date node', () => {
|
422
408
|
sqlEquals(
|
423
|
-
result
|
409
|
+
result,
|
424
410
|
`SELECT (CURRENT_TIMESTAMP + INTERVAL '1 0:0:0.0') - ($1 + INTERVAL '2 0:0:0.0')`,
|
425
411
|
);
|
426
412
|
});
|
@@ -451,7 +437,7 @@ describe('SubtractDateDuration', () => {
|
|
451
437
|
[['Date', '2022-10-10T10:10:10.000Z']],
|
452
438
|
(result, sqlEquals) => {
|
453
439
|
it('should produce a valid Date subtraction statement', () => {
|
454
|
-
sqlEquals(result
|
440
|
+
sqlEquals(result, `SELECT $1 - INTERVAL '1 0:0:0.0'`);
|
455
441
|
});
|
456
442
|
},
|
457
443
|
);
|
@@ -488,7 +474,7 @@ describe('SubtractDateDuration', () => {
|
|
488
474
|
(result, sqlEquals) => {
|
489
475
|
it('should produce a valid Date subtraction statement when the first operand returns a Date node', () => {
|
490
476
|
sqlEquals(
|
491
|
-
result
|
477
|
+
result,
|
492
478
|
`SELECT ($1 + INTERVAL '1 0:0:0.0') - INTERVAL '2 0:0:0.0'`,
|
493
479
|
);
|
494
480
|
});
|
@@ -1,15 +1,4 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
type TestCb = (
|
4
|
-
result: { query: string },
|
5
|
-
sqlEquals: (a: string, b: string) => void,
|
6
|
-
) => void;
|
7
|
-
import $test from './test';
|
8
|
-
const test = $test as (
|
9
|
-
query: AnyTypeNodes,
|
10
|
-
binds: any[][] | TestCb,
|
11
|
-
cb?: TestCb,
|
12
|
-
) => void;
|
1
|
+
import test from './test';
|
13
2
|
|
14
3
|
describe('Totalseconds', () => {
|
15
4
|
test(
|
@@ -32,10 +21,7 @@ describe('Totalseconds', () => {
|
|
32
21
|
],
|
33
22
|
(result, sqlEquals) => {
|
34
23
|
it('should produce a valid Totalseconds statement', () => {
|
35
|
-
sqlEquals(
|
36
|
-
result.query,
|
37
|
-
`SELECT EXTRACT(EPOCH FROM INTERVAL '1 0:0:0.0')`,
|
38
|
-
);
|
24
|
+
sqlEquals(result, `SELECT EXTRACT(EPOCH FROM INTERVAL '1 0:0:0.0')`);
|
39
25
|
});
|
40
26
|
},
|
41
27
|
);
|
@@ -63,7 +49,7 @@ describe('Duration', () => {
|
|
63
49
|
],
|
64
50
|
(result, sqlEquals) => {
|
65
51
|
it('should produce a valid Duration statement', () => {
|
66
|
-
sqlEquals(result
|
52
|
+
sqlEquals(result, `SELECT INTERVAL '1 2:3:4.0'`);
|
67
53
|
});
|
68
54
|
},
|
69
55
|
);
|
@@ -1,19 +1,7 @@
|
|
1
1
|
import { stripIndent } from 'common-tags';
|
2
|
-
import type {
|
3
|
-
AnyTypeNodes,
|
4
|
-
SelectQueryNode,
|
5
|
-
} from '../../src/AbstractSQLCompiler';
|
2
|
+
import type { SelectQueryNode } from '../../src/AbstractSQLCompiler';
|
6
3
|
|
7
|
-
|
8
|
-
result: { query: string },
|
9
|
-
sqlEquals: (a: string, b: string) => void,
|
10
|
-
) => void;
|
11
|
-
import $test from './test';
|
12
|
-
const test = $test as (
|
13
|
-
query: AnyTypeNodes,
|
14
|
-
binds: any[][] | TestCb,
|
15
|
-
cb?: TestCb,
|
16
|
-
) => void;
|
4
|
+
import test from './test';
|
17
5
|
|
18
6
|
describe('Empty queries should be optimized', () => {
|
19
7
|
const emptyQuery: SelectQueryNode = [
|
@@ -32,7 +20,7 @@ describe('Empty queries should be optimized', () => {
|
|
32
20
|
(result, sqlEquals) => {
|
33
21
|
it('should simplify `EXISTS($emptyQuery)` to `false`', () => {
|
34
22
|
sqlEquals(
|
35
|
-
result
|
23
|
+
result,
|
36
24
|
stripIndent`
|
37
25
|
SELECT 1
|
38
26
|
FROM "table"
|
@@ -53,7 +41,7 @@ describe('Empty queries should be optimized', () => {
|
|
53
41
|
(result, sqlEquals) => {
|
54
42
|
it('should simplify `NOT EXISTS($emptyQuery)` to `true`', () => {
|
55
43
|
sqlEquals(
|
56
|
-
result
|
44
|
+
result,
|
57
45
|
stripIndent`
|
58
46
|
SELECT 1
|
59
47
|
FROM "table"
|
@@ -1,18 +1,5 @@
|
|
1
1
|
import { stripIndent } from 'common-tags';
|
2
|
-
import
|
3
|
-
|
4
|
-
type TestCb = (
|
5
|
-
result: { query: string },
|
6
|
-
sqlEquals: (a: string, b: string) => void,
|
7
|
-
) => void;
|
8
|
-
import $test from './test';
|
9
|
-
const test = $test as ((
|
10
|
-
query: AnyTypeNodes,
|
11
|
-
binds: any[][] | TestCb,
|
12
|
-
cb?: TestCb,
|
13
|
-
) => void) & {
|
14
|
-
mysql: (query: AnyTypeNodes, binds: any[][] | TestCb, cb?: TestCb) => void;
|
15
|
-
};
|
2
|
+
import test from './test';
|
16
3
|
|
17
4
|
describe('Date trunc function on ReferencedField for milliseconds', () => {
|
18
5
|
test(
|
@@ -37,7 +24,7 @@ describe('Date trunc function on ReferencedField for milliseconds', () => {
|
|
37
24
|
(result, sqlEquals) => {
|
38
25
|
it('Generate a postgresql DATE_TRUNC query for referenced field with milliseconds resoluton and binding', () => {
|
39
26
|
sqlEquals(
|
40
|
-
result
|
27
|
+
result,
|
41
28
|
stripIndent`
|
42
29
|
SELECT 1
|
43
30
|
FROM "table"
|
@@ -70,7 +57,7 @@ describe('Date trunc function on ReferencedField for milliseconds', () => {
|
|
70
57
|
(result, sqlEquals) => {
|
71
58
|
it('Ignore DATE_TRUNC in mysql query for referenced field with milliseconds resoluton and binding', () => {
|
72
59
|
sqlEquals(
|
73
|
-
result
|
60
|
+
result,
|
74
61
|
stripIndent`
|
75
62
|
SELECT 1
|
76
63
|
FROM "table"
|
@@ -1,15 +1,4 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
type TestCb = (
|
4
|
-
result: { query: string },
|
5
|
-
sqlEquals: (a: string, b: string) => void,
|
6
|
-
) => void;
|
7
|
-
import $test from './test';
|
8
|
-
const test = $test as (
|
9
|
-
query: AnyTypeNodes,
|
10
|
-
binds: any[][] | TestCb,
|
11
|
-
cb?: TestCb,
|
12
|
-
) => void;
|
1
|
+
import test from './test';
|
13
2
|
|
14
3
|
describe('Insert boolean value', () => {
|
15
4
|
test(
|
@@ -22,7 +11,7 @@ describe('Insert boolean value', () => {
|
|
22
11
|
(result, sqlEquals) => {
|
23
12
|
it('should produce a valid insert boolean statement', () => {
|
24
13
|
sqlEquals(
|
25
|
-
result
|
14
|
+
result,
|
26
15
|
`\
|
27
16
|
INSERT INTO "test" ("foo")
|
28
17
|
VALUES (TRUE)`,
|
@@ -1,15 +1,4 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
type TestCb = (
|
4
|
-
result: { query: string },
|
5
|
-
sqlEquals: (a: string, b: string) => void,
|
6
|
-
) => void;
|
7
|
-
import $test from './test';
|
8
|
-
const test = $test as (
|
9
|
-
query: AnyTypeNodes,
|
10
|
-
binds: any[][] | TestCb,
|
11
|
-
cb?: TestCb,
|
12
|
-
) => void;
|
1
|
+
import test from './test';
|
13
2
|
|
14
3
|
describe('IsDistinctFrom', () => {
|
15
4
|
test(
|
@@ -20,7 +9,7 @@ describe('IsDistinctFrom', () => {
|
|
20
9
|
(result, sqlEquals) => {
|
21
10
|
it('should produce a valid is distinct from statement', () => {
|
22
11
|
sqlEquals(
|
23
|
-
result
|
12
|
+
result,
|
24
13
|
'SELECT NOT(("a") IS NOT NULL AND ("b") IS NOT NULL AND ("a") = ("b") OR ("a") IS NULL AND ("b") IS NULL)',
|
25
14
|
);
|
26
15
|
});
|
@@ -33,7 +22,7 @@ describe('IsDistinctFrom', () => {
|
|
33
22
|
],
|
34
23
|
(result, sqlEquals) => {
|
35
24
|
it('should optimize down to a !=', () => {
|
36
|
-
sqlEquals(result
|
25
|
+
sqlEquals(result, 'SELECT 1 != 2');
|
37
26
|
});
|
38
27
|
},
|
39
28
|
);
|
@@ -45,10 +34,7 @@ describe('IsDistinctFrom', () => {
|
|
45
34
|
[['Text', '2']],
|
46
35
|
(result, sqlEquals) => {
|
47
36
|
it('should produce a valid is distinct from statement', () => {
|
48
|
-
sqlEquals(
|
49
|
-
result.query,
|
50
|
-
'SELECT NOT(("a") IS NOT NULL AND ("a") = ($1))',
|
51
|
-
);
|
37
|
+
sqlEquals(result, 'SELECT NOT(("a") IS NOT NULL AND ("a") = ($1))');
|
52
38
|
});
|
53
39
|
},
|
54
40
|
);
|
@@ -57,7 +43,7 @@ describe('IsDistinctFrom', () => {
|
|
57
43
|
['SelectQuery', ['Select', [['IsDistinctFrom', ['Field', 'a'], ['Null']]]]],
|
58
44
|
(result, sqlEquals) => {
|
59
45
|
it('should produce an is not null statement', () => {
|
60
|
-
sqlEquals(result
|
46
|
+
sqlEquals(result, 'SELECT "a" IS NOT NULL');
|
61
47
|
});
|
62
48
|
},
|
63
49
|
);
|
@@ -72,7 +58,7 @@ describe('IsNotDistinctFrom', () => {
|
|
72
58
|
(result, sqlEquals) => {
|
73
59
|
it('should produce a valid is not distinct from statement', () => {
|
74
60
|
sqlEquals(
|
75
|
-
result
|
61
|
+
result,
|
76
62
|
'SELECT ("a") IS NOT NULL AND ("b") IS NOT NULL AND ("a") = ("b") OR ("a") IS NULL AND ("b") IS NULL',
|
77
63
|
);
|
78
64
|
});
|
@@ -85,7 +71,7 @@ describe('IsNotDistinctFrom', () => {
|
|
85
71
|
],
|
86
72
|
(result, sqlEquals) => {
|
87
73
|
it('should optimize down to an =', () => {
|
88
|
-
sqlEquals(result
|
74
|
+
sqlEquals(result, 'SELECT 1 = 2');
|
89
75
|
});
|
90
76
|
},
|
91
77
|
);
|
@@ -97,7 +83,7 @@ describe('IsNotDistinctFrom', () => {
|
|
97
83
|
[['Text', '2']],
|
98
84
|
(result, sqlEquals) => {
|
99
85
|
it('should produce a valid is not distinct from statement', () => {
|
100
|
-
sqlEquals(result
|
86
|
+
sqlEquals(result, 'SELECT ("a") IS NOT NULL AND ("a") = ($1)');
|
101
87
|
});
|
102
88
|
},
|
103
89
|
);
|
@@ -109,7 +95,7 @@ describe('IsNotDistinctFrom', () => {
|
|
109
95
|
],
|
110
96
|
(result, sqlEquals) => {
|
111
97
|
it('should produce a valid is not distinct from statement', () => {
|
112
|
-
sqlEquals(result
|
98
|
+
sqlEquals(result, 'SELECT "a" IS NULL');
|
113
99
|
});
|
114
100
|
},
|
115
101
|
);
|
@@ -1,16 +1,5 @@
|
|
1
1
|
import { stripIndent } from 'common-tags';
|
2
|
-
import
|
3
|
-
|
4
|
-
type TestCb = (
|
5
|
-
result: { query: string },
|
6
|
-
sqlEquals: (a: string, b: string) => void,
|
7
|
-
) => void;
|
8
|
-
import $test from './test';
|
9
|
-
const test = $test as (
|
10
|
-
query: AnyTypeNodes,
|
11
|
-
binds: any[][] | TestCb,
|
12
|
-
cb?: TestCb,
|
13
|
-
) => void;
|
2
|
+
import test from './test';
|
14
3
|
|
15
4
|
const joinTest = (
|
16
5
|
joinType: 'Join' | 'RightJoin' | 'LeftJoin' | 'FullJoin',
|
@@ -44,7 +33,7 @@ const joinTest = (
|
|
44
33
|
(result, sqlEquals) => {
|
45
34
|
it('should produce a valid join statement', () => {
|
46
35
|
sqlEquals(
|
47
|
-
result
|
36
|
+
result,
|
48
37
|
stripIndent`
|
49
38
|
SELECT "table"."field1", "table2"."field2"
|
50
39
|
FROM "table"
|
@@ -82,7 +71,7 @@ describe('CrossJoin', () => {
|
|
82
71
|
(result, sqlEquals) => {
|
83
72
|
it('should produce a valid join statement', () => {
|
84
73
|
sqlEquals(
|
85
|
-
result
|
74
|
+
result,
|
86
75
|
stripIndent`
|
87
76
|
SELECT "table"."field1", "table2"."field2"
|
88
77
|
FROM "table"
|
@@ -1,15 +1,4 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
type TestCb = (
|
4
|
-
result: { query: string },
|
5
|
-
sqlEquals: (a: string, b: string) => void,
|
6
|
-
) => void;
|
7
|
-
import $test from './test';
|
8
|
-
const test = $test as (
|
9
|
-
query: AnyTypeNodes,
|
10
|
-
binds: any[][] | TestCb,
|
11
|
-
cb?: TestCb,
|
12
|
-
) => void;
|
1
|
+
import test from './test';
|
13
2
|
|
14
3
|
describe('ExtractJSONPathAsText', () => {
|
15
4
|
test(
|
@@ -28,10 +17,7 @@ describe('ExtractJSONPathAsText', () => {
|
|
28
17
|
],
|
29
18
|
(result, sqlEquals) => {
|
30
19
|
it('should produce a valid select with given empty text array', () => {
|
31
|
-
sqlEquals(
|
32
|
-
result.query,
|
33
|
-
`SELECT "foo"."bar" #>> CAST(ARRAY[] as TEXT[])`,
|
34
|
-
);
|
20
|
+
sqlEquals(result, `SELECT "foo"."bar" #>> CAST(ARRAY[] as TEXT[])`);
|
35
21
|
});
|
36
22
|
},
|
37
23
|
);
|
@@ -51,7 +37,7 @@ describe('ExtractJSONPathAsText', () => {
|
|
51
37
|
],
|
52
38
|
(result, sqlEquals) => {
|
53
39
|
it('should produce a valid select with given populated text array', () => {
|
54
|
-
sqlEquals(result
|
40
|
+
sqlEquals(result, `SELECT "foo"."bar" #>> ARRAY['buz', 'baz']`);
|
55
41
|
});
|
56
42
|
},
|
57
43
|
);
|
@@ -65,7 +51,7 @@ describe('ToJSON', () => {
|
|
65
51
|
],
|
66
52
|
(result, sqlEquals) => {
|
67
53
|
it('should produce a valid to_json select statement', () => {
|
68
|
-
sqlEquals(result
|
54
|
+
sqlEquals(result, 'SELECT TO_JSON("foo"."bar")');
|
69
55
|
});
|
70
56
|
},
|
71
57
|
);
|