@thoughtspot/visual-embed-sdk 1.44.3 → 1.44.4-HE-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/README.md +1 -1
  2. package/cjs/package.json +1 -1
  3. package/cjs/src/embed/app.d.ts +44 -32
  4. package/cjs/src/embed/app.d.ts.map +1 -1
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/conversation.d.ts +7 -0
  7. package/cjs/src/embed/conversation.d.ts.map +1 -1
  8. package/cjs/src/embed/conversation.js +9 -0
  9. package/cjs/src/embed/conversation.js.map +1 -1
  10. package/cjs/src/embed/hostEventClient/contracts.d.ts +20 -3
  11. package/cjs/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  12. package/cjs/src/embed/hostEventClient/contracts.js +6 -1
  13. package/cjs/src/embed/hostEventClient/contracts.js.map +1 -1
  14. package/cjs/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  15. package/cjs/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  16. package/cjs/src/embed/hostEventClient/host-event-client.js +18 -18
  17. package/cjs/src/embed/hostEventClient/host-event-client.js.map +1 -1
  18. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +7 -7
  19. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  20. package/cjs/src/embed/liveboard.d.ts +10 -4
  21. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  22. package/cjs/src/embed/liveboard.js +12 -2
  23. package/cjs/src/embed/liveboard.js.map +1 -1
  24. package/cjs/src/embed/liveboard.spec.js +1 -1
  25. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  26. package/cjs/src/embed/sage.d.ts +7 -0
  27. package/cjs/src/embed/sage.d.ts.map +1 -1
  28. package/cjs/src/embed/sage.js +9 -0
  29. package/cjs/src/embed/sage.js.map +1 -1
  30. package/cjs/src/embed/search-bar.d.ts +7 -0
  31. package/cjs/src/embed/search-bar.d.ts.map +1 -1
  32. package/cjs/src/embed/search-bar.js +9 -0
  33. package/cjs/src/embed/search-bar.js.map +1 -1
  34. package/cjs/src/embed/search.d.ts +7 -0
  35. package/cjs/src/embed/search.d.ts.map +1 -1
  36. package/cjs/src/embed/search.js +9 -0
  37. package/cjs/src/embed/search.js.map +1 -1
  38. package/cjs/src/embed/ts-embed.d.ts +9 -3
  39. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  40. package/cjs/src/embed/ts-embed.js +41 -8
  41. package/cjs/src/embed/ts-embed.js.map +1 -1
  42. package/cjs/src/embed/ts-embed.spec.js +156 -24
  43. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  44. package/cjs/src/errors.d.ts +1 -0
  45. package/cjs/src/errors.d.ts.map +1 -1
  46. package/cjs/src/errors.js +1 -0
  47. package/cjs/src/errors.js.map +1 -1
  48. package/cjs/src/index.d.ts +2 -2
  49. package/cjs/src/index.d.ts.map +1 -1
  50. package/cjs/src/index.js +5 -1
  51. package/cjs/src/index.js.map +1 -1
  52. package/cjs/src/types.d.ts +142 -45
  53. package/cjs/src/types.d.ts.map +1 -1
  54. package/cjs/src/types.js +91 -16
  55. package/cjs/src/types.js.map +1 -1
  56. package/cjs/src/utils/logger.spec.d.ts +20 -5
  57. package/cjs/src/utils/logger.spec.d.ts.map +1 -1
  58. package/cjs/src/utils/processTrigger.d.ts +3 -2
  59. package/cjs/src/utils/processTrigger.d.ts.map +1 -1
  60. package/cjs/src/utils/processTrigger.js +4 -2
  61. package/cjs/src/utils/processTrigger.js.map +1 -1
  62. package/cjs/src/utils.d.ts +5 -1
  63. package/cjs/src/utils.d.ts.map +1 -1
  64. package/cjs/src/utils.js +10 -2
  65. package/cjs/src/utils.js.map +1 -1
  66. package/dist/index-BFdRRz03.js +7371 -0
  67. package/dist/index-BUfrYJ3w.js +7371 -0
  68. package/dist/index-CI6s4VMY.js +7371 -0
  69. package/dist/{index-D0n5LIka.js → index-CWQnMX2L.js} +1 -1
  70. package/dist/index-CaW-1mu5.js +7371 -0
  71. package/dist/index-CcSgNJVi.js +7371 -0
  72. package/dist/index-Djtv-y7A.js +7371 -0
  73. package/dist/index-UY-4yjBN.js +7371 -0
  74. package/dist/src/embed/app.d.ts +44 -32
  75. package/dist/src/embed/app.d.ts.map +1 -1
  76. package/dist/src/embed/conversation.d.ts +7 -0
  77. package/dist/src/embed/conversation.d.ts.map +1 -1
  78. package/dist/src/embed/hostEventClient/contracts.d.ts +20 -3
  79. package/dist/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  80. package/dist/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  81. package/dist/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  82. package/dist/src/embed/liveboard.d.ts +10 -4
  83. package/dist/src/embed/liveboard.d.ts.map +1 -1
  84. package/dist/src/embed/sage.d.ts +7 -0
  85. package/dist/src/embed/sage.d.ts.map +1 -1
  86. package/dist/src/embed/search-bar.d.ts +7 -0
  87. package/dist/src/embed/search-bar.d.ts.map +1 -1
  88. package/dist/src/embed/search.d.ts +7 -0
  89. package/dist/src/embed/search.d.ts.map +1 -1
  90. package/dist/src/embed/ts-embed.d.ts +9 -3
  91. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  92. package/dist/src/errors.d.ts +1 -0
  93. package/dist/src/errors.d.ts.map +1 -1
  94. package/dist/src/index.d.ts +2 -2
  95. package/dist/src/index.d.ts.map +1 -1
  96. package/dist/src/types.d.ts +142 -45
  97. package/dist/src/types.d.ts.map +1 -1
  98. package/dist/src/utils/logger.spec.d.ts +20 -5
  99. package/dist/src/utils/logger.spec.d.ts.map +1 -1
  100. package/dist/src/utils/processTrigger.d.ts +3 -2
  101. package/dist/src/utils/processTrigger.d.ts.map +1 -1
  102. package/dist/src/utils.d.ts +5 -1
  103. package/dist/src/utils.d.ts.map +1 -1
  104. package/dist/tsembed-react.es.js +218 -50
  105. package/dist/tsembed-react.js +217 -49
  106. package/dist/tsembed.es.js +219 -51
  107. package/dist/tsembed.js +244 -76
  108. package/dist/visual-embed-sdk-react-full.d.ts +245 -82
  109. package/dist/visual-embed-sdk-react.d.ts +251 -90
  110. package/dist/visual-embed-sdk.d.ts +298 -92
  111. package/lib/package.json +1 -1
  112. package/lib/src/embed/app.d.ts +44 -32
  113. package/lib/src/embed/app.d.ts.map +1 -1
  114. package/lib/src/embed/app.js.map +1 -1
  115. package/lib/src/embed/conversation.d.ts +7 -0
  116. package/lib/src/embed/conversation.d.ts.map +1 -1
  117. package/lib/src/embed/conversation.js +9 -0
  118. package/lib/src/embed/conversation.js.map +1 -1
  119. package/lib/src/embed/hostEventClient/contracts.d.ts +20 -3
  120. package/lib/src/embed/hostEventClient/contracts.d.ts.map +1 -1
  121. package/lib/src/embed/hostEventClient/contracts.js +5 -0
  122. package/lib/src/embed/hostEventClient/contracts.js.map +1 -1
  123. package/lib/src/embed/hostEventClient/host-event-client.d.ts +8 -8
  124. package/lib/src/embed/hostEventClient/host-event-client.d.ts.map +1 -1
  125. package/lib/src/embed/hostEventClient/host-event-client.js +18 -18
  126. package/lib/src/embed/hostEventClient/host-event-client.js.map +1 -1
  127. package/lib/src/embed/hostEventClient/host-event-client.spec.js +7 -7
  128. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  129. package/lib/src/embed/liveboard.d.ts +10 -4
  130. package/lib/src/embed/liveboard.d.ts.map +1 -1
  131. package/lib/src/embed/liveboard.js +12 -2
  132. package/lib/src/embed/liveboard.js.map +1 -1
  133. package/lib/src/embed/liveboard.spec.js +1 -1
  134. package/lib/src/embed/liveboard.spec.js.map +1 -1
  135. package/lib/src/embed/sage.d.ts +7 -0
  136. package/lib/src/embed/sage.d.ts.map +1 -1
  137. package/lib/src/embed/sage.js +9 -0
  138. package/lib/src/embed/sage.js.map +1 -1
  139. package/lib/src/embed/search-bar.d.ts +7 -0
  140. package/lib/src/embed/search-bar.d.ts.map +1 -1
  141. package/lib/src/embed/search-bar.js +9 -0
  142. package/lib/src/embed/search-bar.js.map +1 -1
  143. package/lib/src/embed/search.d.ts +7 -0
  144. package/lib/src/embed/search.d.ts.map +1 -1
  145. package/lib/src/embed/search.js +9 -0
  146. package/lib/src/embed/search.js.map +1 -1
  147. package/lib/src/embed/ts-embed.d.ts +9 -3
  148. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  149. package/lib/src/embed/ts-embed.js +41 -8
  150. package/lib/src/embed/ts-embed.js.map +1 -1
  151. package/lib/src/embed/ts-embed.spec.js +156 -24
  152. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  153. package/lib/src/errors.d.ts +1 -0
  154. package/lib/src/errors.d.ts.map +1 -1
  155. package/lib/src/errors.js +1 -0
  156. package/lib/src/errors.js.map +1 -1
  157. package/lib/src/index.d.ts +2 -2
  158. package/lib/src/index.d.ts.map +1 -1
  159. package/lib/src/index.js +2 -2
  160. package/lib/src/index.js.map +1 -1
  161. package/lib/src/types.d.ts +142 -45
  162. package/lib/src/types.d.ts.map +1 -1
  163. package/lib/src/types.js +90 -15
  164. package/lib/src/types.js.map +1 -1
  165. package/lib/src/utils/logger.spec.d.ts +20 -5
  166. package/lib/src/utils/logger.spec.d.ts.map +1 -1
  167. package/lib/src/utils/processTrigger.d.ts +3 -2
  168. package/lib/src/utils/processTrigger.d.ts.map +1 -1
  169. package/lib/src/utils/processTrigger.js +4 -2
  170. package/lib/src/utils/processTrigger.js.map +1 -1
  171. package/lib/src/utils.d.ts +5 -1
  172. package/lib/src/utils.d.ts.map +1 -1
  173. package/lib/src/utils.js +8 -1
  174. package/lib/src/utils.js.map +1 -1
  175. package/package.json +1 -1
  176. package/src/embed/app.ts +45 -32
  177. package/src/embed/conversation.ts +11 -0
  178. package/src/embed/hostEventClient/contracts.ts +23 -4
  179. package/src/embed/hostEventClient/host-event-client.spec.ts +7 -1
  180. package/src/embed/hostEventClient/host-event-client.ts +22 -11
  181. package/src/embed/liveboard.spec.ts +1 -1
  182. package/src/embed/liveboard.ts +18 -5
  183. package/src/embed/sage.ts +11 -0
  184. package/src/embed/search-bar.tsx +11 -0
  185. package/src/embed/search.ts +11 -0
  186. package/src/embed/ts-embed.spec.ts +205 -18
  187. package/src/embed/ts-embed.ts +45 -9
  188. package/src/errors.ts +1 -0
  189. package/src/index.ts +6 -0
  190. package/src/types.ts +146 -43
  191. package/src/utils/processTrigger.ts +6 -3
  192. package/src/utils.ts +10 -1
@@ -136,7 +136,7 @@ describe('Unit test case for ts embed', () => {
136
136
  expect(mockProcessTrigger).toHaveBeenCalledWith(getIFrameEl(), HostEvent.UIPassthrough, 'http://tshost', {
137
137
  parameters: payload,
138
138
  type: UIPassthroughEvent.PinAnswerToLiveboard,
139
- });
139
+ }, undefined);
140
140
  });
141
141
  });
142
142
  test('Host event with empty param', async () => {
@@ -148,7 +148,7 @@ describe('Unit test case for ts embed', () => {
148
148
  mockProcessTrigger.mockResolvedValue({ session: 'test' });
149
149
  await executeAfterWait(async () => {
150
150
  await liveboardEmbed.trigger(HostEvent.Save);
151
- expect(mockProcessTrigger).toHaveBeenCalledWith(getIFrameEl(), HostEvent.Save, 'http://tshost', {});
151
+ expect(mockProcessTrigger).toHaveBeenCalledWith(getIFrameEl(), HostEvent.Save, 'http://tshost', {}, undefined);
152
152
  });
153
153
  });
154
154
  test('Host event with falsy param', async () => {
@@ -160,7 +160,7 @@ describe('Unit test case for ts embed', () => {
160
160
  mockProcessTrigger.mockResolvedValue({ session: 'test' });
161
161
  await executeAfterWait(async () => {
162
162
  await liveboardEmbed.trigger(HostEvent.Save, false);
163
- expect(mockProcessTrigger).toHaveBeenCalledWith(getIFrameEl(), HostEvent.Save, 'http://tshost', false);
163
+ expect(mockProcessTrigger).toHaveBeenCalledWith(getIFrameEl(), HostEvent.Save, 'http://tshost', false, undefined);
164
164
  });
165
165
  });
166
166
  test('should set proper height, width and min-height to iframe', async () => {
@@ -1115,7 +1115,7 @@ describe('Unit test case for ts embed', () => {
1115
1115
  const { mockPreauthInfoFetch, iFrame, } = await setup(true);
1116
1116
  expect(mockPreauthInfoFetch).toHaveBeenCalledTimes(1);
1117
1117
  await executeAfterWait(() => {
1118
- expect(mockProcessTrigger).toHaveBeenCalledWith(iFrame, HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }));
1118
+ expect(mockProcessTrigger).toHaveBeenCalledWith(iFrame, HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }), undefined);
1119
1119
  });
1120
1120
  });
1121
1121
  test('should not call InfoSuccess Event if overrideOrgId is true', async () => {
@@ -1218,28 +1218,28 @@ describe('Unit test case for ts embed', () => {
1218
1218
  const { mockGetPreauthInfo } = await setupPreauthTest('AppEmbed', undefined);
1219
1219
  await executeAfterWait(() => {
1220
1220
  expect(mockGetPreauthInfo).toHaveBeenCalledTimes(1);
1221
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }));
1221
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }), undefined);
1222
1222
  });
1223
1223
  });
1224
1224
  test('should enable preauth cache for FullAppEmbed with showPrimaryNavbar = false', async () => {
1225
1225
  const { mockGetPreauthInfo } = await setupPreauthTest('AppEmbed', false);
1226
1226
  await executeAfterWait(() => {
1227
1227
  expect(mockGetPreauthInfo).toHaveBeenCalledTimes(1);
1228
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }));
1228
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }), undefined);
1229
1229
  });
1230
1230
  });
1231
1231
  test('should enable preauth cache for SearchEmbed regardless of showPrimaryNavbar', async () => {
1232
1232
  const { mockGetPreauthInfo } = await setupPreauthTest('SearchEmbed', true);
1233
1233
  await executeAfterWait(() => {
1234
1234
  expect(mockGetPreauthInfo).toHaveBeenCalledTimes(1);
1235
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }));
1235
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }), undefined);
1236
1236
  });
1237
1237
  });
1238
1238
  test('should enable preauth cache for SearchEmbed (verifies fix for embed type regression)', async () => {
1239
1239
  const { mockGetPreauthInfo } = await setupPreauthTest('SearchEmbed', false);
1240
1240
  await executeAfterWait(() => {
1241
1241
  expect(mockGetPreauthInfo).toHaveBeenCalledTimes(1);
1242
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }));
1242
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.InfoSuccess, 'http://tshost', expect.objectContaining({ info: expect.any(Object) }), undefined);
1243
1243
  });
1244
1244
  });
1245
1245
  test('should disable preauth cache for FullAppEmbed with overrideOrgId (combined condition)', async () => {
@@ -2059,6 +2059,36 @@ describe('Unit test case for ts embed', () => {
2059
2059
  libEmbed.hidePreRender();
2060
2060
  expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
2061
2061
  });
2062
+ it('should set overflow:hidden when hidePreRender and remove when showPreRender', async () => {
2063
+ createRootEleForEmbed();
2064
+ window.ResizeObserver = window.ResizeObserver
2065
+ || jest.fn().mockImplementation(() => ({
2066
+ disconnect: jest.fn(),
2067
+ observe: jest.fn(),
2068
+ unobserve: jest.fn(),
2069
+ }));
2070
+ const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
2071
+ preRenderId: 'overflow-test',
2072
+ liveboardId: 'myLiveboardId',
2073
+ });
2074
+ await libEmbed.preRender();
2075
+ await waitFor(() => !!getIFrameEl());
2076
+ const preRenderIds = libEmbed.getPreRenderIds();
2077
+ const preRenderWrapper = document.getElementById(preRenderIds.wrapper);
2078
+ // After preRender (calls hidePreRender by default)
2079
+ // should have overflow:hidden
2080
+ expect(preRenderWrapper.style.overflow).toBe('hidden');
2081
+ expect(preRenderWrapper.style.opacity).toBe('0');
2082
+ // After showPreRender, overflow should be removed
2083
+ // to inherit from CSS
2084
+ libEmbed.showPreRender();
2085
+ expect(preRenderWrapper.style.overflow).toBe('');
2086
+ expect(preRenderWrapper.style.opacity).toBe('');
2087
+ // After hidePreRender again, overflow should be hidden
2088
+ libEmbed.hidePreRender();
2089
+ expect(preRenderWrapper.style.overflow).toBe('hidden');
2090
+ expect(preRenderWrapper.style.opacity).toBe('0');
2091
+ });
2062
2092
  it('it should connect with another object', async () => {
2063
2093
  createRootEleForEmbed();
2064
2094
  mockMessageChannel();
@@ -3293,7 +3323,7 @@ describe('Destroy error handling', () => {
3293
3323
  appEmbed.destroy();
3294
3324
  }).not.toThrow();
3295
3325
  expect(logSpy).toHaveBeenCalledWith('Error destroying TS Embed', expect.any(Error));
3296
- logSpy.mockRestore();
3326
+ logSpy.mockReset();
3297
3327
  });
3298
3328
  });
3299
3329
  describe('Fullscreen change handler behavior', () => {
@@ -3327,7 +3357,7 @@ describe('Fullscreen change handler behavior', () => {
3327
3357
  const event = new Event('fullscreenchange');
3328
3358
  document.dispatchEvent(event);
3329
3359
  await executeAfterWait(() => {
3330
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.ExitPresentMode, expect.any(String), expect.any(Object));
3360
+ expect(mockProcessTrigger).toHaveBeenLastCalledWith(expect.any(Object), HostEvent.ExitPresentMode, expect.any(String), expect.any(Object), undefined);
3331
3361
  });
3332
3362
  });
3333
3363
  test('should not trigger ExitPresentMode when entering fullscreen', async () => {
@@ -3356,17 +3386,7 @@ describe('Fullscreen change handler behavior', () => {
3356
3386
  });
3357
3387
  });
3358
3388
  describe('ShowPreRender with UpdateEmbedParams', () => {
3359
- beforeAll(() => {
3360
- init({
3361
- thoughtSpotHost: 'tshost',
3362
- authType: AuthType.None,
3363
- });
3364
- });
3365
- afterEach(() => {
3366
- const rootEle = document.getElementById('myRoot');
3367
- rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3368
- });
3369
- test('should trigger UpdateEmbedParams when showPreRender connects to existing prerendered component', async () => {
3389
+ const setupPreRenderTest = async (preRenderId, initialConfig) => {
3370
3390
  createRootEleForEmbed();
3371
3391
  mockMessageChannel();
3372
3392
  window.ResizeObserver = window.ResizeObserver
@@ -3376,24 +3396,136 @@ describe('ShowPreRender with UpdateEmbedParams', () => {
3376
3396
  unobserve: jest.fn(),
3377
3397
  }));
3378
3398
  const embed1 = new LiveboardEmbed('#tsEmbedDiv', {
3379
- preRenderId: 'update-params-test',
3380
- liveboardId: 'original-lb',
3399
+ preRenderId,
3400
+ ...initialConfig,
3381
3401
  });
3382
3402
  await embed1.preRender();
3383
3403
  await waitFor(() => !!getIFrameEl());
3384
3404
  embed1.isEmbedContainerLoaded = true;
3385
3405
  mockProcessTrigger.mockClear();
3386
3406
  mockProcessTrigger.mockResolvedValue({});
3407
+ return embed1;
3408
+ };
3409
+ beforeAll(() => {
3410
+ init({
3411
+ thoughtSpotHost: 'tshost',
3412
+ authType: AuthType.None,
3413
+ });
3414
+ });
3415
+ afterEach(() => {
3416
+ const rootEle = document.getElementById('myRoot');
3417
+ rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3418
+ });
3419
+ test('should trigger UpdateEmbedParams when showPreRender connects to existing prerendered component', async () => {
3420
+ await setupPreRenderTest('update-params-test', { liveboardId: 'original-lb' });
3387
3421
  const embed2 = new LiveboardEmbed('#tsEmbedDiv', {
3388
3422
  preRenderId: 'update-params-test',
3389
3423
  liveboardId: 'updated-lb',
3390
3424
  });
3391
3425
  embed2.showPreRender();
3392
3426
  await executeAfterWait(() => {
3393
- expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3427
+ expect(mockProcessTrigger).toHaveBeenLastCalledWith(expect.any(Object), HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3394
3428
  liveboardId: 'updated-lb',
3429
+ }), undefined);
3430
+ });
3431
+ });
3432
+ test('should trigger UpdateEmbedParams with runtime filters and visible vizs', async () => {
3433
+ await setupPreRenderTest('url-param-test', { liveboardId: 'original-lb' });
3434
+ const embed2 = new LiveboardEmbed('#tsEmbedDiv', {
3435
+ preRenderId: 'url-param-test',
3436
+ liveboardId: 'original-lb',
3437
+ visibleVizs: ['viz-1'],
3438
+ runtimeFilters: [
3439
+ {
3440
+ columnName: 'Color',
3441
+ operator: RuntimeFilterOp.IN,
3442
+ values: ['red', 'blue'],
3443
+ },
3444
+ {
3445
+ columnName: 'Region',
3446
+ operator: RuntimeFilterOp.EQ,
3447
+ values: ['North'],
3448
+ },
3449
+ ],
3450
+ });
3451
+ embed2.showPreRender();
3452
+ await executeAfterWait(() => {
3453
+ expect(mockProcessTrigger).toHaveBeenLastCalledWith(expect.any(Object), HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3454
+ liveboardId: 'original-lb',
3455
+ visibleVizs: ['viz-1'],
3456
+ runtimeFilters: [
3457
+ {
3458
+ columnName: 'Color',
3459
+ operator: RuntimeFilterOp.IN,
3460
+ values: ['red', 'blue'],
3461
+ },
3462
+ {
3463
+ columnName: 'Region',
3464
+ operator: RuntimeFilterOp.EQ,
3465
+ values: ['North'],
3466
+ },
3467
+ ],
3468
+ }), undefined);
3469
+ });
3470
+ });
3471
+ test('should trigger UpdateEmbedParams with updated config', async () => {
3472
+ await setupPreRenderTest('preserve-config-test', {
3473
+ liveboardId: 'original-lb',
3474
+ runtimeFilters: [
3475
+ {
3476
+ columnName: 'Color',
3477
+ operator: RuntimeFilterOp.IN,
3478
+ values: ['red', 'blue'],
3479
+ },
3480
+ ],
3481
+ });
3482
+ const embed2 = new LiveboardEmbed('#tsEmbedDiv', {
3483
+ preRenderId: 'preserve-config-test',
3484
+ liveboardId: 'original-lb',
3485
+ visibleVizs: ['viz-1', 'viz-2'],
3486
+ runtimeFilters: [
3487
+ {
3488
+ columnName: 'Region',
3489
+ operator: RuntimeFilterOp.EQ,
3490
+ values: ['North'],
3491
+ },
3492
+ ],
3493
+ });
3494
+ embed2.showPreRender();
3495
+ await executeAfterWait(() => {
3496
+ expect(mockProcessTrigger).toHaveBeenLastCalledWith(expect.any(Object), HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3497
+ liveboardId: 'original-lb',
3498
+ visibleVizs: ['viz-1', 'viz-2'],
3499
+ runtimeFilters: [
3500
+ {
3501
+ columnName: 'Region',
3502
+ operator: RuntimeFilterOp.EQ,
3503
+ values: ['North'],
3504
+ },
3505
+ ],
3506
+ }), undefined);
3507
+ });
3508
+ });
3509
+ test('should handle error when getUpdateEmbedParamsObject fails during showPreRender', async () => {
3510
+ await setupPreRenderTest('error-test', { liveboardId: 'original-lb' });
3511
+ const handleErrorSpy = jest.spyOn(LiveboardEmbed.prototype, 'handleError');
3512
+ const embed2 = new LiveboardEmbed('#tsEmbedDiv', {
3513
+ preRenderId: 'error-test',
3514
+ liveboardId: 'updated-lb',
3515
+ });
3516
+ const mockError = new Error('Failed to get params');
3517
+ jest.spyOn(embed2, 'getUpdateEmbedParamsObject').mockRejectedValue(mockError);
3518
+ embed2.showPreRender();
3519
+ await executeAfterWait(() => {
3520
+ expect(handleErrorSpy).toHaveBeenCalledWith(expect.objectContaining({
3521
+ errorType: ErrorDetailsTypes.API,
3522
+ message: 'Failed to get params',
3523
+ code: EmbedErrorCodes.UPDATE_PARAMS_FAILED,
3524
+ error: 'Failed to get params',
3395
3525
  }));
3526
+ expect(mockProcessTrigger).not.toHaveBeenCalledWith(expect.any(Object), HostEvent.UpdateEmbedParams, expect.any(String), expect.any(Object));
3396
3527
  });
3528
+ handleErrorSpy.mockRestore();
3397
3529
  });
3398
3530
  });
3399
3531
  //# sourceMappingURL=ts-embed.spec.js.map