@thoughtspot/ts-chart-sdk 0.0.1-alpha.9 → 0.0.2-alpha.2
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/lib/main/custom-chart-context.d.ts +8 -1
- package/lib/main/custom-chart-context.d.ts.map +1 -1
- package/lib/main/custom-chart-context.js +29 -32
- package/lib/main/custom-chart-context.js.map +1 -1
- package/lib/main/custom-chart-context.spec.js +107 -260
- package/lib/main/custom-chart-context.spec.js.map +1 -1
- package/lib/main/post-message-event-bridge.d.ts +3 -3
- package/lib/main/post-message-event-bridge.d.ts.map +1 -1
- package/lib/main/post-message-event-bridge.js +24 -36
- package/lib/main/post-message-event-bridge.js.map +1 -1
- package/lib/main/post-message-event-bridge.spec.js +0 -2
- package/lib/main/post-message-event-bridge.spec.js.map +1 -1
- package/lib/main/util.d.ts +2 -0
- package/lib/main/util.d.ts.map +1 -0
- package/lib/main/util.js +9 -0
- package/lib/main/util.js.map +1 -0
- package/lib/react/use-custom-chart-context.spec.js +74 -119
- package/lib/react/use-custom-chart-context.spec.js.map +1 -1
- package/lib/types/common.types.d.ts +1 -0
- package/lib/types/common.types.d.ts.map +1 -1
- package/lib/types/ts-to-chart-event.types.d.ts +3 -0
- package/lib/types/ts-to-chart-event.types.d.ts.map +1 -1
- package/lib/types/ts-to-chart-event.types.js.map +1 -1
- package/package.json +5 -4
- package/src/main/custom-chart-context.spec.ts +116 -269
- package/src/main/custom-chart-context.ts +49 -38
- package/src/main/post-message-event-bridge.spec.ts +0 -3
- package/src/main/post-message-event-bridge.ts +36 -62
- package/src/main/util.ts +11 -0
- package/src/react/use-custom-chart-context.spec.tsx +84 -120
- package/src/types/common.types.ts +1 -1
- package/src/types/ts-to-chart-event.types.ts +14 -0
- package/cjs/index.d.ts +0 -9
- package/cjs/index.d.ts.map +0 -1
- package/cjs/index.js +0 -25
- package/cjs/index.js.map +0 -1
- package/cjs/main/custom-chart-context.d.ts +0 -47
- package/cjs/main/custom-chart-context.d.ts.map +0 -1
- package/cjs/main/custom-chart-context.js +0 -326
- package/cjs/main/custom-chart-context.js.map +0 -1
- package/cjs/main/custom-chart-context.spec.d.ts +0 -2
- package/cjs/main/custom-chart-context.spec.d.ts.map +0 -1
- package/cjs/main/custom-chart-context.spec.js +0 -699
- package/cjs/main/custom-chart-context.spec.js.map +0 -1
- package/cjs/main/post-message-event-bridge.d.ts +0 -6
- package/cjs/main/post-message-event-bridge.d.ts.map +0 -1
- package/cjs/main/post-message-event-bridge.js +0 -46
- package/cjs/main/post-message-event-bridge.js.map +0 -1
- package/cjs/main/post-message-event-bridge.spec.d.ts +0 -2
- package/cjs/main/post-message-event-bridge.spec.d.ts.map +0 -1
- package/cjs/main/post-message-event-bridge.spec.js +0 -124
- package/cjs/main/post-message-event-bridge.spec.js.map +0 -1
- package/cjs/react/custom-chart-context-service.d.ts +0 -33
- package/cjs/react/custom-chart-context-service.d.ts.map +0 -1
- package/cjs/react/custom-chart-context-service.js +0 -118
- package/cjs/react/custom-chart-context-service.js.map +0 -1
- package/cjs/react/custom-chart.context.d.ts +0 -26
- package/cjs/react/custom-chart.context.d.ts.map +0 -1
- package/cjs/react/custom-chart.context.js +0 -105
- package/cjs/react/custom-chart.context.js.map +0 -1
- package/cjs/react/custom-chart.spec.d.ts +0 -2
- package/cjs/react/custom-chart.spec.d.ts.map +0 -1
- package/cjs/react/custom-chart.spec.js +0 -72
- package/cjs/react/custom-chart.spec.js.map +0 -1
- package/cjs/react/mocks/custom-chart-context-mock.d.ts +0 -3
- package/cjs/react/mocks/custom-chart-context-mock.d.ts.map +0 -1
- package/cjs/react/mocks/custom-chart-context-mock.js +0 -100
- package/cjs/react/mocks/custom-chart-context-mock.js.map +0 -1
- package/cjs/react/use-custom-chart-context.d.ts +0 -4
- package/cjs/react/use-custom-chart-context.d.ts.map +0 -1
- package/cjs/react/use-custom-chart-context.js +0 -95
- package/cjs/react/use-custom-chart-context.js.map +0 -1
- package/cjs/react/use-custom-chart-context.spec.d.ts +0 -2
- package/cjs/react/use-custom-chart-context.spec.d.ts.map +0 -1
- package/cjs/react/use-custom-chart-context.spec.js +0 -391
- package/cjs/react/use-custom-chart-context.spec.js.map +0 -1
- package/cjs/react/use-custom-chart-context.util.d.ts +0 -6
- package/cjs/react/use-custom-chart-context.util.d.ts.map +0 -1
- package/cjs/react/use-custom-chart-context.util.js +0 -60
- package/cjs/react/use-custom-chart-context.util.js.map +0 -1
- package/cjs/react/use-custom-chart-types.d.ts +0 -23
- package/cjs/react/use-custom-chart-types.d.ts.map +0 -1
- package/cjs/react/use-custom-chart-types.js +0 -3
- package/cjs/react/use-custom-chart-types.js.map +0 -1
- package/cjs/test/test-utils.d.ts +0 -7
- package/cjs/test/test-utils.d.ts.map +0 -1
- package/cjs/test/test-utils.js +0 -14
- package/cjs/test/test-utils.js.map +0 -1
- package/cjs/types/answer-column.types.d.ts +0 -69
- package/cjs/types/answer-column.types.d.ts.map +0 -1
- package/cjs/types/answer-column.types.js +0 -59
- package/cjs/types/answer-column.types.js.map +0 -1
- package/cjs/types/chart-to-ts-event.types.d.ts +0 -98
- package/cjs/types/chart-to-ts-event.types.d.ts.map +0 -1
- package/cjs/types/chart-to-ts-event.types.js +0 -32
- package/cjs/types/chart-to-ts-event.types.js.map +0 -1
- package/cjs/types/common.types.d.ts +0 -51
- package/cjs/types/common.types.d.ts.map +0 -1
- package/cjs/types/common.types.js +0 -3
- package/cjs/types/common.types.js.map +0 -1
- package/cjs/types/configurator.types.d.ts +0 -15
- package/cjs/types/configurator.types.d.ts.map +0 -1
- package/cjs/types/configurator.types.js +0 -3
- package/cjs/types/configurator.types.js.map +0 -1
- package/cjs/types/ts-to-chart-event.types.d.ts +0 -91
- package/cjs/types/ts-to-chart-event.types.d.ts.map +0 -1
- package/cjs/types/ts-to-chart-event.types.js +0 -18
- package/cjs/types/ts-to-chart-event.types.js.map +0 -1
- package/cjs/types/visual-prop.types.d.ts +0 -73
- package/cjs/types/visual-prop.types.d.ts.map +0 -1
- package/cjs/types/visual-prop.types.js +0 -3
- package/cjs/types/visual-prop.types.js.map +0 -1
- package/dist/ts-chart-sdk.d.ts +0 -312
- package/lib/dist/ts-chart-sdk.d.ts +0 -312
- package/lib/react/custom-chart-context-service.d.ts +0 -33
- package/lib/react/custom-chart-context-service.d.ts.map +0 -1
- package/lib/react/custom-chart-context-service.js +0 -91
- package/lib/react/custom-chart-context-service.js.map +0 -1
- package/lib/react/custom-chart.context.d.ts +0 -26
- package/lib/react/custom-chart.context.d.ts.map +0 -1
- package/lib/react/custom-chart.context.js +0 -78
- package/lib/react/custom-chart.context.js.map +0 -1
- package/lib/react/custom-chart.spec.d.ts +0 -2
- package/lib/react/custom-chart.spec.d.ts.map +0 -1
- package/lib/react/custom-chart.spec.js +0 -67
- package/lib/react/custom-chart.spec.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thoughtspot/ts-chart-sdk",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.2-alpha.2",
|
|
5
5
|
"module": "lib/index",
|
|
6
6
|
"main": "lib/index",
|
|
7
7
|
"types": "lib/index",
|
|
8
8
|
"files": [
|
|
9
|
-
"cjs/**",
|
|
10
9
|
"dist/**",
|
|
11
10
|
"lib/**",
|
|
12
11
|
"src/**"
|
|
13
12
|
],
|
|
14
13
|
"scripts": {
|
|
15
|
-
"build": "tsc -p
|
|
16
|
-
"tsc": "tsc -p
|
|
14
|
+
"build": "tsc -p .",
|
|
15
|
+
"tsc": "tsc -p .",
|
|
17
16
|
"test-sdk": "npx jest -c jest.config.sdk.js --runInBand",
|
|
18
17
|
"test": "npm run test-sdk",
|
|
19
18
|
"lint": "eslint 'src/**'",
|
|
@@ -68,12 +67,14 @@
|
|
|
68
67
|
"npm-run-all": "^4.1.5",
|
|
69
68
|
"prettier": "^2.8.8",
|
|
70
69
|
"ts-jest": "^27.1.1",
|
|
70
|
+
"ts-jest-mock-import-meta": "^1.2.0",
|
|
71
71
|
"typedoc": "^0.24.4",
|
|
72
72
|
"typescript": "^4.9.5",
|
|
73
73
|
"vite": "4.2.1"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"lodash": "^4.17.21",
|
|
77
|
+
"promise-postmessage": "^3.5.0",
|
|
77
78
|
"react": "^17.0.2",
|
|
78
79
|
"react-dom": "^17.0.2"
|
|
79
80
|
},
|
|
@@ -11,7 +11,7 @@ import { TSToChartEvent } from '../types/ts-to-chart-event.types';
|
|
|
11
11
|
import { CustomChartContext, getChartContext } from './custom-chart-context';
|
|
12
12
|
import * as PostMessageEventBridge from './post-message-event-bridge';
|
|
13
13
|
|
|
14
|
-
jest.mock('./post-message-event-bridge');
|
|
14
|
+
// jest.mock('./post-message-event-bridge');
|
|
15
15
|
|
|
16
16
|
jest.spyOn(console, 'log').mockImplementation(() => {
|
|
17
17
|
// do nothing.
|
|
@@ -39,6 +39,7 @@ describe('CustomChartContext', () => {
|
|
|
39
39
|
|
|
40
40
|
mockInitMessage.mockImplementation((fn: any) => {
|
|
41
41
|
eventProcessor = fn;
|
|
42
|
+
return () => null;
|
|
42
43
|
});
|
|
43
44
|
|
|
44
45
|
mockPostMessageToHost.mockImplementation(() => {
|
|
@@ -85,35 +86,29 @@ describe('CustomChartContext', () => {
|
|
|
85
86
|
const promise = customChartContext.initialize();
|
|
86
87
|
|
|
87
88
|
// Check that the hasInitializedPromise has resolved
|
|
88
|
-
|
|
89
|
-
eventProcessor({
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
eventType: TSToChartEvent.Initialize,
|
|
93
|
-
source: 'ts-host-app',
|
|
94
|
-
},
|
|
95
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
89
|
+
|
|
90
|
+
const initResp = await eventProcessor({
|
|
91
|
+
payload: mockInitializeContextPayload,
|
|
92
|
+
eventType: TSToChartEvent.Initialize,
|
|
96
93
|
});
|
|
97
94
|
|
|
98
95
|
eventProcessor({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
102
|
-
source: 'ts-host-app',
|
|
103
|
-
},
|
|
104
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
96
|
+
payload: {},
|
|
97
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
105
98
|
});
|
|
106
99
|
|
|
107
100
|
await expect(promise).resolves.toBeUndefined();
|
|
108
|
-
expect(mockPostMessage).toHaveBeenCalledTimes(2);
|
|
109
101
|
|
|
110
|
-
expect(
|
|
102
|
+
expect(initResp).toEqual({
|
|
111
103
|
isConfigValid: false,
|
|
112
104
|
defaultChartConfig: undefined,
|
|
113
105
|
chartConfigEditorDefinition: undefined,
|
|
114
106
|
visualPropEditorDefinition: undefined,
|
|
107
|
+
allowedConfigurations: {
|
|
108
|
+
allowColumnNumberFormatting: false,
|
|
109
|
+
allowColumnConditionalFormatting: false,
|
|
110
|
+
},
|
|
115
111
|
});
|
|
116
|
-
expect(mockPostMessage).toHaveBeenCalled();
|
|
117
112
|
expect(mockPostMessageToHost).not.toHaveBeenCalled();
|
|
118
113
|
});
|
|
119
114
|
|
|
@@ -122,23 +117,14 @@ describe('CustomChartContext', () => {
|
|
|
122
117
|
const promise = customChartContext.initialize();
|
|
123
118
|
|
|
124
119
|
// Check that the hasInitializedPromise has resolved
|
|
125
|
-
const mockPostMessage = jest.fn();
|
|
126
120
|
eventProcessor({
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
eventType: TSToChartEvent.Initialize,
|
|
130
|
-
source: 'ts-host-app',
|
|
131
|
-
},
|
|
132
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
121
|
+
payload: mockInitializeContextPayload,
|
|
122
|
+
eventType: TSToChartEvent.Initialize,
|
|
133
123
|
});
|
|
134
124
|
|
|
135
125
|
eventProcessor({
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
139
|
-
source: 'ts-host-app',
|
|
140
|
-
},
|
|
141
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
126
|
+
payload: {},
|
|
127
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
142
128
|
});
|
|
143
129
|
|
|
144
130
|
await expect(promise).resolves.toBeUndefined();
|
|
@@ -184,126 +170,75 @@ describe('CustomChartContext', () => {
|
|
|
184
170
|
eventProcessor = null;
|
|
185
171
|
});
|
|
186
172
|
|
|
187
|
-
test('
|
|
188
|
-
expect(mockInitMessage).toHaveBeenCalled();
|
|
189
|
-
|
|
190
|
-
// mock the event trigger for ChartConfigValidate
|
|
191
|
-
const mockPostMessage = jest.fn();
|
|
192
|
-
eventProcessor({
|
|
193
|
-
data: {
|
|
194
|
-
payload: mockInitializeContextPayload,
|
|
195
|
-
eventType: TSToChartEvent.ChartConfigValidate,
|
|
196
|
-
source: 'incorrect-source',
|
|
197
|
-
},
|
|
198
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
199
|
-
});
|
|
200
|
-
// Check that the event listener was added to the eventListeners
|
|
201
|
-
// object
|
|
202
|
-
expect(mockPostMessage).not.toHaveBeenCalled();
|
|
203
|
-
});
|
|
204
|
-
|
|
205
|
-
test('default internal function testing', () => {
|
|
173
|
+
test('default internal function testing', async () => {
|
|
206
174
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
207
175
|
|
|
208
176
|
// mock the event trigger for ChartConfigValidate
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
payload: mockInitializeContextPayload,
|
|
213
|
-
eventType: TSToChartEvent.ChartConfigValidate,
|
|
214
|
-
source: 'ts-host-app',
|
|
215
|
-
},
|
|
216
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
177
|
+
const validateChartConfigResp = await eventProcessor({
|
|
178
|
+
payload: mockInitializeContextPayload,
|
|
179
|
+
eventType: TSToChartEvent.ChartConfigValidate,
|
|
217
180
|
});
|
|
218
181
|
// Check that the response was received
|
|
219
|
-
expect(
|
|
182
|
+
expect(validateChartConfigResp).toEqual({
|
|
220
183
|
isValid: true,
|
|
221
184
|
});
|
|
222
|
-
mockPostMessage.mockReset();
|
|
223
185
|
|
|
224
186
|
// mock the event trigger for VisualPropsValidate
|
|
225
|
-
eventProcessor({
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
eventType: TSToChartEvent.VisualPropsValidate,
|
|
229
|
-
source: 'ts-host-app',
|
|
230
|
-
},
|
|
231
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
187
|
+
const validateVisualPropsResp = await eventProcessor({
|
|
188
|
+
payload: mockInitializeContextPayload,
|
|
189
|
+
eventType: TSToChartEvent.VisualPropsValidate,
|
|
232
190
|
});
|
|
233
191
|
// Check that the response was received
|
|
234
|
-
expect(
|
|
192
|
+
expect(validateVisualPropsResp).toEqual({
|
|
235
193
|
isValid: true,
|
|
236
194
|
});
|
|
237
195
|
|
|
238
|
-
mockPostMessage.mockReset();
|
|
239
|
-
|
|
240
196
|
// mock the event trigger for TriggerRenderChart
|
|
241
|
-
eventProcessor({
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
eventType: TSToChartEvent.TriggerRenderChart,
|
|
245
|
-
source: 'ts-host-app',
|
|
246
|
-
},
|
|
247
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
197
|
+
const renderResp = await eventProcessor({
|
|
198
|
+
payload: mockInitializeContextPayload,
|
|
199
|
+
eventType: TSToChartEvent.TriggerRenderChart,
|
|
248
200
|
});
|
|
249
201
|
// Check that the response was received
|
|
250
|
-
expect(mockPostMessage).toHaveBeenCalledWith({});
|
|
251
202
|
expect(renderChart).toHaveBeenCalled();
|
|
252
203
|
|
|
253
|
-
mockPostMessage.mockReset();
|
|
254
|
-
|
|
255
204
|
// mock the event trigger for getQueriesFromChartConfig
|
|
256
205
|
eventProcessor({
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
eventType: TSToChartEvent.GetDataQuery,
|
|
260
|
-
source: 'ts-host-app',
|
|
261
|
-
},
|
|
262
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
206
|
+
payload: mockInitializeContextPayload,
|
|
207
|
+
eventType: TSToChartEvent.GetDataQuery,
|
|
263
208
|
});
|
|
264
|
-
|
|
265
|
-
expect(mockPostMessage).toHaveBeenCalledWith({});
|
|
209
|
+
|
|
266
210
|
expect(getQueriesFromChartConfig).toHaveBeenCalled();
|
|
267
211
|
});
|
|
268
212
|
|
|
269
|
-
test('default external function testing', () => {
|
|
213
|
+
test('default external function testing', async () => {
|
|
270
214
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
271
215
|
|
|
272
216
|
// mock the event trigger for DataUpdate
|
|
273
|
-
|
|
274
|
-
eventProcessor({
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
data: 'random data',
|
|
278
|
-
},
|
|
279
|
-
eventType: TSToChartEvent.DataUpdate,
|
|
280
|
-
source: 'ts-host-app',
|
|
217
|
+
|
|
218
|
+
const dataUpdateResp = await eventProcessor({
|
|
219
|
+
payload: {
|
|
220
|
+
data: 'random data',
|
|
281
221
|
},
|
|
282
|
-
|
|
222
|
+
eventType: TSToChartEvent.DataUpdate,
|
|
283
223
|
});
|
|
284
224
|
// Check that the response was received
|
|
285
|
-
expect(
|
|
225
|
+
expect(dataUpdateResp).toEqual({
|
|
286
226
|
triggerRenderChart: true,
|
|
287
227
|
});
|
|
288
228
|
expect(customChartContext.getChartModel().data).toBe('random data');
|
|
289
|
-
mockPostMessage.mockReset();
|
|
290
229
|
|
|
291
230
|
// mock the event trigger for VisualPropsValidate
|
|
292
|
-
eventProcessor({
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
visualProps: null,
|
|
298
|
-
},
|
|
231
|
+
const modelUpdateResp = await eventProcessor({
|
|
232
|
+
payload: {
|
|
233
|
+
chartModel: {
|
|
234
|
+
data: 'random data2',
|
|
235
|
+
visualProps: null,
|
|
299
236
|
},
|
|
300
|
-
eventType: TSToChartEvent.ChartModelUpdate,
|
|
301
|
-
source: 'ts-host-app',
|
|
302
237
|
},
|
|
303
|
-
|
|
238
|
+
eventType: TSToChartEvent.ChartModelUpdate,
|
|
304
239
|
});
|
|
305
240
|
// Check that the response was received
|
|
306
|
-
expect(
|
|
241
|
+
expect(modelUpdateResp).toEqual({
|
|
307
242
|
triggerRenderChart: true,
|
|
308
243
|
});
|
|
309
244
|
expect(customChartContext.getChartModel().data).toBe(
|
|
@@ -311,27 +246,20 @@ describe('CustomChartContext', () => {
|
|
|
311
246
|
);
|
|
312
247
|
expect(customChartContext.getChartModel().visualProps).toBe(null);
|
|
313
248
|
|
|
314
|
-
mockPostMessage.mockReset();
|
|
315
|
-
|
|
316
249
|
// mock the event trigger for VisualPropsUpdate
|
|
317
|
-
eventProcessor({
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
visualProps: 'random data',
|
|
321
|
-
},
|
|
322
|
-
eventType: TSToChartEvent.VisualPropsUpdate,
|
|
323
|
-
source: 'ts-host-app',
|
|
250
|
+
const visualPropsUpdateResp = await eventProcessor({
|
|
251
|
+
payload: {
|
|
252
|
+
visualProps: 'random data',
|
|
324
253
|
},
|
|
325
|
-
|
|
254
|
+
eventType: TSToChartEvent.VisualPropsUpdate,
|
|
326
255
|
});
|
|
327
256
|
// Check that the response was received
|
|
328
|
-
expect(
|
|
257
|
+
expect(visualPropsUpdateResp).toEqual({
|
|
329
258
|
triggerRenderChart: true,
|
|
330
259
|
});
|
|
331
260
|
expect(customChartContext.getChartModel().visualProps).toBe(
|
|
332
261
|
'random data',
|
|
333
262
|
);
|
|
334
|
-
mockPostMessage.mockReset();
|
|
335
263
|
|
|
336
264
|
// mock the event trigger for AxisMenuActionClick
|
|
337
265
|
customChartContext.axisMenuCustomActionPreProcessor([
|
|
@@ -346,22 +274,18 @@ describe('CustomChartContext', () => {
|
|
|
346
274
|
],
|
|
347
275
|
},
|
|
348
276
|
] as any);
|
|
349
|
-
eventProcessor({
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
columnIds: ['9f96b5b0-f7e4-4a5e-aa11-4c77fdf42125'],
|
|
355
|
-
},
|
|
277
|
+
const axisMenuClickResp = await eventProcessor({
|
|
278
|
+
payload: {
|
|
279
|
+
customAction: {
|
|
280
|
+
id: 'custom-action-1',
|
|
281
|
+
columnIds: ['9f96b5b0-f7e4-4a5e-aa11-4c77fdf42125'],
|
|
356
282
|
},
|
|
357
|
-
eventType: TSToChartEvent.AxisMenuActionClick,
|
|
358
|
-
source: 'ts-host-app',
|
|
359
283
|
},
|
|
360
|
-
|
|
284
|
+
eventType: TSToChartEvent.AxisMenuActionClick,
|
|
361
285
|
});
|
|
362
286
|
// Check that the response was valid which means action gets
|
|
363
287
|
// executed successfully
|
|
364
|
-
expect(
|
|
288
|
+
expect(axisMenuClickResp).toEqual({
|
|
365
289
|
isValid: true,
|
|
366
290
|
});
|
|
367
291
|
|
|
@@ -378,22 +302,18 @@ describe('CustomChartContext', () => {
|
|
|
378
302
|
],
|
|
379
303
|
},
|
|
380
304
|
] as any);
|
|
381
|
-
eventProcessor({
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
columnIds: ['9f96b5b0-f7e4-4a5e-aa11-4c77fdf42125'],
|
|
387
|
-
},
|
|
305
|
+
const ctxMenuResp = await eventProcessor({
|
|
306
|
+
payload: {
|
|
307
|
+
customAction: {
|
|
308
|
+
id: 'custom-action-1',
|
|
309
|
+
columnIds: ['9f96b5b0-f7e4-4a5e-aa11-4c77fdf42125'],
|
|
388
310
|
},
|
|
389
|
-
eventType: TSToChartEvent.ContextMenuActionClick,
|
|
390
|
-
source: 'ts-host-app',
|
|
391
311
|
},
|
|
392
|
-
|
|
312
|
+
eventType: TSToChartEvent.ContextMenuActionClick,
|
|
393
313
|
});
|
|
394
314
|
// Check that the response was valid which means action gets
|
|
395
315
|
// executed successfully
|
|
396
|
-
expect(
|
|
316
|
+
expect(ctxMenuResp).toEqual({
|
|
397
317
|
isValid: true,
|
|
398
318
|
});
|
|
399
319
|
});
|
|
@@ -408,38 +328,30 @@ describe('CustomChartContext', () => {
|
|
|
408
328
|
customChartContext.on(TEST_EVENT_TYPE, testCallbackFn);
|
|
409
329
|
|
|
410
330
|
// mock the event trigger
|
|
411
|
-
|
|
331
|
+
|
|
412
332
|
eventProcessor({
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
eventType: TEST_EVENT_TYPE,
|
|
416
|
-
source: 'ts-host-app',
|
|
417
|
-
},
|
|
418
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
333
|
+
payload: mockInitializeContextPayload,
|
|
334
|
+
eventType: TEST_EVENT_TYPE,
|
|
419
335
|
});
|
|
420
336
|
// Check that the event listener was added to the eventListeners
|
|
421
337
|
// object
|
|
422
338
|
expect(testCallbackFn).toHaveBeenCalled();
|
|
423
339
|
});
|
|
424
340
|
|
|
425
|
-
test('should respond with an error to an unspecified event type', () => {
|
|
341
|
+
test('should respond with an error to an unspecified event type', async () => {
|
|
426
342
|
expect(mockInitMessage).toHaveBeenCalled();
|
|
427
343
|
// Define a test event type and callback function
|
|
428
344
|
const TEST_EVENT_TYPE = 'testEventType' as any;
|
|
429
345
|
|
|
430
346
|
// mock the event trigger
|
|
431
|
-
|
|
432
|
-
eventProcessor({
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
eventType: TEST_EVENT_TYPE,
|
|
436
|
-
source: 'ts-host-app',
|
|
437
|
-
},
|
|
438
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
347
|
+
|
|
348
|
+
const resp = await eventProcessor({
|
|
349
|
+
payload: mockInitializeContextPayload,
|
|
350
|
+
eventType: TEST_EVENT_TYPE,
|
|
439
351
|
});
|
|
440
352
|
// Check that the event listener was added to the eventListeners
|
|
441
353
|
// object
|
|
442
|
-
expect(
|
|
354
|
+
expect(resp).toEqual({
|
|
443
355
|
hasError: true,
|
|
444
356
|
error: `Event type not recognised or processed: ${TEST_EVENT_TYPE}`,
|
|
445
357
|
});
|
|
@@ -473,14 +385,10 @@ describe('CustomChartContext', () => {
|
|
|
473
385
|
customChartContext.on(TEST_EVENT_TYPE, testCallbackFn);
|
|
474
386
|
|
|
475
387
|
// mock the event trigger for the test event type
|
|
476
|
-
|
|
388
|
+
|
|
477
389
|
eventProcessor({
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
eventType: TEST_EVENT_TYPE,
|
|
481
|
-
source: 'ts-host-app',
|
|
482
|
-
},
|
|
483
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
390
|
+
payload: mockInitializeContextPayload,
|
|
391
|
+
eventType: TEST_EVENT_TYPE,
|
|
484
392
|
});
|
|
485
393
|
|
|
486
394
|
// Call the off function to remove the event listener
|
|
@@ -514,22 +422,14 @@ describe('CustomChartContext', () => {
|
|
|
514
422
|
).toHaveLength(1);
|
|
515
423
|
|
|
516
424
|
// Emit events for both event types
|
|
517
|
-
|
|
425
|
+
|
|
518
426
|
eventProcessor({
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
eventType: TEST_EVENT_TYPE_1,
|
|
522
|
-
source: 'ts-host-app',
|
|
523
|
-
},
|
|
524
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
427
|
+
payload: {},
|
|
428
|
+
eventType: TEST_EVENT_TYPE_1,
|
|
525
429
|
});
|
|
526
430
|
eventProcessor({
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
eventType: TEST_EVENT_TYPE_2,
|
|
530
|
-
source: 'ts-host-app',
|
|
531
|
-
},
|
|
532
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
431
|
+
payload: {},
|
|
432
|
+
eventType: TEST_EVENT_TYPE_2,
|
|
533
433
|
});
|
|
534
434
|
|
|
535
435
|
// Check that both callback functions were called
|
|
@@ -596,28 +496,19 @@ describe('CustomChartContext', () => {
|
|
|
596
496
|
|
|
597
497
|
test('should resolve the promise if the chart context is initialized', async () => {
|
|
598
498
|
// Check that the hasInitializedPromise has resolved
|
|
599
|
-
|
|
499
|
+
|
|
600
500
|
eventProcessor({
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
eventType: TSToChartEvent.Initialize,
|
|
604
|
-
source: 'ts-host-app',
|
|
605
|
-
},
|
|
606
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
501
|
+
payload: mockInitializeContextPayload,
|
|
502
|
+
eventType: TSToChartEvent.Initialize,
|
|
607
503
|
});
|
|
608
504
|
|
|
609
505
|
eventProcessor({
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
613
|
-
source: 'ts-host-app',
|
|
614
|
-
},
|
|
615
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
506
|
+
payload: {},
|
|
507
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
616
508
|
});
|
|
617
509
|
|
|
618
510
|
const promise = customChartContext.initialize();
|
|
619
511
|
await expect(promise).resolves.toBeUndefined();
|
|
620
|
-
expect(mockPostMessage).toHaveBeenCalledTimes(2);
|
|
621
512
|
|
|
622
513
|
// define mock response for the postMessage response promise
|
|
623
514
|
let resolve: any;
|
|
@@ -672,24 +563,15 @@ describe('CustomChartContext', () => {
|
|
|
672
563
|
);
|
|
673
564
|
});
|
|
674
565
|
test('should process the event payload for context menu custom actions', async () => {
|
|
675
|
-
const mockPostMessage = jest.fn();
|
|
676
566
|
const mockCustomAction = jest.fn();
|
|
677
567
|
let resolve: any;
|
|
678
568
|
eventProcessor({
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
eventType: TSToChartEvent.Initialize,
|
|
682
|
-
source: 'ts-host-app',
|
|
683
|
-
},
|
|
684
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
569
|
+
payload: mockInitializeContextPayload,
|
|
570
|
+
eventType: TSToChartEvent.Initialize,
|
|
685
571
|
});
|
|
686
572
|
eventProcessor({
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
690
|
-
source: 'ts-host-app',
|
|
691
|
-
},
|
|
692
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
573
|
+
payload: {},
|
|
574
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
693
575
|
});
|
|
694
576
|
customChartContext.initialize();
|
|
695
577
|
mockPostMessageToHost.mockImplementation(
|
|
@@ -731,19 +613,15 @@ describe('CustomChartContext', () => {
|
|
|
731
613
|
TEST_EVENT_TYPE,
|
|
732
614
|
);
|
|
733
615
|
eventProcessor({
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
selectedPoints: [{}],
|
|
741
|
-
},
|
|
616
|
+
payload: {
|
|
617
|
+
customAction: {
|
|
618
|
+
id: 'custom-action-1',
|
|
619
|
+
clickedPoint: {},
|
|
620
|
+
event: {},
|
|
621
|
+
selectedPoints: [{}],
|
|
742
622
|
},
|
|
743
|
-
eventType: TSToChartEvent.ContextMenuActionClick,
|
|
744
|
-
source: 'ts-host-app',
|
|
745
623
|
},
|
|
746
|
-
|
|
624
|
+
eventType: TSToChartEvent.ContextMenuActionClick,
|
|
747
625
|
});
|
|
748
626
|
expect(mockCustomAction).toHaveBeenCalled();
|
|
749
627
|
expect(mockCustomAction).toHaveBeenCalledWith({
|
|
@@ -754,24 +632,15 @@ describe('CustomChartContext', () => {
|
|
|
754
632
|
});
|
|
755
633
|
});
|
|
756
634
|
test('should process the event payload for axis menu custom actions', async () => {
|
|
757
|
-
const mockPostMessage = jest.fn();
|
|
758
635
|
const mockCustomAction = jest.fn();
|
|
759
636
|
let resolve: any;
|
|
760
637
|
eventProcessor({
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
eventType: TSToChartEvent.Initialize,
|
|
764
|
-
source: 'ts-host-app',
|
|
765
|
-
},
|
|
766
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
638
|
+
payload: mockInitializeContextPayload,
|
|
639
|
+
eventType: TSToChartEvent.Initialize,
|
|
767
640
|
});
|
|
768
641
|
eventProcessor({
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
772
|
-
source: 'ts-host-app',
|
|
773
|
-
},
|
|
774
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
642
|
+
payload: {},
|
|
643
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
775
644
|
});
|
|
776
645
|
customChartContext.initialize();
|
|
777
646
|
mockPostMessageToHost.mockImplementation(
|
|
@@ -813,18 +682,14 @@ describe('CustomChartContext', () => {
|
|
|
813
682
|
);
|
|
814
683
|
|
|
815
684
|
eventProcessor({
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
event: {},
|
|
822
|
-
},
|
|
685
|
+
payload: {
|
|
686
|
+
customAction: {
|
|
687
|
+
id: 'custom-action-1',
|
|
688
|
+
columnIds: ['123'],
|
|
689
|
+
event: {},
|
|
823
690
|
},
|
|
824
|
-
eventType: TSToChartEvent.AxisMenuActionClick,
|
|
825
|
-
source: 'ts-host-app',
|
|
826
691
|
},
|
|
827
|
-
|
|
692
|
+
eventType: TSToChartEvent.AxisMenuActionClick,
|
|
828
693
|
});
|
|
829
694
|
expect(mockCustomAction).toHaveBeenCalled();
|
|
830
695
|
expect(mockCustomAction).toHaveBeenCalledWith({
|
|
@@ -835,23 +700,14 @@ describe('CustomChartContext', () => {
|
|
|
835
700
|
});
|
|
836
701
|
|
|
837
702
|
test('should process the event payload for axis menu when custom actions are not defined', async () => {
|
|
838
|
-
const mockPostMessage = jest.fn();
|
|
839
703
|
let resolve: any;
|
|
840
704
|
eventProcessor({
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
eventType: TSToChartEvent.Initialize,
|
|
844
|
-
source: 'ts-host-app',
|
|
845
|
-
},
|
|
846
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
705
|
+
payload: mockInitializeContextPayload,
|
|
706
|
+
eventType: TSToChartEvent.Initialize,
|
|
847
707
|
});
|
|
848
708
|
eventProcessor({
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
852
|
-
source: 'ts-host-app',
|
|
853
|
-
},
|
|
854
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
709
|
+
payload: {},
|
|
710
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
855
711
|
});
|
|
856
712
|
customChartContext.initialize();
|
|
857
713
|
mockPostMessageToHost.mockImplementation(
|
|
@@ -876,23 +732,14 @@ describe('CustomChartContext', () => {
|
|
|
876
732
|
});
|
|
877
733
|
|
|
878
734
|
test('should process the event payload for context menu when custom actions are not defined', async () => {
|
|
879
|
-
const mockPostMessage = jest.fn();
|
|
880
735
|
let resolve: any;
|
|
881
736
|
eventProcessor({
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
eventType: TSToChartEvent.Initialize,
|
|
885
|
-
source: 'ts-host-app',
|
|
886
|
-
},
|
|
887
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
737
|
+
payload: mockInitializeContextPayload,
|
|
738
|
+
eventType: TSToChartEvent.Initialize,
|
|
888
739
|
});
|
|
889
740
|
eventProcessor({
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
eventType: TSToChartEvent.InitializeComplete,
|
|
893
|
-
source: 'ts-host-app',
|
|
894
|
-
},
|
|
895
|
-
ports: [{ postMessage: mockPostMessage }],
|
|
741
|
+
payload: {},
|
|
742
|
+
eventType: TSToChartEvent.InitializeComplete,
|
|
896
743
|
});
|
|
897
744
|
customChartContext.initialize();
|
|
898
745
|
mockPostMessageToHost.mockImplementation(
|