@devrev/meerkat-node 0.0.75

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.
@@ -0,0 +1,1228 @@
1
+ "use strict";
2
+ function _export(target, all) {
3
+ for(var name in all)Object.defineProperty(target, name, {
4
+ enumerable: true,
5
+ get: all[name]
6
+ });
7
+ }
8
+ _export(exports, {
9
+ CREATE_TEST_TABLE: function() {
10
+ return CREATE_TEST_TABLE;
11
+ },
12
+ INPUT_DATA_QUERY: function() {
13
+ return INPUT_DATA_QUERY;
14
+ },
15
+ TABLE_SCHEMA: function() {
16
+ return TABLE_SCHEMA;
17
+ },
18
+ TEST_DATA: function() {
19
+ return TEST_DATA;
20
+ }
21
+ });
22
+ const CREATE_TEST_TABLE = `
23
+ CREATE TABLE orders (
24
+ order_id INTEGER,
25
+ customer_id VARCHAR,
26
+ product_id VARCHAR,
27
+ order_date DATE,
28
+ order_amount FLOAT,
29
+ vendors VARCHAR[]
30
+ );
31
+ `;
32
+ const INPUT_DATA_QUERY = `
33
+ INSERT INTO orders VALUES
34
+ (1, '1', '1', '2022-01-01', 50, ['myntra', 'amazon', 'flipkart']),
35
+ (2, '1', '2', '2022-01-02', 80, ['myntra']),
36
+ (3, '2', '3', '2022-02-01', 25, []),
37
+ (4, '2', '1', '2022-03-01', 75, ['flipkart']),
38
+ (5, '3', '1', '2022-03-02', 100, ['myntra', 'amazon', 'flipkart']),
39
+ (6, '4', '2', '2022-04-01', 45, []),
40
+ (7, '4', '3', '2022-05-01', 90, ['myntra', 'flipkart']),
41
+ (8, '5', '1', '2022-05-02', 65, ['amazon', 'flipkart']),
42
+ (9, '5', '2', '2022-05-05', 85, []),
43
+ (10, '6', '3', '2022-06-01', 120, ['myntra', 'amazon']),
44
+ (11, '6aa6', '3', '2024-06-01', 0, ['amazon']),
45
+ (12, NULL, '3', '2024-07-01', 100, ['flipkart']);
46
+ `;
47
+ const TABLE_SCHEMA = {
48
+ name: 'orders',
49
+ sql: 'select * from orders',
50
+ measures: [
51
+ {
52
+ name: 'order_amount',
53
+ sql: 'order_amount',
54
+ type: 'number'
55
+ },
56
+ {
57
+ name: 'total_order_amount',
58
+ sql: 'SUM(order_amount)',
59
+ type: 'number'
60
+ }
61
+ ],
62
+ dimensions: [
63
+ {
64
+ name: 'order_date',
65
+ sql: 'order_date',
66
+ type: 'time'
67
+ },
68
+ {
69
+ name: 'order_id',
70
+ sql: 'order_id',
71
+ type: 'number'
72
+ },
73
+ {
74
+ name: 'customer_id',
75
+ sql: 'customer_id',
76
+ type: 'string'
77
+ },
78
+ {
79
+ name: 'product_id',
80
+ sql: 'product_id',
81
+ type: 'string'
82
+ },
83
+ {
84
+ name: 'order_month',
85
+ sql: `DATE_TRUNC('month', order_date)`,
86
+ type: 'string'
87
+ },
88
+ {
89
+ name: 'vendors',
90
+ sql: 'vendors',
91
+ type: 'string_array'
92
+ }
93
+ ]
94
+ };
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
156
+ },
157
+ {
158
+ "orders__customer_id": "4",
159
+ "orders__total_order_amount": 135
160
+ },
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: [
175
+ {
176
+ member: 'orders.customer_id',
177
+ operator: 'equals',
178
+ values: [
179
+ '1'
180
+ ]
181
+ }
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
+ ]
198
+ },
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: [
220
+ {
221
+ member: 'orders.customer_id',
222
+ operator: 'notEquals',
223
+ values: [
224
+ '1'
225
+ ]
226
+ }
227
+ ],
228
+ dimensions: []
229
+ },
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": []
305
+ },
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
+ ]
317
+ },
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: [
339
+ {
340
+ member: 'orders.customer_id',
341
+ operator: 'contains',
342
+ values: [
343
+ 'aa'
344
+ ]
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: [
371
+ {
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
+ }
415
+ ]
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: [
443
+ {
444
+ member: 'orders.order_amount',
445
+ operator: 'gt',
446
+ values: [
447
+ '50'
448
+ ]
449
+ }
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
+ ]
533
+ },
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: [
556
+ {
557
+ member: 'orders.order_amount',
558
+ operator: 'lt',
559
+ values: [
560
+ '50'
561
+ ]
562
+ }
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": []
584
+ },
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: [
606
+ {
607
+ member: 'orders.order_date',
608
+ operator: 'inDateRange',
609
+ values: [
610
+ '2022-02-01',
611
+ '2022-03-31'
612
+ ]
613
+ }
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
+ ]
637
+ },
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: [
661
+ {
662
+ member: 'orders.order_date',
663
+ operator: 'notInDateRange',
664
+ values: [
665
+ '2022-02-01',
666
+ '2022-03-31'
667
+ ]
668
+ }
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": []
738
+ },
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
+ ]
750
+ },
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
+ ]
761
+ },
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
+ },
775
+ // {
776
+ // testName: 'Or',
777
+ // 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')))`,
778
+ // cubeInput: {
779
+ // measures: ['*'],
780
+ // filters: [
781
+ // {
782
+ // or: [
783
+ // {
784
+ // member: 'orders.order_amount',
785
+ // operator: 'gt',
786
+ // values: ['80'],
787
+ // },
788
+ // {
789
+ // member: 'orders.order_date',
790
+ // operator: 'inDateRange',
791
+ // values: ['2022-02-01', '2022-03-01'],
792
+ // },
793
+ // ],
794
+ // },
795
+ // ],
796
+ // dimensions: [],
797
+ // },
798
+ // expectedOutput: [
799
+ // {
800
+ // order_id: 3,
801
+ // customer_id: '2',
802
+ // product_id: '3',
803
+ // order_date: '2022-02-01',
804
+ // order_amount: 25.0,
805
+ // },
806
+ // {
807
+ // order_id: 4,
808
+ // customer_id: '2',
809
+ // product_id: '1',
810
+ // order_date: '2022-03-01',
811
+ // order_amount: 75.0,
812
+ // },
813
+ // {
814
+ // order_id: 5,
815
+ // customer_id: '3',
816
+ // product_id: '1',
817
+ // order_date: '2022-03-02',
818
+ // order_amount: 100.0,
819
+ // },
820
+ // {
821
+ // order_id: 7,
822
+ // customer_id: '4',
823
+ // product_id: '3',
824
+ // order_date: '2022-05-01',
825
+ // order_amount: 90.0,
826
+ // },
827
+ // {
828
+ // order_id: 9,
829
+ // customer_id: '5',
830
+ // product_id: '2',
831
+ // order_date: '2022-05-05',
832
+ // order_amount: 85.0,
833
+ // },
834
+ // {
835
+ // order_id: 10,
836
+ // customer_id: '6',
837
+ // product_id: '3',
838
+ // order_date: '2022-06-01',
839
+ // order_amount: 120.0,
840
+ // },
841
+ // ],
842
+ // },
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: [
851
+ {
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
+ }
868
+ ]
869
+ }
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": []
935
+ },
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: [
959
+ {
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
+ }
972
+ ]
973
+ }
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
+ ]
1029
+ },
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: [
1053
+ {
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
+ }
1066
+ ]
1067
+ }
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: [
1095
+ {
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
+ }
1113
+ ]
1114
+ }
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"
1130
+ ],
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"
1147
+ ],
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: [
1163
+ {
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
+ }
1181
+ ]
1182
+ }
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
+ }
1226
+ ];
1227
+
1228
+ //# sourceMappingURL=test-data.js.map