@quillsql/react 2.12.30 → 2.12.32
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/dist/cjs/Chart.d.ts +6 -37
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +86 -327
- package/dist/cjs/ChartBuilder.d.ts +12 -49
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +68 -36
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -7
- package/dist/cjs/Context.d.ts +4 -1
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +10 -4
- package/dist/cjs/Dashboard.d.ts +61 -114
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +261 -30
- package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/DateRangePicker.js +0 -26
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +62 -97
- package/dist/cjs/SQLEditor.d.ts +2 -2
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +10 -5
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +41 -43
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +12 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +25 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +7 -7
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +64 -28
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +11 -45
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +1 -30
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +16 -1
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +4 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +10 -2
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +94 -70
- package/dist/cjs/components/ReportBuilder/convert.d.ts +7 -2
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +53 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +6 -6
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +6 -22
- package/dist/cjs/components/UiComponents.d.ts +26 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +97 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +19 -3
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -0
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/models/Columns.d.ts +2 -1
- package/dist/cjs/models/Columns.d.ts.map +1 -1
- package/dist/cjs/models/Filter.d.ts +15 -4
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +9 -1
- package/dist/cjs/models/Report.d.ts +10 -23
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +37 -2
- package/dist/cjs/utils/columnProcessing.d.ts +2 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +54 -1
- package/dist/cjs/utils/dashboard.d.ts +1 -1
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +3 -56
- package/dist/cjs/utils/dataProcessing.d.ts +4 -2
- package/dist/cjs/utils/dataProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/dataProcessing.js +18 -1
- package/dist/cjs/utils/dates.d.ts +2 -1
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +23 -1
- package/dist/cjs/utils/filterProcessing.d.ts +7 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +100 -13
- package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +7 -1
- package/dist/cjs/utils/report.d.ts +4 -1
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +94 -7
- package/dist/cjs/utils/tableProcessing.d.ts +1 -1
- package/dist/esm/Chart.d.ts +6 -37
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +87 -329
- package/dist/esm/ChartBuilder.d.ts +12 -49
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +68 -33
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +11 -7
- package/dist/esm/Context.d.ts +4 -1
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +9 -3
- package/dist/esm/Dashboard.d.ts +61 -114
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +263 -32
- package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/DateRangePicker.js +0 -26
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +64 -99
- package/dist/esm/SQLEditor.d.ts +2 -2
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +11 -6
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +42 -44
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +13 -2
- package/dist/esm/components/Chart/LineChart.d.ts +2 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +26 -2
- package/dist/esm/components/Dashboard/DataLoader.d.ts +7 -7
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +65 -29
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +11 -45
- package/dist/esm/components/Dashboard/TableComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +1 -30
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +16 -1
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +5 -2
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +10 -2
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +94 -70
- package/dist/esm/components/ReportBuilder/convert.d.ts +7 -2
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +51 -0
- package/dist/esm/components/ReportBuilder/ui.d.ts +6 -6
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +6 -22
- package/dist/esm/components/UiComponents.d.ts +26 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +95 -3
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +19 -3
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -0
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/models/Columns.d.ts +2 -1
- package/dist/esm/models/Columns.d.ts.map +1 -1
- package/dist/esm/models/Filter.d.ts +15 -4
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +8 -0
- package/dist/esm/models/Report.d.ts +10 -23
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +38 -3
- package/dist/esm/utils/columnProcessing.d.ts +2 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +52 -0
- package/dist/esm/utils/dashboard.d.ts +1 -1
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +3 -56
- package/dist/esm/utils/dataProcessing.d.ts +4 -2
- package/dist/esm/utils/dataProcessing.d.ts.map +1 -1
- package/dist/esm/utils/dataProcessing.js +16 -0
- package/dist/esm/utils/dates.d.ts +2 -1
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +21 -0
- package/dist/esm/utils/filterProcessing.d.ts +7 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +97 -12
- package/dist/esm/utils/pivotConstructor.d.ts +2 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +7 -1
- package/dist/esm/utils/report.d.ts +4 -1
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +92 -6
- package/dist/esm/utils/tableProcessing.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/components/ReportBuilder/convert.uspec.d.ts +0 -2
- package/dist/esm/components/ReportBuilder/convert.uspec.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/convert.uspec.js +0 -1152
- package/dist/esm/utils/astFilterProcessing.uspec.d.ts +0 -2
- package/dist/esm/utils/astFilterProcessing.uspec.d.ts.map +0 -1
- package/dist/esm/utils/astFilterProcessing.uspec.js +0 -2729
- package/dist/esm/utils/dataProcessing.uspec.d.ts +0 -2
- package/dist/esm/utils/dataProcessing.uspec.d.ts.map +0 -1
- package/dist/esm/utils/dataProcessing.uspec.js +0 -204
- package/dist/esm/utils/queryConstructor.uspec.d.ts +0 -2
- package/dist/esm/utils/queryConstructor.uspec.d.ts.map +0 -1
- package/dist/esm/utils/queryConstructor.uspec.js +0 -223
- package/dist/esm/utils/report.ispec.d.ts +0 -2
- package/dist/esm/utils/report.ispec.d.ts.map +0 -1
- package/dist/esm/utils/report.ispec.js +0 -46
- package/dist/esm/utils/tableProcessing.ispec.d.ts +0 -2
- package/dist/esm/utils/tableProcessing.ispec.d.ts.map +0 -1
- package/dist/esm/utils/tableProcessing.ispec.js +0 -61
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataProcessing.uspec.d.ts","sourceRoot":"","sources":["../../../src/utils/dataProcessing.uspec.ts"],"names":[],"mappings":""}
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
import { getPointToPointPercentageChange, getSimplePercentageChange, } from './dataProcessing';
|
|
2
|
-
const defaultReport = {
|
|
3
|
-
id: 'dummy',
|
|
4
|
-
name: 'dummy',
|
|
5
|
-
dashboardName: 'dummy',
|
|
6
|
-
chartType: 'dummy',
|
|
7
|
-
dateField: null,
|
|
8
|
-
columns: [],
|
|
9
|
-
filtersApplied: [],
|
|
10
|
-
order: 0,
|
|
11
|
-
queryString: 'dummy',
|
|
12
|
-
compareRows: [{ amount: '20' }, { amount: '20' }],
|
|
13
|
-
pivot: null,
|
|
14
|
-
rows: [
|
|
15
|
-
{ amount: '40', created_at: '2024-06-01' },
|
|
16
|
-
{ amount: '20', created_at: '2024-07-02' },
|
|
17
|
-
],
|
|
18
|
-
xAxisField: 'date',
|
|
19
|
-
xAxisFormat: 'string',
|
|
20
|
-
xAxisLabel: 'Date',
|
|
21
|
-
yAxisFields: [{ field: 'amount', label: 'Amount', format: 'string' }],
|
|
22
|
-
};
|
|
23
|
-
describe('getSimplePercentageChange', () => {
|
|
24
|
-
it('should get the simple percentage without a pivot', () => {
|
|
25
|
-
const result = getSimplePercentageChange(defaultReport);
|
|
26
|
-
expect(result).toEqual(0.5);
|
|
27
|
-
});
|
|
28
|
-
it('should get the simple percentage with 1D pivot', () => {
|
|
29
|
-
const report = {
|
|
30
|
-
...defaultReport,
|
|
31
|
-
pivot: {
|
|
32
|
-
title: 'dummy',
|
|
33
|
-
aggregationType: 'sum',
|
|
34
|
-
rowField: 'merchant',
|
|
35
|
-
rowFieldType: 'dummy',
|
|
36
|
-
columnField: 'dummy',
|
|
37
|
-
columnFieldType: 'dummy',
|
|
38
|
-
valueField: 'amount',
|
|
39
|
-
valueFieldType: 'number',
|
|
40
|
-
},
|
|
41
|
-
pivotRows: [
|
|
42
|
-
{ merchant: 'dummy-merchant', amount: 15, comparison_amount: 10 },
|
|
43
|
-
],
|
|
44
|
-
pivotColumns: [
|
|
45
|
-
{ field: 'comparison_amount', label: 'Amount', format: 'string' },
|
|
46
|
-
{ field: 'amount', label: 'Amount', format: 'string' },
|
|
47
|
-
{ field: 'merchant', label: 'Merchant', format: 'string' },
|
|
48
|
-
],
|
|
49
|
-
};
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
const result = getSimplePercentageChange(report);
|
|
52
|
-
expect(result).toEqual(0.5);
|
|
53
|
-
});
|
|
54
|
-
it('should get the simple percentage with 1D pivot', () => {
|
|
55
|
-
const report = {
|
|
56
|
-
...defaultReport,
|
|
57
|
-
pivot: {
|
|
58
|
-
title: 'dummy',
|
|
59
|
-
aggregationType: 'sum',
|
|
60
|
-
rowField: 'merchant',
|
|
61
|
-
rowFieldType: 'string',
|
|
62
|
-
columnField: 'user_name',
|
|
63
|
-
columnFieldType: 'string',
|
|
64
|
-
valueField: 'amount',
|
|
65
|
-
valueFieldType: 'number',
|
|
66
|
-
},
|
|
67
|
-
pivotRows: [{ dummy: 'subway', subway: 15, comparison_subway: 10 }],
|
|
68
|
-
pivotColumns: [
|
|
69
|
-
{ label: 'dummy', field: 'user_name' },
|
|
70
|
-
{ label: 'subway', field: 'subway' },
|
|
71
|
-
{ label: 'comparison_subway', field: 'comparison_subway' },
|
|
72
|
-
],
|
|
73
|
-
};
|
|
74
|
-
// @ts-ignore
|
|
75
|
-
const result = getSimplePercentageChange(report);
|
|
76
|
-
expect(result).toEqual(0.5);
|
|
77
|
-
});
|
|
78
|
-
it('should fallback to point to point', () => {
|
|
79
|
-
const report = {
|
|
80
|
-
...defaultReport,
|
|
81
|
-
compareRows: null,
|
|
82
|
-
pivot: {
|
|
83
|
-
title: 'dummy',
|
|
84
|
-
aggregationType: 'sum',
|
|
85
|
-
rowField: 'merchant',
|
|
86
|
-
rowFieldType: 'string',
|
|
87
|
-
columnField: 'user_name',
|
|
88
|
-
columnFieldType: 'string',
|
|
89
|
-
valueField: 'amount',
|
|
90
|
-
valueFieldType: 'number',
|
|
91
|
-
},
|
|
92
|
-
dateField: { table: 'table', field: 'created_at' },
|
|
93
|
-
pivotRows: [{ dummy: 'subway', subway: 15, comparison_subway: 10 }],
|
|
94
|
-
pivotColumns: [
|
|
95
|
-
{ label: 'dummy', field: 'user_name' },
|
|
96
|
-
{ label: 'subway', field: 'subway' },
|
|
97
|
-
{ label: 'comparison_subway', field: 'comparison_subway' },
|
|
98
|
-
],
|
|
99
|
-
};
|
|
100
|
-
//@ts-ignore
|
|
101
|
-
const result = getSimplePercentageChange(report);
|
|
102
|
-
expect(result).toEqual(-1);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
describe('getPointToPointPercentageChange', () => {
|
|
106
|
-
it('should get the point to point percentage change', () => {
|
|
107
|
-
const report = {
|
|
108
|
-
...defaultReport,
|
|
109
|
-
compareRows: [],
|
|
110
|
-
dateField: { table: 'table', field: 'created_at' },
|
|
111
|
-
};
|
|
112
|
-
const result = getPointToPointPercentageChange(report);
|
|
113
|
-
expect(result).toEqual(-1);
|
|
114
|
-
});
|
|
115
|
-
it('should work with 1d date pivots', () => {
|
|
116
|
-
const report = {
|
|
117
|
-
...defaultReport,
|
|
118
|
-
compareRows: [],
|
|
119
|
-
dateField: { table: 'table', field: 'created_at' },
|
|
120
|
-
pivot: {
|
|
121
|
-
title: 'dummy',
|
|
122
|
-
aggregationType: 'sum',
|
|
123
|
-
rowField: 'created_at',
|
|
124
|
-
rowFieldType: 'date',
|
|
125
|
-
columnField: 'user_name',
|
|
126
|
-
columnFieldType: 'string',
|
|
127
|
-
valueField: 'amount',
|
|
128
|
-
valueFieldType: 'number',
|
|
129
|
-
},
|
|
130
|
-
pivotRows: [
|
|
131
|
-
{ created_at: '2024-01-01', amount: '20' },
|
|
132
|
-
{ created_at: '2024-02-01', amount: '30' },
|
|
133
|
-
],
|
|
134
|
-
pivotColumns: [
|
|
135
|
-
{ label: 'created_at', field: 'created_at' },
|
|
136
|
-
{ label: 'amount', field: 'amount' },
|
|
137
|
-
],
|
|
138
|
-
};
|
|
139
|
-
// @ts-ignore
|
|
140
|
-
const result = getPointToPointPercentageChange(report);
|
|
141
|
-
expect(result).toEqual(0.5);
|
|
142
|
-
});
|
|
143
|
-
it('should only use the first and last buckets', () => {
|
|
144
|
-
const report = {
|
|
145
|
-
...defaultReport,
|
|
146
|
-
compareRows: [],
|
|
147
|
-
dateField: { table: 'table', field: 'created_at' },
|
|
148
|
-
pivot: {
|
|
149
|
-
title: 'dummy',
|
|
150
|
-
aggregationType: 'sum',
|
|
151
|
-
rowField: 'created_at',
|
|
152
|
-
rowFieldType: 'date',
|
|
153
|
-
columnField: 'user_name',
|
|
154
|
-
columnFieldType: 'string',
|
|
155
|
-
valueField: 'amount',
|
|
156
|
-
valueFieldType: 'number',
|
|
157
|
-
},
|
|
158
|
-
pivotRows: [
|
|
159
|
-
{ created_at: '2024-01-01', amount: '20' },
|
|
160
|
-
{ created_at: '2024-02-01', amount: '20' },
|
|
161
|
-
{ created_at: '2024-03-01', amount: '30' },
|
|
162
|
-
{ created_at: '2024-05-01', amount: '40' },
|
|
163
|
-
],
|
|
164
|
-
pivotColumns: [
|
|
165
|
-
{ label: 'created_at', field: 'created_at' },
|
|
166
|
-
{ label: 'amount', field: 'amount' },
|
|
167
|
-
],
|
|
168
|
-
};
|
|
169
|
-
// @ts-ignore
|
|
170
|
-
const result = getPointToPointPercentageChange(report);
|
|
171
|
-
expect(result).toEqual(1);
|
|
172
|
-
});
|
|
173
|
-
it('should work with 2d pivots', () => {
|
|
174
|
-
const report = {
|
|
175
|
-
...defaultReport,
|
|
176
|
-
compareRows: [],
|
|
177
|
-
dateField: { table: 'table', field: 'created_at' },
|
|
178
|
-
pivot: {
|
|
179
|
-
title: 'dummy',
|
|
180
|
-
aggregationType: 'sum',
|
|
181
|
-
rowField: 'created_at',
|
|
182
|
-
rowFieldType: 'date',
|
|
183
|
-
columnField: 'user_name',
|
|
184
|
-
columnFieldType: 'string',
|
|
185
|
-
valueField: 'amount',
|
|
186
|
-
valueFieldType: 'number',
|
|
187
|
-
},
|
|
188
|
-
pivotRows: [
|
|
189
|
-
{ created_at: '2024-01-01', subway: '20', mcdonalds: '30' },
|
|
190
|
-
{ created_at: '2024-02-01', subway: '20', mcdonalds: '30' },
|
|
191
|
-
{ created_at: '2024-03-01', subway: '30', mcdonalds: '30' },
|
|
192
|
-
{ created_at: '2024-04-01', subway: '50', mcdonalds: '100' },
|
|
193
|
-
],
|
|
194
|
-
pivotColumns: [
|
|
195
|
-
{ label: 'created_at', field: 'created_at' },
|
|
196
|
-
{ label: 'subway', field: 'subway' },
|
|
197
|
-
{ label: 'mcdonalds', field: 'mcdonalds' },
|
|
198
|
-
],
|
|
199
|
-
};
|
|
200
|
-
// @ts-ignore
|
|
201
|
-
const result = getPointToPointPercentageChange(report);
|
|
202
|
-
expect(result).toEqual(2);
|
|
203
|
-
});
|
|
204
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryConstructor.uspec.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.uspec.ts"],"names":[],"mappings":""}
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import { generatePivotQuery } from './queryConstructor';
|
|
2
|
-
const removeExtraSpacesAndNewLines = (str) => {
|
|
3
|
-
return str.replace(/\s+/g, ' ').trim();
|
|
4
|
-
};
|
|
5
|
-
describe('queryConstructor', () => {
|
|
6
|
-
const default2DPivot = {
|
|
7
|
-
rowField: 'merchant',
|
|
8
|
-
rowFieldType: 'string',
|
|
9
|
-
columnField: 'user',
|
|
10
|
-
valueField: 'amount',
|
|
11
|
-
aggregationType: 'sum',
|
|
12
|
-
};
|
|
13
|
-
const nonComparisonQuery = ['select * from transactions'];
|
|
14
|
-
const comparisonQueries = [
|
|
15
|
-
`select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'`,
|
|
16
|
-
`select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01'`,
|
|
17
|
-
];
|
|
18
|
-
describe('bigquery - generatePivotQuery', () => {
|
|
19
|
-
const databaseType = 'bigquery';
|
|
20
|
-
it('should return a 2d string pivot query', async () => {
|
|
21
|
-
const query = generatePivotQuery(default2DPivot, nonComparisonQuery, databaseType, undefined, ['value1', 'value2']);
|
|
22
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
23
|
-
quill_qt_cw AS (SELECT \`merchant\`,
|
|
24
|
-
sum(CASE WHEN \`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`value1\`,
|
|
25
|
-
sum(CASE WHEN \`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`value2\`
|
|
26
|
-
FROM quill_qt GROUP BY \`merchant\`)
|
|
27
|
-
SELECT * FROM quill_qt_cw qt`;
|
|
28
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
29
|
-
});
|
|
30
|
-
it('should return a 2d date pivot query', async () => {
|
|
31
|
-
const query = generatePivotQuery({
|
|
32
|
-
...default2DPivot,
|
|
33
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
34
|
-
rowField: 'created_at',
|
|
35
|
-
}, nonComparisonQuery, databaseType, undefined, ['value1', 'value2']);
|
|
36
|
-
const expected = `WITH quill_query_table AS (select * from transactions),
|
|
37
|
-
quill_qt_agg as (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`created_at\`,
|
|
38
|
-
sum(CASE WHEN qt.\`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`value1\`,
|
|
39
|
-
sum(CASE WHEN qt.\`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`value2\` FROM quill_query_table qt
|
|
40
|
-
GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month))
|
|
41
|
-
SELECT * FROM quill_qt_agg qt ORDER BY qt.\`created_at\``;
|
|
42
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
43
|
-
});
|
|
44
|
-
it('should return a 1d date pivot query', async () => {
|
|
45
|
-
const query = generatePivotQuery({
|
|
46
|
-
...default2DPivot,
|
|
47
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
48
|
-
rowField: 'created_at',
|
|
49
|
-
columnField: undefined,
|
|
50
|
-
}, nonComparisonQuery, databaseType, undefined);
|
|
51
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
52
|
-
quill_qt_agg AS (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`created_at\`,
|
|
53
|
-
sum(\`amount\`) as \`amount\` FROM quill_qt GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month))
|
|
54
|
-
SELECT * FROM quill_qt_agg qt ORDER BY qt.\`created_at\``;
|
|
55
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
56
|
-
});
|
|
57
|
-
it('should return a 1d string pivot query', async () => {
|
|
58
|
-
const query = generatePivotQuery({ ...default2DPivot, columnField: undefined }, nonComparisonQuery, databaseType, undefined);
|
|
59
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
60
|
-
quill_qt_cw AS (SELECT \`merchant\`, sum(\`amount\`) as \`amount\`
|
|
61
|
-
FROM quill_qt GROUP BY \`merchant\`)
|
|
62
|
-
SELECT * FROM quill_qt_cw qt`;
|
|
63
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
64
|
-
});
|
|
65
|
-
it('should return a value aggregation query', async () => {
|
|
66
|
-
const query = generatePivotQuery(
|
|
67
|
-
// @ts-ignore
|
|
68
|
-
{ ...default2DPivot, columnField: undefined, rowField: undefined }, nonComparisonQuery, databaseType, undefined);
|
|
69
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
70
|
-
quill_qt_agg AS (SELECT sum(\`amount\`) as \`amount\` FROM quill_qt) SELECT * FROM quill_qt_agg qt`;
|
|
71
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
72
|
-
});
|
|
73
|
-
it('should return a 2d string pivot query with comparison', async () => {
|
|
74
|
-
const query = generatePivotQuery(default2DPivot, comparisonQueries, databaseType, undefined, ['value1', 'value2']);
|
|
75
|
-
const expected = `WITH quill_qt AS
|
|
76
|
-
(select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
77
|
-
quill_qt_cw AS (SELECT \`merchant\`,
|
|
78
|
-
sum(CASE WHEN \`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`value1\`,
|
|
79
|
-
sum(CASE WHEN \`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`value2\` FROM quill_qt GROUP BY \`merchant\`) ,
|
|
80
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
81
|
-
quill_ct_cw as (SELECT \`merchant\` as \`comparison_merchant\`,
|
|
82
|
-
sum(CASE WHEN \`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`comparison_value1\`,
|
|
83
|
-
sum(CASE WHEN \`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`comparison_value2\` FROM quill_ct GROUP BY \`merchant\`)
|
|
84
|
-
SELECT * FROM quill_qt_cw qt JOIN quill_ct_cw ct ON ct.\`comparison_merchant\` = qt.\`merchant\``;
|
|
85
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
86
|
-
});
|
|
87
|
-
it('should return a 2d date pivot query with comparison', async () => {
|
|
88
|
-
const query = generatePivotQuery({
|
|
89
|
-
...default2DPivot,
|
|
90
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
91
|
-
rowField: 'created_at',
|
|
92
|
-
}, comparisonQueries, databaseType, '90', ['value1', 'value2']);
|
|
93
|
-
const expected = `WITH quill_query_table AS (select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
94
|
-
quill_qt_agg as (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`created_at\`,
|
|
95
|
-
sum(CASE WHEN qt.\`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`value1\`,
|
|
96
|
-
sum(CASE WHEN qt.\`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`value2\`
|
|
97
|
-
FROM quill_query_table qt GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month)) ,
|
|
98
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
99
|
-
quill_ct_cw as (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`comparison_created_at\`,
|
|
100
|
-
sum(CASE WHEN \`user\` = 'value1' THEN \`amount\` ELSE 0 END) AS \`comparison_value1\`,
|
|
101
|
-
sum(CASE WHEN \`user\` = 'value2' THEN \`amount\` ELSE 0 END) AS \`comparison_value2\`
|
|
102
|
-
FROM quill_ct GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month))
|
|
103
|
-
SELECT * FROM quill_qt_agg qt
|
|
104
|
-
LEFT JOIN quill_ct_cw \`ct\` ON qt.\`created_at\` = TIMESTAMP_TRUNC(TIMESTAMP_ADD(\`ct\`.\`comparison_created_at\`, INTERVAL 90 ), month)
|
|
105
|
-
ORDER BY qt.\`created_at\``;
|
|
106
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
107
|
-
});
|
|
108
|
-
it('should return a 1d date pivot query with comparison', async () => {
|
|
109
|
-
const query = generatePivotQuery({
|
|
110
|
-
...default2DPivot,
|
|
111
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
112
|
-
rowField: 'created_at',
|
|
113
|
-
columnField: undefined,
|
|
114
|
-
}, comparisonQueries, databaseType, '3 month');
|
|
115
|
-
const expected = `WITH quill_qt AS (select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
116
|
-
quill_qt_agg AS (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`created_at\`,
|
|
117
|
-
sum(\`amount\`) as \`amount\` FROM quill_qt GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month)) ,
|
|
118
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
119
|
-
quill_ct_cw as (SELECT TIMESTAMP_TRUNC(\`created_at\`, month) as \`comparison_created_at\`,
|
|
120
|
-
sum(\`amount\`) as \`comparison_amount\` FROM quill_ct GROUP BY TIMESTAMP_TRUNC(\`created_at\`, month))
|
|
121
|
-
SELECT * FROM quill_qt_agg qt LEFT JOIN quill_ct_cw \`ct\` ON qt.\`created_at\` = TIMESTAMP_TRUNC(TIMESTAMP_ADD(\`ct\`.\`comparison_created_at\`, INTERVAL 3 month ), month)
|
|
122
|
-
ORDER BY qt.\`created_at\``;
|
|
123
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
124
|
-
});
|
|
125
|
-
it('should return a 1d string pivot query with comparison', async () => {
|
|
126
|
-
const query = generatePivotQuery({ ...default2DPivot, columnField: undefined }, comparisonQueries, databaseType, undefined);
|
|
127
|
-
const expected = `WITH quill_qt AS (select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
128
|
-
quill_qt_cw AS (SELECT \`merchant\`, sum(\`amount\`) as \`amount\` FROM quill_qt GROUP BY \`merchant\`) ,
|
|
129
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
130
|
-
quill_ct_cw as (SELECT \`merchant\` as \`comparison_merchant\`, sum(\`amount\`) as \`comparison_amount\` FROM quill_ct GROUP BY \`merchant\`)
|
|
131
|
-
SELECT * FROM quill_qt_cw qt JOIN quill_ct_cw ct ON ct.\`comparison_merchant\` = qt.\`merchant\``;
|
|
132
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
133
|
-
});
|
|
134
|
-
it('should return a value aggregation query', async () => {
|
|
135
|
-
const query = generatePivotQuery(
|
|
136
|
-
// @ts-ignore
|
|
137
|
-
{ ...default2DPivot, columnField: undefined, rowField: undefined }, comparisonQueries, databaseType, undefined);
|
|
138
|
-
const expected = `WITH quill_qt AS (select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
139
|
-
quill_qt_agg AS (SELECT sum(\`amount\`) as \`amount\` FROM quill_qt) ,
|
|
140
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
141
|
-
quill_ct_cw as (SELECT sum(\`amount\`) as \`comparison_amount\` FROM quill_ct)
|
|
142
|
-
SELECT * FROM quill_qt_agg qt CROSS JOIN quill_ct_cw ct`;
|
|
143
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
describe('postgresql - generatePivotQuery', () => {
|
|
147
|
-
const databaseType = 'postgresql';
|
|
148
|
-
it('should return a 2d string pivot query', async () => {
|
|
149
|
-
const query = generatePivotQuery(default2DPivot, ['select * from transactions'], databaseType, undefined, ['value1', 'value2']);
|
|
150
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
151
|
-
quill_qt_cw AS
|
|
152
|
-
(SELECT "merchant", sum(CASE WHEN "user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
|
|
153
|
-
sum(CASE WHEN "user" = 'value2' THEN "amount" ELSE 0 END) AS "value2" FROM quill_qt GROUP BY "merchant")
|
|
154
|
-
SELECT * FROM quill_qt_cw qt`;
|
|
155
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
156
|
-
});
|
|
157
|
-
it('should return a 2d date pivot query', async () => {
|
|
158
|
-
const query = generatePivotQuery({
|
|
159
|
-
...default2DPivot,
|
|
160
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
161
|
-
rowField: 'created_at',
|
|
162
|
-
}, ['select * from transactions'], databaseType, undefined, ['value1', 'value2']);
|
|
163
|
-
const expected = `WITH quill_query_table AS (select * from transactions),
|
|
164
|
-
quill_qt_agg as (SELECT date_trunc('month', "created_at") as "created_at",
|
|
165
|
-
sum(CASE WHEN qt."user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
|
|
166
|
-
sum(CASE WHEN qt."user" = 'value2' THEN "amount" ELSE 0 END) AS "value2"
|
|
167
|
-
FROM quill_query_table qt
|
|
168
|
-
GROUP BY date_trunc('month', "created_at"))
|
|
169
|
-
SELECT * FROM quill_qt_agg qt ORDER BY qt."created_at"`;
|
|
170
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
171
|
-
});
|
|
172
|
-
it('should return a 1d date pivot query', async () => {
|
|
173
|
-
const query = generatePivotQuery({
|
|
174
|
-
...default2DPivot,
|
|
175
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
176
|
-
rowField: 'created_at',
|
|
177
|
-
columnField: undefined,
|
|
178
|
-
}, ['select * from transactions'], databaseType, undefined);
|
|
179
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
180
|
-
quill_qt_agg AS (SELECT date_trunc('month', "created_at") as "created_at", sum("amount") as "amount"
|
|
181
|
-
FROM quill_qt
|
|
182
|
-
GROUP BY date_trunc('month', "created_at"))
|
|
183
|
-
SELECT * FROM quill_qt_agg qt ORDER BY qt."created_at"`;
|
|
184
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
185
|
-
});
|
|
186
|
-
it('should return a 1d string pivot query', async () => {
|
|
187
|
-
const query = generatePivotQuery({ ...default2DPivot, columnField: undefined }, ['select * from transactions'], databaseType, undefined);
|
|
188
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
189
|
-
quill_qt_cw AS (SELECT "merchant", sum("amount") as "amount"
|
|
190
|
-
FROM quill_qt
|
|
191
|
-
GROUP BY "merchant")
|
|
192
|
-
SELECT * FROM quill_qt_cw qt`;
|
|
193
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
194
|
-
});
|
|
195
|
-
it('should return a value aggregation query', async () => {
|
|
196
|
-
const query = generatePivotQuery(
|
|
197
|
-
// @ts-ignore
|
|
198
|
-
{ ...default2DPivot, columnField: undefined, rowField: undefined }, ['select * from transactions'], databaseType, undefined);
|
|
199
|
-
const expected = `WITH quill_qt AS (select * from transactions),
|
|
200
|
-
quill_qt_agg AS (SELECT sum("amount") as "amount" FROM quill_qt) SELECT * FROM quill_qt_agg qt`;
|
|
201
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
202
|
-
});
|
|
203
|
-
it('should return a 2d date pivot query with comparison', async () => {
|
|
204
|
-
const query = generatePivotQuery({
|
|
205
|
-
...default2DPivot,
|
|
206
|
-
rowFieldType: 'MMM_DD_YYY',
|
|
207
|
-
rowField: 'created_at',
|
|
208
|
-
}, comparisonQueries, databaseType, '90 DAY', ['value1', 'value2']);
|
|
209
|
-
const expected = `WITH quill_query_table AS
|
|
210
|
-
(select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
|
|
211
|
-
quill_qt_agg as (SELECT date_trunc('month', "created_at") as "created_at",
|
|
212
|
-
sum(CASE WHEN qt."user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
|
|
213
|
-
sum(CASE WHEN qt."user" = 'value2' THEN "amount" ELSE 0 END) AS "value2" FROM quill_query_table qt GROUP BY date_trunc('month', "created_at")) ,
|
|
214
|
-
quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
|
|
215
|
-
quill_ct_cw as (SELECT date_trunc('month', "created_at") as "comparison_created_at",
|
|
216
|
-
sum(CASE WHEN "user" = 'value1' THEN "amount" ELSE 0 END) AS "comparison_value1",
|
|
217
|
-
sum(CASE WHEN "user" = 'value2' THEN "amount" ELSE 0 END) AS "comparison_value2" FROM quill_ct GROUP BY date_trunc('month', "created_at"))
|
|
218
|
-
SELECT * FROM quill_qt_agg qt LEFT JOIN quill_ct_cw "ct" ON qt."created_at" = date_trunc('month', ("ct"."comparison_created_at" + INTERVAL '90 DAY'))
|
|
219
|
-
ORDER BY qt."created_at"`;
|
|
220
|
-
expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"report.ispec.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ispec.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,gBAqBhD"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { fetchReport } from './report';
|
|
2
|
-
const QUERY_ENDPOINT = 'https://quill-344421.uc.r.appspot.com/cloud';
|
|
3
|
-
export async function getClient(publicKey) {
|
|
4
|
-
const response = await fetch(QUERY_ENDPOINT, {
|
|
5
|
-
method: 'POST',
|
|
6
|
-
headers: {
|
|
7
|
-
'Content-Type': 'application/json',
|
|
8
|
-
},
|
|
9
|
-
body: JSON.stringify({
|
|
10
|
-
metadata: {
|
|
11
|
-
clientId: publicKey,
|
|
12
|
-
publicKey,
|
|
13
|
-
task: 'client',
|
|
14
|
-
},
|
|
15
|
-
}),
|
|
16
|
-
});
|
|
17
|
-
const result = await response.json();
|
|
18
|
-
return {
|
|
19
|
-
...result.data.client,
|
|
20
|
-
publicKey: result.data.client._id,
|
|
21
|
-
customerId: result.data.client.adminCustomerId,
|
|
22
|
-
queryEndpoint: QUERY_ENDPOINT,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
describe('report', () => {
|
|
26
|
-
let client = undefined;
|
|
27
|
-
beforeAll(async () => {
|
|
28
|
-
const publicKey = '65d65b57cdd8ae70a5648d9c';
|
|
29
|
-
client = await getClient(publicKey);
|
|
30
|
-
});
|
|
31
|
-
describe('fetchReport', () => {
|
|
32
|
-
it('should fetch report', async () => {
|
|
33
|
-
const reportId = '669167e392533d0c68bfe002';
|
|
34
|
-
const report = await fetchReport(reportId, client);
|
|
35
|
-
expect(report.report).toBeDefined();
|
|
36
|
-
expect(report.report.pivot).toBeDefined();
|
|
37
|
-
expect(report.report.rows).toBeDefined();
|
|
38
|
-
});
|
|
39
|
-
it('should fetch the broken report and return an error', async () => {
|
|
40
|
-
const reportId = '66a3d7ef28ca14000c51f498';
|
|
41
|
-
const report = await fetchReport(reportId, client);
|
|
42
|
-
expect(report.report).toBeDefined();
|
|
43
|
-
expect(report.report.error).toBeDefined();
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.ispec.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ispec.ts"],"names":[],"mappings":""}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_PAGINATION } from './paginationProcessing';
|
|
2
|
-
import { getClient } from './report.ispec';
|
|
3
|
-
import { fetchTableByQuery, fetchTableByReport } from './tableProcessing';
|
|
4
|
-
describe('tableProcessing', () => {
|
|
5
|
-
let client = undefined;
|
|
6
|
-
beforeAll(async () => {
|
|
7
|
-
const publicKey = '65d65b57cdd8ae70a5648d9c';
|
|
8
|
-
client = await getClient(publicKey);
|
|
9
|
-
});
|
|
10
|
-
describe('fetchTableByQuery', () => {
|
|
11
|
-
it('should table data with processing', async () => {
|
|
12
|
-
const query = 'select * from transactions';
|
|
13
|
-
const tableData = await fetchTableByQuery(query, client, {
|
|
14
|
-
page: DEFAULT_PAGINATION,
|
|
15
|
-
});
|
|
16
|
-
expect(tableData.rows).toBeDefined();
|
|
17
|
-
expect(tableData.rows.length).toEqual(DEFAULT_PAGINATION.rowsPerRequest);
|
|
18
|
-
expect(tableData.columns).toBeDefined();
|
|
19
|
-
expect(tableData.rowCount).toBeDefined();
|
|
20
|
-
});
|
|
21
|
-
it('should table data without prcessing info', async () => {
|
|
22
|
-
const query = 'select * from transactions';
|
|
23
|
-
const tableData = await fetchTableByQuery(query, client);
|
|
24
|
-
expect(tableData.rows).toBeDefined();
|
|
25
|
-
expect(tableData.columns).toBeDefined();
|
|
26
|
-
expect(tableData.rowCount).toBeUndefined();
|
|
27
|
-
});
|
|
28
|
-
it('should return an error message on query failu', async () => {
|
|
29
|
-
const query = 'select * from transactionss';
|
|
30
|
-
const tableData = await fetchTableByQuery(query, client, {
|
|
31
|
-
page: DEFAULT_PAGINATION,
|
|
32
|
-
});
|
|
33
|
-
expect(tableData.rows.length).toEqual(0);
|
|
34
|
-
expect(tableData.error).toBeDefined();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
describe('fetchTableByReport', () => {
|
|
38
|
-
it('should get table data with reportId', async () => {
|
|
39
|
-
const reportId = '669167e392533d0c68bfe002';
|
|
40
|
-
const tableData = await fetchTableByReport(reportId, client, {
|
|
41
|
-
page: DEFAULT_PAGINATION,
|
|
42
|
-
});
|
|
43
|
-
expect(tableData.rows).toBeDefined();
|
|
44
|
-
expect(tableData.rows.length).toEqual(DEFAULT_PAGINATION.rowsPerRequest);
|
|
45
|
-
expect(tableData.columns).toBeDefined();
|
|
46
|
-
});
|
|
47
|
-
it('should get table data without processing', async () => {
|
|
48
|
-
const reportId = '669167e392533d0c68bfe002';
|
|
49
|
-
const tableData = await fetchTableByReport(reportId, client);
|
|
50
|
-
expect(tableData.rows).toBeDefined();
|
|
51
|
-
expect(tableData.columns).toBeDefined();
|
|
52
|
-
});
|
|
53
|
-
it('should return an error on failure', async () => {
|
|
54
|
-
const reportId = 'DUMMY669167e392533d0c68bfe002';
|
|
55
|
-
const tableData = await fetchTableByReport(reportId, client);
|
|
56
|
-
expect(tableData.rows).toBeDefined();
|
|
57
|
-
expect(tableData.columns).toBeDefined();
|
|
58
|
-
expect(tableData.error).toBeDefined();
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|