@devrev/meerkat-node 0.0.93 → 0.0.94

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.
@@ -93,685 +93,726 @@ const TABLE_SCHEMA = {
93
93
  ]
94
94
  };
95
95
  const TEST_DATA = [
96
- {
97
- testName: 'GroupBySQLInnerQuery',
98
- expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__order_month FROM (SELECT *, DATE_TRUNC('month', order_date) AS orders__order_month FROM (select * from orders) AS orders) AS orders GROUP BY orders__order_month LIMIT 1`,
99
- cubeInput: {
100
- measures: [
101
- 'orders.total_order_amount'
102
- ],
103
- filters: [],
104
- dimensions: [
105
- 'orders.order_month'
106
- ],
107
- limit: 1
108
- },
109
- expectedOutput: [
110
- {
111
- orders__order_month: '2022-01-01T00:00:00.000Z',
112
- orders__total_order_amount: 130
113
- }
114
- ]
115
- },
116
- {
117
- testName: 'GroupBy',
118
- expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__customer_id FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders GROUP BY orders__customer_id ORDER BY orders__total_order_amount ASC, orders__customer_id ASC`,
119
- cubeInput: {
120
- measures: [
121
- 'orders.total_order_amount'
122
- ],
123
- filters: [],
124
- dimensions: [
125
- 'orders.customer_id'
126
- ],
127
- order: {
128
- 'orders.total_order_amount': 'asc',
129
- 'orders.customer_id': 'asc'
130
- }
131
- },
132
- expectedOutput: [
133
- {
134
- "orders__customer_id": "6aa6",
135
- "orders__total_order_amount": 0
136
- },
137
- {
138
- "orders__customer_id": "2",
139
- "orders__total_order_amount": 100
140
- },
141
- {
142
- "orders__customer_id": "3",
143
- "orders__total_order_amount": 100
144
- },
145
- {
146
- "orders__customer_id": null,
147
- "orders__total_order_amount": 100
148
- },
149
- {
150
- "orders__customer_id": "6",
151
- "orders__total_order_amount": 120
152
- },
153
- {
154
- "orders__customer_id": "1",
155
- "orders__total_order_amount": 130
96
+ [
97
+ {
98
+ testName: 'GroupBySQLInnerQuery',
99
+ expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__order_month FROM (SELECT *, DATE_TRUNC('month', order_date) AS orders__order_month FROM (select * from orders) AS orders) AS orders GROUP BY orders__order_month LIMIT 1`,
100
+ cubeInput: {
101
+ measures: [
102
+ 'orders.total_order_amount'
103
+ ],
104
+ filters: [],
105
+ dimensions: [
106
+ 'orders.order_month'
107
+ ],
108
+ limit: 1
156
109
  },
157
- {
158
- "orders__customer_id": "4",
159
- "orders__total_order_amount": 135
110
+ expectedOutput: [
111
+ {
112
+ orders__order_month: '2022-01-01T00:00:00.000Z',
113
+ orders__total_order_amount: 130
114
+ }
115
+ ]
116
+ }
117
+ ],
118
+ [
119
+ {
120
+ testName: 'GroupBy',
121
+ expectedSQL: `SELECT SUM(order_amount) AS orders__total_order_amount , orders__customer_id FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders GROUP BY orders__customer_id ORDER BY orders__total_order_amount ASC, orders__customer_id ASC`,
122
+ cubeInput: {
123
+ measures: [
124
+ 'orders.total_order_amount'
125
+ ],
126
+ filters: [],
127
+ dimensions: [
128
+ 'orders.customer_id'
129
+ ],
130
+ order: {
131
+ 'orders.total_order_amount': 'asc',
132
+ 'orders.customer_id': 'asc'
133
+ }
160
134
  },
161
- {
162
- "orders__customer_id": "5",
163
- "orders__total_order_amount": 150
164
- }
165
- ]
166
- },
167
- {
168
- testName: 'Equals',
169
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id = '1')`,
170
- cubeInput: {
171
- measures: [
172
- '*'
173
- ],
174
- filters: [
135
+ expectedOutput: [
175
136
  {
176
- member: 'orders.customer_id',
177
- operator: 'equals',
178
- values: [
179
- '1'
180
- ]
137
+ orders__customer_id: '6aa6',
138
+ orders__total_order_amount: 0
139
+ },
140
+ {
141
+ orders__customer_id: '2',
142
+ orders__total_order_amount: 100
143
+ },
144
+ {
145
+ orders__customer_id: '3',
146
+ orders__total_order_amount: 100
147
+ },
148
+ {
149
+ orders__customer_id: null,
150
+ orders__total_order_amount: 100
151
+ },
152
+ {
153
+ orders__customer_id: '6',
154
+ orders__total_order_amount: 120
155
+ },
156
+ {
157
+ orders__customer_id: '1',
158
+ orders__total_order_amount: 130
159
+ },
160
+ {
161
+ orders__customer_id: '4',
162
+ orders__total_order_amount: 135
163
+ },
164
+ {
165
+ orders__customer_id: '5',
166
+ orders__total_order_amount: 150
181
167
  }
182
- ],
183
- dimensions: []
184
- },
185
- expectedOutput: [
186
- {
187
- order_id: 1,
188
- customer_id: '1',
189
- orders__customer_id: '1',
190
- product_id: '1',
191
- order_date: '2022-01-01',
192
- order_amount: 50.0,
193
- vendors: [
194
- "myntra",
195
- "amazon",
196
- "flipkart"
197
- ]
168
+ ]
169
+ }
170
+ ],
171
+ [
172
+ {
173
+ testName: 'Equals',
174
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id = '1')`,
175
+ cubeInput: {
176
+ measures: [
177
+ '*'
178
+ ],
179
+ filters: [
180
+ {
181
+ member: 'orders.customer_id',
182
+ operator: 'equals',
183
+ values: [
184
+ '1'
185
+ ]
186
+ }
187
+ ],
188
+ dimensions: []
198
189
  },
199
- {
200
- order_id: 2,
201
- customer_id: '1',
202
- orders__customer_id: '1',
203
- product_id: '2',
204
- order_date: '2022-01-02',
205
- order_amount: 80.0,
206
- vendors: [
207
- "myntra"
208
- ]
209
- }
210
- ]
211
- },
212
- {
213
- testName: 'NotEquals',
214
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id != '1')`,
215
- cubeInput: {
216
- measures: [
217
- '*'
218
- ],
219
- filters: [
190
+ expectedOutput: [
191
+ {
192
+ order_id: 1,
193
+ customer_id: '1',
194
+ orders__customer_id: '1',
195
+ product_id: '1',
196
+ order_date: '2022-01-01',
197
+ order_amount: 50.0,
198
+ vendors: [
199
+ 'myntra',
200
+ 'amazon',
201
+ 'flipkart'
202
+ ]
203
+ },
220
204
  {
221
- member: 'orders.customer_id',
222
- operator: 'notEquals',
223
- values: [
224
- '1'
205
+ order_id: 2,
206
+ customer_id: '1',
207
+ orders__customer_id: '1',
208
+ product_id: '2',
209
+ order_date: '2022-01-02',
210
+ order_amount: 80.0,
211
+ vendors: [
212
+ 'myntra'
225
213
  ]
226
214
  }
227
- ],
228
- dimensions: []
215
+ ]
229
216
  },
230
- expectedOutput: [
231
- {
232
- order_id: 3,
233
- customer_id: '2',
234
- orders__customer_id: '2',
235
- product_id: '3',
236
- order_date: '2022-02-01',
237
- order_amount: 25.0,
238
- vendors: []
239
- },
240
- {
241
- order_id: 4,
242
- customer_id: '2',
243
- orders__customer_id: '2',
244
- product_id: '1',
245
- order_date: '2022-03-01',
246
- order_amount: 75.0,
247
- "vendors": [
248
- "flipkart"
249
- ]
250
- },
251
- {
252
- order_id: 5,
253
- customer_id: '3',
254
- orders__customer_id: '3',
255
- product_id: '1',
256
- order_date: '2022-03-02',
257
- order_amount: 100.0,
258
- vendors: [
259
- "myntra",
260
- "amazon",
261
- "flipkart"
262
- ]
263
- },
264
- {
265
- order_id: 6,
266
- customer_id: '4',
267
- orders__customer_id: '4',
268
- product_id: '2',
269
- order_date: '2022-04-01',
270
- order_amount: 45.0,
271
- vendors: []
272
- },
273
- {
274
- order_id: 7,
275
- customer_id: '4',
276
- orders__customer_id: '4',
277
- product_id: '3',
278
- order_date: '2022-05-01',
279
- order_amount: 90.0,
280
- "vendors": [
281
- "myntra",
282
- "flipkart"
283
- ]
284
- },
285
- {
286
- order_id: 8,
287
- customer_id: '5',
288
- orders__customer_id: '5',
289
- product_id: '1',
290
- order_date: '2022-05-02',
291
- order_amount: 65.0,
292
- vendors: [
293
- "amazon",
294
- "flipkart"
295
- ]
296
- },
297
- {
298
- order_id: 9,
299
- customer_id: '5',
300
- orders__customer_id: '5',
301
- product_id: '2',
302
- order_date: '2022-05-05',
303
- order_amount: 85.0,
304
- "vendors": []
217
+ {
218
+ testName: 'Equals for multiple values',
219
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id = '1') AND (orders__customer_id = '2'))`,
220
+ cubeInput: {
221
+ measures: [
222
+ '*'
223
+ ],
224
+ filters: [
225
+ {
226
+ member: 'orders.customer_id',
227
+ operator: 'equals',
228
+ values: [
229
+ '1',
230
+ '2'
231
+ ]
232
+ }
233
+ ],
234
+ dimensions: []
305
235
  },
306
- {
307
- order_id: 10,
308
- customer_id: '6',
309
- orders__customer_id: '6',
310
- product_id: '3',
311
- order_date: '2022-06-01',
312
- order_amount: 120.0,
313
- "vendors": [
314
- "myntra",
315
- "amazon"
316
- ]
236
+ expectedOutput: []
237
+ }
238
+ ],
239
+ [
240
+ {
241
+ testName: 'NotEquals',
242
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id != '1')`,
243
+ cubeInput: {
244
+ measures: [
245
+ '*'
246
+ ],
247
+ filters: [
248
+ {
249
+ member: 'orders.customer_id',
250
+ operator: 'notEquals',
251
+ values: [
252
+ '1'
253
+ ]
254
+ }
255
+ ],
256
+ dimensions: []
317
257
  },
318
- {
319
- order_id: 11,
320
- customer_id: '6aa6',
321
- orders__customer_id: '6aa6',
322
- product_id: '3',
323
- order_date: '2024-06-01',
324
- order_amount: 0.0,
325
- "vendors": [
326
- "amazon"
327
- ]
328
- }
329
- ]
330
- },
331
- {
332
- testName: 'Contains',
333
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id ~~* '%aa%')`,
334
- cubeInput: {
335
- measures: [
336
- '*'
337
- ],
338
- filters: [
258
+ expectedOutput: [
339
259
  {
340
- member: 'orders.customer_id',
341
- operator: 'contains',
342
- values: [
343
- 'aa'
260
+ order_id: 3,
261
+ customer_id: '2',
262
+ orders__customer_id: '2',
263
+ product_id: '3',
264
+ order_date: '2022-02-01',
265
+ order_amount: 25.0,
266
+ vendors: []
267
+ },
268
+ {
269
+ order_id: 4,
270
+ customer_id: '2',
271
+ orders__customer_id: '2',
272
+ product_id: '1',
273
+ order_date: '2022-03-01',
274
+ order_amount: 75.0,
275
+ vendors: [
276
+ 'flipkart'
344
277
  ]
345
- }
346
- ],
347
- dimensions: []
348
- },
349
- expectedOutput: [
350
- {
351
- order_id: 11,
352
- customer_id: '6aa6',
353
- orders__customer_id: '6aa6',
354
- product_id: '3',
355
- order_date: '2024-06-01',
356
- order_amount: 0.0,
357
- "vendors": [
358
- "amazon"
359
- ]
360
- }
361
- ]
362
- },
363
- {
364
- testName: 'NotContains',
365
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id !~~ '%1%') AND (orders__customer_id !~~ '%2%') AND (orders__customer_id !~~ '%3%') AND (orders__customer_id !~~ '%4%') AND (orders__customer_id !~~ '%5%') AND (orders__customer_id !~~ '%aa%'))`,
366
- cubeInput: {
367
- measures: [
368
- '*'
369
- ],
370
- filters: [
278
+ },
371
279
  {
372
- and: [
373
- {
374
- member: 'orders.customer_id',
375
- operator: 'notContains',
376
- values: [
377
- '1'
378
- ]
379
- },
380
- {
381
- member: 'orders.customer_id',
382
- operator: 'notContains',
383
- values: [
384
- '2'
385
- ]
386
- },
387
- {
388
- member: 'orders.customer_id',
389
- operator: 'notContains',
390
- values: [
391
- '3'
392
- ]
393
- },
394
- {
395
- member: 'orders.customer_id',
396
- operator: 'notContains',
397
- values: [
398
- '4'
399
- ]
400
- },
401
- {
402
- member: 'orders.customer_id',
403
- operator: 'notContains',
404
- values: [
405
- '5'
406
- ]
407
- },
408
- {
409
- member: 'orders.customer_id',
410
- operator: 'notContains',
411
- values: [
412
- 'aa'
413
- ]
414
- }
280
+ order_id: 5,
281
+ customer_id: '3',
282
+ orders__customer_id: '3',
283
+ product_id: '1',
284
+ order_date: '2022-03-02',
285
+ order_amount: 100.0,
286
+ vendors: [
287
+ 'myntra',
288
+ 'amazon',
289
+ 'flipkart'
415
290
  ]
416
- }
417
- ],
418
- dimensions: []
419
- },
420
- expectedOutput: [
421
- {
422
- order_id: 10,
423
- customer_id: '6',
424
- orders__customer_id: '6',
425
- product_id: '3',
426
- order_date: '2022-06-01',
427
- order_amount: 120,
428
- vendors: [
429
- "myntra",
430
- "amazon"
431
- ]
432
- }
433
- ]
434
- },
435
- {
436
- testName: 'GreaterThan',
437
- expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount > 50)`,
438
- cubeInput: {
439
- measures: [
440
- '*'
441
- ],
442
- filters: [
291
+ },
292
+ {
293
+ order_id: 6,
294
+ customer_id: '4',
295
+ orders__customer_id: '4',
296
+ product_id: '2',
297
+ order_date: '2022-04-01',
298
+ order_amount: 45.0,
299
+ vendors: []
300
+ },
301
+ {
302
+ order_id: 7,
303
+ customer_id: '4',
304
+ orders__customer_id: '4',
305
+ product_id: '3',
306
+ order_date: '2022-05-01',
307
+ order_amount: 90.0,
308
+ vendors: [
309
+ 'myntra',
310
+ 'flipkart'
311
+ ]
312
+ },
313
+ {
314
+ order_id: 8,
315
+ customer_id: '5',
316
+ orders__customer_id: '5',
317
+ product_id: '1',
318
+ order_date: '2022-05-02',
319
+ order_amount: 65.0,
320
+ vendors: [
321
+ 'amazon',
322
+ 'flipkart'
323
+ ]
324
+ },
325
+ {
326
+ order_id: 9,
327
+ customer_id: '5',
328
+ orders__customer_id: '5',
329
+ product_id: '2',
330
+ order_date: '2022-05-05',
331
+ order_amount: 85.0,
332
+ vendors: []
333
+ },
443
334
  {
444
- member: 'orders.order_amount',
445
- operator: 'gt',
446
- values: [
447
- '50'
335
+ order_id: 10,
336
+ customer_id: '6',
337
+ orders__customer_id: '6',
338
+ product_id: '3',
339
+ order_date: '2022-06-01',
340
+ order_amount: 120.0,
341
+ vendors: [
342
+ 'myntra',
343
+ 'amazon'
344
+ ]
345
+ },
346
+ {
347
+ order_id: 11,
348
+ customer_id: '6aa6',
349
+ orders__customer_id: '6aa6',
350
+ product_id: '3',
351
+ order_date: '2024-06-01',
352
+ order_amount: 0.0,
353
+ vendors: [
354
+ 'amazon'
448
355
  ]
449
356
  }
450
- ],
451
- dimensions: []
452
- },
453
- expectedOutput: [
454
- {
455
- order_id: 2,
456
- customer_id: '1',
457
- product_id: '2',
458
- order_date: '2022-01-02',
459
- order_amount: 80.0,
460
- orders__order_amount: 80.0,
461
- "vendors": [
462
- "myntra"
463
- ]
464
- },
465
- {
466
- order_id: 4,
467
- customer_id: '2',
468
- product_id: '1',
469
- order_date: '2022-03-01',
470
- order_amount: 75.0,
471
- orders__order_amount: 75.0,
472
- "vendors": [
473
- "flipkart"
474
- ]
475
- },
476
- {
477
- order_id: 5,
478
- customer_id: '3',
479
- product_id: '1',
480
- order_date: '2022-03-02',
481
- order_amount: 100.0,
482
- orders__order_amount: 100.0,
483
- "vendors": [
484
- "myntra",
485
- "amazon",
486
- "flipkart"
487
- ]
488
- },
489
- {
490
- order_id: 7,
491
- customer_id: '4',
492
- product_id: '3',
493
- order_date: '2022-05-01',
494
- order_amount: 90.0,
495
- orders__order_amount: 90.0,
496
- "vendors": [
497
- "myntra",
498
- "flipkart"
499
- ]
500
- },
501
- {
502
- order_id: 8,
503
- customer_id: '5',
504
- product_id: '1',
505
- order_date: '2022-05-02',
506
- order_amount: 65.0,
507
- orders__order_amount: 65.0,
508
- "vendors": [
509
- "amazon",
510
- "flipkart"
511
- ]
512
- },
513
- {
514
- order_id: 9,
515
- customer_id: '5',
516
- product_id: '2',
517
- order_date: '2022-05-05',
518
- order_amount: 85.0,
519
- orders__order_amount: 85.0,
520
- "vendors": []
521
- },
522
- {
523
- order_id: 10,
524
- customer_id: '6',
525
- product_id: '3',
526
- order_date: '2022-06-01',
527
- order_amount: 120.0,
528
- orders__order_amount: 120.0,
529
- "vendors": [
530
- "myntra",
531
- "amazon"
532
- ]
357
+ ]
358
+ }
359
+ ],
360
+ [
361
+ {
362
+ testName: 'Contains',
363
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE (orders__customer_id ~~* '%aa%')`,
364
+ cubeInput: {
365
+ measures: [
366
+ '*'
367
+ ],
368
+ filters: [
369
+ {
370
+ member: 'orders.customer_id',
371
+ operator: 'contains',
372
+ values: [
373
+ 'aa'
374
+ ]
375
+ }
376
+ ],
377
+ dimensions: []
533
378
  },
534
- {
535
- "customer_id": null,
536
- "order_amount": 100,
537
- "order_date": "2024-07-01T00:00:00.000Z",
538
- "order_id": 12,
539
- "orders__order_amount": 100,
540
- "orders__order_date": undefined,
541
- "product_id": "3",
542
- "vendors": [
543
- "flipkart"
544
- ]
545
- }
546
- ]
547
- },
548
- {
549
- testName: 'LessThan',
550
- expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount < 50)`,
551
- cubeInput: {
552
- measures: [
553
- '*'
554
- ],
555
- filters: [
379
+ expectedOutput: [
556
380
  {
557
- member: 'orders.order_amount',
558
- operator: 'lt',
559
- values: [
560
- '50'
381
+ order_id: 11,
382
+ customer_id: '6aa6',
383
+ orders__customer_id: '6aa6',
384
+ product_id: '3',
385
+ order_date: '2024-06-01',
386
+ order_amount: 0.0,
387
+ vendors: [
388
+ 'amazon'
561
389
  ]
562
390
  }
563
- ],
564
- dimensions: []
565
- },
566
- expectedOutput: [
567
- {
568
- order_id: 3,
569
- customer_id: '2',
570
- product_id: '3',
571
- order_date: '2022-02-01',
572
- order_amount: 25.0,
573
- orders__order_amount: 25.0,
574
- "vendors": []
575
- },
576
- {
577
- order_id: 6,
578
- customer_id: '4',
579
- product_id: '2',
580
- order_date: '2022-04-01',
581
- order_amount: 45.0,
582
- orders__order_amount: 45.0,
583
- "vendors": []
391
+ ]
392
+ }
393
+ ],
394
+ [
395
+ {
396
+ testName: 'NotContains',
397
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id !~~ '%1%') AND (orders__customer_id !~~ '%2%') AND (orders__customer_id !~~ '%3%') AND (orders__customer_id !~~ '%4%') AND (orders__customer_id !~~ '%5%') AND (orders__customer_id !~~ '%aa%'))`,
398
+ cubeInput: {
399
+ measures: [
400
+ '*'
401
+ ],
402
+ filters: [
403
+ {
404
+ and: [
405
+ {
406
+ member: 'orders.customer_id',
407
+ operator: 'notContains',
408
+ values: [
409
+ '1'
410
+ ]
411
+ },
412
+ {
413
+ member: 'orders.customer_id',
414
+ operator: 'notContains',
415
+ values: [
416
+ '2'
417
+ ]
418
+ },
419
+ {
420
+ member: 'orders.customer_id',
421
+ operator: 'notContains',
422
+ values: [
423
+ '3'
424
+ ]
425
+ },
426
+ {
427
+ member: 'orders.customer_id',
428
+ operator: 'notContains',
429
+ values: [
430
+ '4'
431
+ ]
432
+ },
433
+ {
434
+ member: 'orders.customer_id',
435
+ operator: 'notContains',
436
+ values: [
437
+ '5'
438
+ ]
439
+ },
440
+ {
441
+ member: 'orders.customer_id',
442
+ operator: 'notContains',
443
+ values: [
444
+ 'aa'
445
+ ]
446
+ }
447
+ ]
448
+ }
449
+ ],
450
+ dimensions: []
584
451
  },
585
- {
586
- order_id: 11,
587
- customer_id: '6aa6',
588
- product_id: '3',
589
- order_date: '2024-06-01',
590
- order_amount: 0.0,
591
- orders__order_amount: 0.0,
592
- "vendors": [
593
- "amazon"
594
- ]
595
- }
596
- ]
597
- },
598
- {
599
- testName: 'InDateRange',
600
- expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-03-31'))`,
601
- cubeInput: {
602
- measures: [
603
- '*'
604
- ],
605
- filters: [
452
+ expectedOutput: [
606
453
  {
607
- member: 'orders.order_date',
608
- operator: 'inDateRange',
609
- values: [
610
- '2022-02-01',
611
- '2022-03-31'
454
+ order_id: 10,
455
+ customer_id: '6',
456
+ orders__customer_id: '6',
457
+ product_id: '3',
458
+ order_date: '2022-06-01',
459
+ order_amount: 120,
460
+ vendors: [
461
+ 'myntra',
462
+ 'amazon'
612
463
  ]
613
464
  }
614
- ],
615
- dimensions: []
616
- },
617
- expectedOutput: [
618
- {
619
- order_id: 3,
620
- customer_id: '2',
621
- product_id: '3',
622
- order_date: '2022-02-01',
623
- orders__order_date: '2022-02-01',
624
- order_amount: 25.0,
625
- "vendors": []
626
- },
627
- {
628
- order_id: 4,
629
- customer_id: '2',
630
- product_id: '1',
631
- order_date: '2022-03-01',
632
- orders__order_date: '2022-03-01',
633
- order_amount: 75.0,
634
- "vendors": [
635
- "flipkart"
636
- ]
465
+ ]
466
+ }
467
+ ],
468
+ [
469
+ {
470
+ testName: 'GreaterThan',
471
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount > 50)`,
472
+ cubeInput: {
473
+ measures: [
474
+ '*'
475
+ ],
476
+ filters: [
477
+ {
478
+ member: 'orders.order_amount',
479
+ operator: 'gt',
480
+ values: [
481
+ '50'
482
+ ]
483
+ }
484
+ ],
485
+ dimensions: []
637
486
  },
638
- {
639
- order_id: 5,
640
- customer_id: '3',
641
- product_id: '1',
642
- order_date: '2022-03-02',
643
- orders__order_date: '2022-03-02',
644
- order_amount: 100.0,
645
- "vendors": [
646
- "myntra",
647
- "amazon",
648
- "flipkart"
649
- ]
650
- }
651
- ]
652
- },
653
- {
654
- testName: 'NotInDateRange',
655
- expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date < '2022-02-01') OR (orders__order_date > '2022-03-31'))`,
656
- cubeInput: {
657
- measures: [
658
- '*'
659
- ],
660
- filters: [
487
+ expectedOutput: [
488
+ {
489
+ order_id: 2,
490
+ customer_id: '1',
491
+ product_id: '2',
492
+ order_date: '2022-01-02',
493
+ order_amount: 80.0,
494
+ orders__order_amount: 80.0,
495
+ vendors: [
496
+ 'myntra'
497
+ ]
498
+ },
499
+ {
500
+ order_id: 4,
501
+ customer_id: '2',
502
+ product_id: '1',
503
+ order_date: '2022-03-01',
504
+ order_amount: 75.0,
505
+ orders__order_amount: 75.0,
506
+ vendors: [
507
+ 'flipkart'
508
+ ]
509
+ },
661
510
  {
662
- member: 'orders.order_date',
663
- operator: 'notInDateRange',
664
- values: [
665
- '2022-02-01',
666
- '2022-03-31'
511
+ order_id: 5,
512
+ customer_id: '3',
513
+ product_id: '1',
514
+ order_date: '2022-03-02',
515
+ order_amount: 100.0,
516
+ orders__order_amount: 100.0,
517
+ vendors: [
518
+ 'myntra',
519
+ 'amazon',
520
+ 'flipkart'
521
+ ]
522
+ },
523
+ {
524
+ order_id: 7,
525
+ customer_id: '4',
526
+ product_id: '3',
527
+ order_date: '2022-05-01',
528
+ order_amount: 90.0,
529
+ orders__order_amount: 90.0,
530
+ vendors: [
531
+ 'myntra',
532
+ 'flipkart'
533
+ ]
534
+ },
535
+ {
536
+ order_id: 8,
537
+ customer_id: '5',
538
+ product_id: '1',
539
+ order_date: '2022-05-02',
540
+ order_amount: 65.0,
541
+ orders__order_amount: 65.0,
542
+ vendors: [
543
+ 'amazon',
544
+ 'flipkart'
545
+ ]
546
+ },
547
+ {
548
+ order_id: 9,
549
+ customer_id: '5',
550
+ product_id: '2',
551
+ order_date: '2022-05-05',
552
+ order_amount: 85.0,
553
+ orders__order_amount: 85.0,
554
+ vendors: []
555
+ },
556
+ {
557
+ order_id: 10,
558
+ customer_id: '6',
559
+ product_id: '3',
560
+ order_date: '2022-06-01',
561
+ order_amount: 120.0,
562
+ orders__order_amount: 120.0,
563
+ vendors: [
564
+ 'myntra',
565
+ 'amazon'
566
+ ]
567
+ },
568
+ {
569
+ customer_id: null,
570
+ order_amount: 100,
571
+ order_date: '2024-07-01T00:00:00.000Z',
572
+ order_id: 12,
573
+ orders__order_amount: 100,
574
+ orders__order_date: undefined,
575
+ product_id: '3',
576
+ vendors: [
577
+ 'flipkart'
667
578
  ]
668
579
  }
669
- ],
670
- dimensions: []
671
- },
672
- expectedOutput: [
673
- {
674
- order_id: 1,
675
- customer_id: '1',
676
- product_id: '1',
677
- order_date: '2022-01-01',
678
- order_amount: 50.0,
679
- orders__order_date: '2022-01-01',
680
- "vendors": [
681
- "myntra",
682
- "amazon",
683
- "flipkart"
684
- ]
685
- },
686
- {
687
- order_id: 2,
688
- customer_id: '1',
689
- product_id: '2',
690
- order_date: '2022-01-02',
691
- order_amount: 80.0,
692
- orders__order_date: '2022-01-02',
693
- "vendors": [
694
- "myntra"
695
- ]
696
- },
697
- {
698
- order_id: 6,
699
- customer_id: '4',
700
- product_id: '2',
701
- order_date: '2022-04-01',
702
- orders__order_date: '2022-04-01',
703
- order_amount: 45.0,
704
- "vendors": []
705
- },
706
- {
707
- order_id: 7,
708
- customer_id: '4',
709
- product_id: '3',
710
- order_date: '2022-05-01',
711
- orders__order_date: '2022-05-01',
712
- order_amount: 90.0,
713
- "vendors": [
714
- "myntra",
715
- "flipkart"
716
- ]
717
- },
718
- {
719
- order_id: 8,
720
- customer_id: '5',
721
- product_id: '1',
722
- order_date: '2022-05-02',
723
- orders__order_date: '2022-05-02',
724
- order_amount: 65.0,
725
- "vendors": [
726
- "amazon",
727
- "flipkart"
728
- ]
729
- },
730
- {
731
- order_id: 9,
732
- customer_id: '5',
733
- product_id: '2',
734
- order_date: '2022-05-05',
735
- orders__order_date: '2022-05-05',
736
- order_amount: 85.0,
737
- "vendors": []
580
+ ]
581
+ }
582
+ ],
583
+ [
584
+ {
585
+ testName: 'LessThan',
586
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount FROM (select * from orders) AS orders) AS orders WHERE (orders__order_amount < 50)`,
587
+ cubeInput: {
588
+ measures: [
589
+ '*'
590
+ ],
591
+ filters: [
592
+ {
593
+ member: 'orders.order_amount',
594
+ operator: 'lt',
595
+ values: [
596
+ '50'
597
+ ]
598
+ }
599
+ ],
600
+ dimensions: []
738
601
  },
739
- {
740
- order_id: 10,
741
- customer_id: '6',
742
- product_id: '3',
743
- order_date: '2022-06-01',
744
- orders__order_date: '2022-06-01',
745
- order_amount: 120.0,
746
- "vendors": [
747
- "myntra",
748
- "amazon"
749
- ]
602
+ expectedOutput: [
603
+ {
604
+ order_id: 3,
605
+ customer_id: '2',
606
+ product_id: '3',
607
+ order_date: '2022-02-01',
608
+ order_amount: 25.0,
609
+ orders__order_amount: 25.0,
610
+ vendors: []
611
+ },
612
+ {
613
+ order_id: 6,
614
+ customer_id: '4',
615
+ product_id: '2',
616
+ order_date: '2022-04-01',
617
+ order_amount: 45.0,
618
+ orders__order_amount: 45.0,
619
+ vendors: []
620
+ },
621
+ {
622
+ order_id: 11,
623
+ customer_id: '6aa6',
624
+ product_id: '3',
625
+ order_date: '2024-06-01',
626
+ order_amount: 0.0,
627
+ orders__order_amount: 0.0,
628
+ vendors: [
629
+ 'amazon'
630
+ ]
631
+ }
632
+ ]
633
+ }
634
+ ],
635
+ [
636
+ {
637
+ testName: 'InDateRange',
638
+ expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-03-31'))`,
639
+ cubeInput: {
640
+ measures: [
641
+ '*'
642
+ ],
643
+ filters: [
644
+ {
645
+ member: 'orders.order_date',
646
+ operator: 'inDateRange',
647
+ values: [
648
+ '2022-02-01',
649
+ '2022-03-31'
650
+ ]
651
+ }
652
+ ],
653
+ dimensions: []
750
654
  },
751
- {
752
- order_id: 11,
753
- customer_id: '6aa6',
754
- product_id: '3',
755
- order_date: '2024-06-01',
756
- orders__order_date: '2024-06-01',
757
- order_amount: 0.0,
758
- "vendors": [
759
- "amazon"
760
- ]
655
+ expectedOutput: [
656
+ {
657
+ order_id: 3,
658
+ customer_id: '2',
659
+ product_id: '3',
660
+ order_date: '2022-02-01',
661
+ orders__order_date: '2022-02-01',
662
+ order_amount: 25.0,
663
+ vendors: []
664
+ },
665
+ {
666
+ order_id: 4,
667
+ customer_id: '2',
668
+ product_id: '1',
669
+ order_date: '2022-03-01',
670
+ orders__order_date: '2022-03-01',
671
+ order_amount: 75.0,
672
+ vendors: [
673
+ 'flipkart'
674
+ ]
675
+ },
676
+ {
677
+ order_id: 5,
678
+ customer_id: '3',
679
+ product_id: '1',
680
+ order_date: '2022-03-02',
681
+ orders__order_date: '2022-03-02',
682
+ order_amount: 100.0,
683
+ vendors: [
684
+ 'myntra',
685
+ 'amazon',
686
+ 'flipkart'
687
+ ]
688
+ }
689
+ ]
690
+ }
691
+ ],
692
+ [
693
+ {
694
+ testName: 'NotInDateRange',
695
+ expectedSQL: `SELECT orders.* FROM (SELECT *, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_date < '2022-02-01') OR (orders__order_date > '2022-03-31'))`,
696
+ cubeInput: {
697
+ measures: [
698
+ '*'
699
+ ],
700
+ filters: [
701
+ {
702
+ member: 'orders.order_date',
703
+ operator: 'notInDateRange',
704
+ values: [
705
+ '2022-02-01',
706
+ '2022-03-31'
707
+ ]
708
+ }
709
+ ],
710
+ dimensions: []
761
711
  },
762
- {
763
- "customer_id": null,
764
- "order_amount": 100,
765
- "order_date": "2024-07-01T00:00:00.000Z",
766
- "order_id": 12,
767
- "orders__order_date": "2024-07-01T00:00:00.000Z",
768
- "product_id": "3",
769
- "vendors": [
770
- "flipkart"
771
- ]
772
- }
773
- ]
774
- },
712
+ expectedOutput: [
713
+ {
714
+ order_id: 1,
715
+ customer_id: '1',
716
+ product_id: '1',
717
+ order_date: '2022-01-01',
718
+ order_amount: 50.0,
719
+ orders__order_date: '2022-01-01',
720
+ vendors: [
721
+ 'myntra',
722
+ 'amazon',
723
+ 'flipkart'
724
+ ]
725
+ },
726
+ {
727
+ order_id: 2,
728
+ customer_id: '1',
729
+ product_id: '2',
730
+ order_date: '2022-01-02',
731
+ order_amount: 80.0,
732
+ orders__order_date: '2022-01-02',
733
+ vendors: [
734
+ 'myntra'
735
+ ]
736
+ },
737
+ {
738
+ order_id: 6,
739
+ customer_id: '4',
740
+ product_id: '2',
741
+ order_date: '2022-04-01',
742
+ orders__order_date: '2022-04-01',
743
+ order_amount: 45.0,
744
+ vendors: []
745
+ },
746
+ {
747
+ order_id: 7,
748
+ customer_id: '4',
749
+ product_id: '3',
750
+ order_date: '2022-05-01',
751
+ orders__order_date: '2022-05-01',
752
+ order_amount: 90.0,
753
+ vendors: [
754
+ 'myntra',
755
+ 'flipkart'
756
+ ]
757
+ },
758
+ {
759
+ order_id: 8,
760
+ customer_id: '5',
761
+ product_id: '1',
762
+ order_date: '2022-05-02',
763
+ orders__order_date: '2022-05-02',
764
+ order_amount: 65.0,
765
+ vendors: [
766
+ 'amazon',
767
+ 'flipkart'
768
+ ]
769
+ },
770
+ {
771
+ order_id: 9,
772
+ customer_id: '5',
773
+ product_id: '2',
774
+ order_date: '2022-05-05',
775
+ orders__order_date: '2022-05-05',
776
+ order_amount: 85.0,
777
+ vendors: []
778
+ },
779
+ {
780
+ order_id: 10,
781
+ customer_id: '6',
782
+ product_id: '3',
783
+ order_date: '2022-06-01',
784
+ orders__order_date: '2022-06-01',
785
+ order_amount: 120.0,
786
+ vendors: [
787
+ 'myntra',
788
+ 'amazon'
789
+ ]
790
+ },
791
+ {
792
+ order_id: 11,
793
+ customer_id: '6aa6',
794
+ product_id: '3',
795
+ order_date: '2024-06-01',
796
+ orders__order_date: '2024-06-01',
797
+ order_amount: 0.0,
798
+ vendors: [
799
+ 'amazon'
800
+ ]
801
+ },
802
+ {
803
+ customer_id: null,
804
+ order_amount: 100,
805
+ order_date: '2024-07-01T00:00:00.000Z',
806
+ order_id: 12,
807
+ orders__order_date: '2024-07-01T00:00:00.000Z',
808
+ product_id: '3',
809
+ vendors: [
810
+ 'flipkart'
811
+ ]
812
+ }
813
+ ]
814
+ }
815
+ ],
775
816
  // {
776
817
  // testName: 'Or',
777
818
  // expectedSQL: `SELECT orders.* FROM (select * from orders) AS orders WHERE ((orders.order_amount > 80) OR ((orders.order_date >= '2022-02-01') AND (orders.order_date <= '2022-03-01')))`,
@@ -840,389 +881,399 @@ const TEST_DATA = [
840
881
  // },
841
882
  // ],
842
883
  // },
843
- {
844
- testName: 'And',
845
- expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount > 50) AND ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-06-01')))`,
846
- cubeInput: {
847
- measures: [
848
- '*'
849
- ],
850
- filters: [
884
+ [
885
+ {
886
+ testName: 'And',
887
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, order_date AS orders__order_date FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount > 50) AND ((orders__order_date >= '2022-02-01') AND (orders__order_date <= '2022-06-01')))`,
888
+ cubeInput: {
889
+ measures: [
890
+ '*'
891
+ ],
892
+ filters: [
893
+ {
894
+ and: [
895
+ {
896
+ member: 'orders.order_amount',
897
+ operator: 'gt',
898
+ values: [
899
+ '50'
900
+ ]
901
+ },
902
+ {
903
+ member: 'orders.order_date',
904
+ operator: 'inDateRange',
905
+ values: [
906
+ '2022-02-01',
907
+ '2022-06-01'
908
+ ]
909
+ }
910
+ ]
911
+ }
912
+ ],
913
+ dimensions: []
914
+ },
915
+ expectedOutput: [
916
+ {
917
+ order_id: 4,
918
+ customer_id: '2',
919
+ product_id: '1',
920
+ order_date: '2022-03-01',
921
+ order_amount: 75.0,
922
+ orders__order_amount: 75.0,
923
+ orders__order_date: '2022-03-01',
924
+ vendors: [
925
+ 'flipkart'
926
+ ]
927
+ },
928
+ {
929
+ order_id: 5,
930
+ customer_id: '3',
931
+ product_id: '1',
932
+ order_date: '2022-03-02',
933
+ orders__order_date: '2022-03-02',
934
+ order_amount: 100.0,
935
+ orders__order_amount: 100.0,
936
+ vendors: [
937
+ 'myntra',
938
+ 'amazon',
939
+ 'flipkart'
940
+ ]
941
+ },
942
+ {
943
+ order_id: 7,
944
+ customer_id: '4',
945
+ product_id: '3',
946
+ order_date: '2022-05-01',
947
+ orders__order_date: '2022-05-01',
948
+ order_amount: 90.0,
949
+ orders__order_amount: 90.0,
950
+ vendors: [
951
+ 'myntra',
952
+ 'flipkart'
953
+ ]
954
+ },
851
955
  {
852
- and: [
853
- {
854
- member: 'orders.order_amount',
855
- operator: 'gt',
856
- values: [
857
- '50'
858
- ]
859
- },
860
- {
861
- member: 'orders.order_date',
862
- operator: 'inDateRange',
863
- values: [
864
- '2022-02-01',
865
- '2022-06-01'
866
- ]
867
- }
956
+ order_id: 8,
957
+ customer_id: '5',
958
+ product_id: '1',
959
+ order_date: '2022-05-02',
960
+ orders__order_date: '2022-05-02',
961
+ order_amount: 65,
962
+ orders__order_amount: 65,
963
+ vendors: [
964
+ 'amazon',
965
+ 'flipkart'
966
+ ]
967
+ },
968
+ {
969
+ order_id: 9,
970
+ customer_id: '5',
971
+ product_id: '2',
972
+ order_date: '2022-05-05',
973
+ orders__order_date: '2022-05-05',
974
+ order_amount: 85.0,
975
+ orders__order_amount: 85.0,
976
+ vendors: []
977
+ },
978
+ {
979
+ order_id: 10,
980
+ customer_id: '6',
981
+ product_id: '3',
982
+ order_date: '2022-06-01',
983
+ orders__order_date: '2022-06-01',
984
+ order_amount: 120.0,
985
+ orders__order_amount: 120.0,
986
+ vendors: [
987
+ 'myntra',
988
+ 'amazon'
868
989
  ]
869
990
  }
870
- ],
871
- dimensions: []
872
- },
873
- expectedOutput: [
874
- {
875
- order_id: 4,
876
- customer_id: '2',
877
- product_id: '1',
878
- order_date: '2022-03-01',
879
- order_amount: 75.0,
880
- orders__order_amount: 75.0,
881
- orders__order_date: '2022-03-01',
882
- "vendors": [
883
- "flipkart"
884
- ]
885
- },
886
- {
887
- order_id: 5,
888
- customer_id: '3',
889
- product_id: '1',
890
- order_date: '2022-03-02',
891
- orders__order_date: '2022-03-02',
892
- order_amount: 100.0,
893
- orders__order_amount: 100.0,
894
- "vendors": [
895
- "myntra",
896
- "amazon",
897
- "flipkart"
898
- ]
899
- },
900
- {
901
- order_id: 7,
902
- customer_id: '4',
903
- product_id: '3',
904
- order_date: '2022-05-01',
905
- orders__order_date: '2022-05-01',
906
- order_amount: 90.0,
907
- orders__order_amount: 90.0,
908
- "vendors": [
909
- "myntra",
910
- "flipkart"
911
- ]
912
- },
913
- {
914
- order_id: 8,
915
- customer_id: '5',
916
- product_id: '1',
917
- order_date: '2022-05-02',
918
- orders__order_date: '2022-05-02',
919
- order_amount: 65,
920
- orders__order_amount: 65,
921
- "vendors": [
922
- "amazon",
923
- "flipkart"
924
- ]
925
- },
926
- {
927
- order_id: 9,
928
- customer_id: '5',
929
- product_id: '2',
930
- order_date: '2022-05-05',
931
- orders__order_date: '2022-05-05',
932
- order_amount: 85.0,
933
- orders__order_amount: 85.0,
934
- "vendors": []
991
+ ]
992
+ }
993
+ ],
994
+ [
995
+ {
996
+ testName: 'Set',
997
+ expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount IS NOT NULL) AND (orders__product_id = '3'))`,
998
+ cubeInput: {
999
+ measures: [
1000
+ '*'
1001
+ ],
1002
+ filters: [
1003
+ {
1004
+ and: [
1005
+ {
1006
+ member: 'orders.order_amount',
1007
+ operator: 'set'
1008
+ },
1009
+ {
1010
+ member: 'orders.product_id',
1011
+ operator: 'equals',
1012
+ values: [
1013
+ '3'
1014
+ ]
1015
+ }
1016
+ ]
1017
+ }
1018
+ ],
1019
+ dimensions: []
935
1020
  },
936
- {
937
- order_id: 10,
938
- customer_id: '6',
939
- product_id: '3',
940
- order_date: '2022-06-01',
941
- orders__order_date: '2022-06-01',
942
- order_amount: 120.0,
943
- orders__order_amount: 120.0,
944
- "vendors": [
945
- "myntra",
946
- "amazon"
947
- ]
948
- }
949
- ]
950
- },
951
- {
952
- testName: 'Set',
953
- expectedSQL: `SELECT orders.* FROM (SELECT *, orders.order_amount AS orders__order_amount, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__order_amount IS NOT NULL) AND (orders__product_id = '3'))`,
954
- cubeInput: {
955
- measures: [
956
- '*'
957
- ],
958
- filters: [
1021
+ expectedOutput: [
1022
+ {
1023
+ customer_id: '2',
1024
+ order_amount: 25,
1025
+ order_date: '2022-02-01T00:00:00.000Z',
1026
+ order_id: 3,
1027
+ orders__order_amount: 25,
1028
+ orders__order_date: undefined,
1029
+ orders__product_id: '3',
1030
+ product_id: '3',
1031
+ vendors: []
1032
+ },
959
1033
  {
960
- and: [
961
- {
962
- member: 'orders.order_amount',
963
- operator: 'set'
964
- },
965
- {
966
- member: 'orders.product_id',
967
- operator: 'equals',
968
- values: [
969
- '3'
970
- ]
971
- }
1034
+ customer_id: '4',
1035
+ order_amount: 90,
1036
+ order_date: '2022-05-01T00:00:00.000Z',
1037
+ order_id: 7,
1038
+ orders__order_amount: 90,
1039
+ orders__order_date: undefined,
1040
+ orders__product_id: '3',
1041
+ product_id: '3',
1042
+ vendors: [
1043
+ 'myntra',
1044
+ 'flipkart'
1045
+ ]
1046
+ },
1047
+ {
1048
+ customer_id: '6',
1049
+ order_amount: 120,
1050
+ order_date: '2022-06-01T00:00:00.000Z',
1051
+ order_id: 10,
1052
+ orders__order_amount: 120,
1053
+ orders__order_date: undefined,
1054
+ orders__product_id: '3',
1055
+ product_id: '3',
1056
+ vendors: [
1057
+ 'myntra',
1058
+ 'amazon'
1059
+ ]
1060
+ },
1061
+ {
1062
+ customer_id: '6aa6',
1063
+ order_amount: 0,
1064
+ order_date: '2024-06-01T00:00:00.000Z',
1065
+ order_id: 11,
1066
+ orders__order_amount: 0,
1067
+ orders__order_date: undefined,
1068
+ orders__product_id: '3',
1069
+ product_id: '3',
1070
+ vendors: [
1071
+ 'amazon'
1072
+ ]
1073
+ },
1074
+ {
1075
+ customer_id: null,
1076
+ order_amount: 100,
1077
+ order_date: '2024-07-01T00:00:00.000Z',
1078
+ order_id: 12,
1079
+ orders__order_amount: 100,
1080
+ orders__order_date: undefined,
1081
+ orders__product_id: '3',
1082
+ product_id: '3',
1083
+ vendors: [
1084
+ 'flipkart'
972
1085
  ]
973
1086
  }
974
- ],
975
- dimensions: []
976
- },
977
- expectedOutput: [
978
- {
979
- "customer_id": "2",
980
- "order_amount": 25,
981
- "order_date": "2022-02-01T00:00:00.000Z",
982
- "order_id": 3,
983
- "orders__order_amount": 25,
984
- "orders__order_date": undefined,
985
- "orders__product_id": "3",
986
- "product_id": "3",
987
- "vendors": []
988
- },
989
- {
990
- "customer_id": "4",
991
- "order_amount": 90,
992
- "order_date": "2022-05-01T00:00:00.000Z",
993
- "order_id": 7,
994
- "orders__order_amount": 90,
995
- "orders__order_date": undefined,
996
- "orders__product_id": "3",
997
- "product_id": "3",
998
- "vendors": [
999
- "myntra",
1000
- "flipkart"
1001
- ]
1002
- },
1003
- {
1004
- "customer_id": "6",
1005
- "order_amount": 120,
1006
- "order_date": "2022-06-01T00:00:00.000Z",
1007
- "order_id": 10,
1008
- "orders__order_amount": 120,
1009
- "orders__order_date": undefined,
1010
- "orders__product_id": "3",
1011
- "product_id": "3",
1012
- "vendors": [
1013
- "myntra",
1014
- "amazon"
1015
- ]
1016
- },
1017
- {
1018
- "customer_id": "6aa6",
1019
- "order_amount": 0,
1020
- "order_date": "2024-06-01T00:00:00.000Z",
1021
- "order_id": 11,
1022
- "orders__order_amount": 0,
1023
- "orders__order_date": undefined,
1024
- "orders__product_id": "3",
1025
- "product_id": "3",
1026
- "vendors": [
1027
- "amazon"
1028
- ]
1087
+ ]
1088
+ }
1089
+ ],
1090
+ [
1091
+ {
1092
+ testName: 'Not Set',
1093
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IS NULL) AND (orders__product_id = '3'))`,
1094
+ cubeInput: {
1095
+ measures: [
1096
+ '*'
1097
+ ],
1098
+ filters: [
1099
+ {
1100
+ and: [
1101
+ {
1102
+ member: 'orders.customer_id',
1103
+ operator: 'notSet'
1104
+ },
1105
+ {
1106
+ member: 'orders.product_id',
1107
+ operator: 'equals',
1108
+ values: [
1109
+ '3'
1110
+ ]
1111
+ }
1112
+ ]
1113
+ }
1114
+ ],
1115
+ dimensions: []
1029
1116
  },
1030
- {
1031
- "customer_id": null,
1032
- "order_amount": 100,
1033
- "order_date": "2024-07-01T00:00:00.000Z",
1034
- "order_id": 12,
1035
- "orders__order_amount": 100,
1036
- "orders__order_date": undefined,
1037
- "orders__product_id": "3",
1038
- "product_id": "3",
1039
- "vendors": [
1040
- "flipkart"
1041
- ]
1042
- }
1043
- ]
1044
- },
1045
- {
1046
- testName: 'Not Set',
1047
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, product_id AS orders__product_id FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IS NULL) AND (orders__product_id = '3'))`,
1048
- cubeInput: {
1049
- measures: [
1050
- '*'
1051
- ],
1052
- filters: [
1117
+ expectedOutput: [
1053
1118
  {
1054
- and: [
1055
- {
1056
- member: 'orders.customer_id',
1057
- operator: 'notSet'
1058
- },
1059
- {
1060
- member: 'orders.product_id',
1061
- operator: 'equals',
1062
- values: [
1063
- '3'
1064
- ]
1065
- }
1119
+ orders__customer_id: null,
1120
+ customer_id: null,
1121
+ order_amount: 100,
1122
+ order_date: '2024-07-01T00:00:00.000Z',
1123
+ order_id: 12,
1124
+ orders__order_date: undefined,
1125
+ orders__product_id: '3',
1126
+ product_id: '3',
1127
+ vendors: [
1128
+ 'flipkart'
1066
1129
  ]
1067
1130
  }
1068
- ],
1069
- dimensions: []
1070
- },
1071
- expectedOutput: [
1072
- {
1073
- "orders__customer_id": null,
1074
- "customer_id": null,
1075
- "order_amount": 100,
1076
- "order_date": "2024-07-01T00:00:00.000Z",
1077
- "order_id": 12,
1078
- "orders__order_date": undefined,
1079
- "orders__product_id": "3",
1080
- "product_id": "3",
1081
- "vendors": [
1082
- "flipkart"
1083
- ]
1084
- }
1085
- ]
1086
- },
1087
- {
1088
- testName: 'In',
1089
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IN ('1', '2')) AND (orders__vendors && (ARRAY['myntra', 'amazon'])))`,
1090
- cubeInput: {
1091
- measures: [
1092
- '*'
1093
- ],
1094
- filters: [
1131
+ ]
1132
+ }
1133
+ ],
1134
+ [
1135
+ {
1136
+ testName: 'In',
1137
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id IN ('1', '2')) AND (orders__vendors && (ARRAY['myntra', 'amazon'])))`,
1138
+ cubeInput: {
1139
+ measures: [
1140
+ '*'
1141
+ ],
1142
+ filters: [
1143
+ {
1144
+ and: [
1145
+ {
1146
+ member: 'orders.customer_id',
1147
+ operator: 'in',
1148
+ values: [
1149
+ '1',
1150
+ '2'
1151
+ ]
1152
+ },
1153
+ {
1154
+ member: 'orders.vendors',
1155
+ operator: 'in',
1156
+ values: [
1157
+ 'myntra',
1158
+ 'amazon'
1159
+ ]
1160
+ }
1161
+ ]
1162
+ }
1163
+ ],
1164
+ dimensions: []
1165
+ },
1166
+ expectedOutput: [
1095
1167
  {
1096
- and: [
1097
- {
1098
- member: 'orders.customer_id',
1099
- operator: 'in',
1100
- values: [
1101
- '1',
1102
- '2'
1103
- ]
1104
- },
1105
- {
1106
- member: 'orders.vendors',
1107
- operator: 'in',
1108
- values: [
1109
- 'myntra',
1110
- 'amazon'
1111
- ]
1112
- }
1168
+ customer_id: '1',
1169
+ order_amount: 50,
1170
+ order_date: '2022-01-01T00:00:00.000Z',
1171
+ order_id: 1,
1172
+ orders__customer_id: '1',
1173
+ orders__order_date: undefined,
1174
+ orders__vendors: [
1175
+ 'myntra',
1176
+ 'amazon',
1177
+ 'flipkart'
1178
+ ],
1179
+ product_id: '1',
1180
+ vendors: [
1181
+ 'myntra',
1182
+ 'amazon',
1183
+ 'flipkart'
1184
+ ]
1185
+ },
1186
+ {
1187
+ customer_id: '1',
1188
+ order_amount: 80,
1189
+ order_date: '2022-01-02T00:00:00.000Z',
1190
+ order_id: 2,
1191
+ orders__customer_id: '1',
1192
+ orders__order_date: undefined,
1193
+ orders__vendors: [
1194
+ 'myntra'
1195
+ ],
1196
+ product_id: '2',
1197
+ vendors: [
1198
+ 'myntra'
1113
1199
  ]
1114
1200
  }
1115
- ],
1116
- dimensions: []
1117
- },
1118
- expectedOutput: [
1119
- {
1120
- customer_id: "1",
1121
- order_amount: 50,
1122
- order_date: "2022-01-01T00:00:00.000Z",
1123
- order_id: 1,
1124
- orders__customer_id: "1",
1125
- orders__order_date: undefined,
1126
- orders__vendors: [
1127
- "myntra",
1128
- "amazon",
1129
- "flipkart"
1201
+ ]
1202
+ }
1203
+ ],
1204
+ [
1205
+ {
1206
+ testName: 'Not In',
1207
+ expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id NOT IN ('1', '2')) AND (NOT (orders__vendors && (ARRAY['myntra', 'flipkart']))))`,
1208
+ cubeInput: {
1209
+ measures: [
1210
+ '*'
1130
1211
  ],
1131
- product_id: "1",
1132
- vendors: [
1133
- "myntra",
1134
- "amazon",
1135
- "flipkart"
1136
- ]
1137
- },
1138
- {
1139
- customer_id: "1",
1140
- order_amount: 80,
1141
- order_date: "2022-01-02T00:00:00.000Z",
1142
- order_id: 2,
1143
- orders__customer_id: "1",
1144
- orders__order_date: undefined,
1145
- orders__vendors: [
1146
- "myntra"
1212
+ filters: [
1213
+ {
1214
+ and: [
1215
+ {
1216
+ member: 'orders.customer_id',
1217
+ operator: 'notIn',
1218
+ values: [
1219
+ '1',
1220
+ '2'
1221
+ ]
1222
+ },
1223
+ {
1224
+ member: 'orders.vendors',
1225
+ operator: 'notIn',
1226
+ values: [
1227
+ 'myntra',
1228
+ 'flipkart'
1229
+ ]
1230
+ }
1231
+ ]
1232
+ }
1147
1233
  ],
1148
- product_id: "2",
1149
- vendors: [
1150
- "myntra"
1151
- ]
1152
- }
1153
- ]
1154
- },
1155
- {
1156
- testName: 'Not In',
1157
- expectedSQL: `SELECT orders.* FROM (SELECT *, customer_id AS orders__customer_id, vendors AS orders__vendors FROM (select * from orders) AS orders) AS orders WHERE ((orders__customer_id NOT IN ('1', '2')) AND (NOT (orders__vendors && (ARRAY['myntra', 'flipkart']))))`,
1158
- cubeInput: {
1159
- measures: [
1160
- '*'
1161
- ],
1162
- filters: [
1234
+ dimensions: []
1235
+ },
1236
+ expectedOutput: [
1237
+ {
1238
+ customer_id: '4',
1239
+ order_amount: 45,
1240
+ order_date: '2022-04-01T00:00:00.000Z',
1241
+ order_id: 6,
1242
+ orders__customer_id: '4',
1243
+ orders__order_date: undefined,
1244
+ orders__vendors: [],
1245
+ product_id: '2',
1246
+ vendors: []
1247
+ },
1248
+ {
1249
+ customer_id: '5',
1250
+ order_amount: 85,
1251
+ order_date: '2022-05-05T00:00:00.000Z',
1252
+ order_id: 9,
1253
+ orders__customer_id: '5',
1254
+ orders__order_date: undefined,
1255
+ orders__vendors: [],
1256
+ product_id: '2',
1257
+ vendors: []
1258
+ },
1163
1259
  {
1164
- and: [
1165
- {
1166
- member: 'orders.customer_id',
1167
- operator: 'notIn',
1168
- values: [
1169
- '1',
1170
- '2'
1171
- ]
1172
- },
1173
- {
1174
- member: 'orders.vendors',
1175
- operator: 'notIn',
1176
- values: [
1177
- 'myntra',
1178
- 'flipkart'
1179
- ]
1180
- }
1260
+ customer_id: '6aa6',
1261
+ order_amount: 0,
1262
+ order_date: '2024-06-01T00:00:00.000Z',
1263
+ order_id: 11,
1264
+ orders__customer_id: '6aa6',
1265
+ orders__order_date: undefined,
1266
+ orders__vendors: [
1267
+ 'amazon'
1268
+ ],
1269
+ product_id: '3',
1270
+ vendors: [
1271
+ 'amazon'
1181
1272
  ]
1182
1273
  }
1183
- ],
1184
- dimensions: []
1185
- },
1186
- expectedOutput: [
1187
- {
1188
- "customer_id": "4",
1189
- "order_amount": 45,
1190
- "order_date": "2022-04-01T00:00:00.000Z",
1191
- "order_id": 6,
1192
- "orders__customer_id": "4",
1193
- "orders__order_date": undefined,
1194
- "orders__vendors": [],
1195
- "product_id": "2",
1196
- "vendors": []
1197
- },
1198
- {
1199
- "customer_id": "5",
1200
- "order_amount": 85,
1201
- "order_date": "2022-05-05T00:00:00.000Z",
1202
- "order_id": 9,
1203
- "orders__customer_id": "5",
1204
- "orders__order_date": undefined,
1205
- "orders__vendors": [],
1206
- "product_id": "2",
1207
- "vendors": []
1208
- },
1209
- {
1210
- "customer_id": "6aa6",
1211
- "order_amount": 0,
1212
- "order_date": "2024-06-01T00:00:00.000Z",
1213
- "order_id": 11,
1214
- "orders__customer_id": "6aa6",
1215
- "orders__order_date": undefined,
1216
- "orders__vendors": [
1217
- "amazon"
1218
- ],
1219
- "product_id": "3",
1220
- "vendors": [
1221
- "amazon"
1222
- ]
1223
- }
1224
- ]
1225
- }
1274
+ ]
1275
+ }
1276
+ ]
1226
1277
  ];
1227
1278
 
1228
1279
  //# sourceMappingURL=test-data.js.map