@thoughtspot/visual-embed-sdk 1.44.1-test → 1.44.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.
Files changed (169) hide show
  1. package/cjs/package.json +6 -5
  2. package/cjs/src/auth.spec.js +43 -42
  3. package/cjs/src/auth.spec.js.map +1 -1
  4. package/cjs/src/authToken.spec.js +3 -3
  5. package/cjs/src/authToken.spec.js.map +1 -1
  6. package/cjs/src/embed/app.d.ts.map +1 -1
  7. package/cjs/src/embed/app.js +3 -1
  8. package/cjs/src/embed/app.js.map +1 -1
  9. package/cjs/src/embed/app.spec.js +12 -5
  10. package/cjs/src/embed/app.spec.js.map +1 -1
  11. package/cjs/src/embed/base.spec.js +11 -15
  12. package/cjs/src/embed/base.spec.js.map +1 -1
  13. package/cjs/src/embed/bodyless-conversation.spec.js +2 -2
  14. package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
  15. package/cjs/src/embed/conversation.spec.js +2 -2
  16. package/cjs/src/embed/conversation.spec.js.map +1 -1
  17. package/cjs/src/embed/embed.spec.js +101 -2
  18. package/cjs/src/embed/embed.spec.js.map +1 -1
  19. package/cjs/src/embed/events.spec.js +2 -2
  20. package/cjs/src/embed/events.spec.js.map +1 -1
  21. package/cjs/src/embed/hostEventClient/host-event-client.spec.js +1 -1
  22. package/cjs/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  23. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  24. package/cjs/src/embed/liveboard.js +3 -1
  25. package/cjs/src/embed/liveboard.js.map +1 -1
  26. package/cjs/src/embed/liveboard.spec.js +28 -26
  27. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  28. package/cjs/src/embed/pinboard.spec.js +1 -1
  29. package/cjs/src/embed/pinboard.spec.js.map +1 -1
  30. package/cjs/src/embed/sage.spec.js +2 -2
  31. package/cjs/src/embed/sage.spec.js.map +1 -1
  32. package/cjs/src/embed/search.spec.js +118 -2
  33. package/cjs/src/embed/search.spec.js.map +1 -1
  34. package/cjs/src/embed/ts-embed-trigger.spec.js +2 -3
  35. package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -1
  36. package/cjs/src/embed/ts-embed.spec.js +242 -66
  37. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  38. package/cjs/src/mixpanel-service.spec.js +1 -1
  39. package/cjs/src/mixpanel-service.spec.js.map +1 -1
  40. package/cjs/src/react/index.spec.js +3 -4
  41. package/cjs/src/react/index.spec.js.map +1 -1
  42. package/cjs/src/test/test-utils.js +1 -1
  43. package/cjs/src/test/test-utils.js.map +1 -1
  44. package/cjs/src/utils/authService/authService.spec.js +8 -8
  45. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  46. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  47. package/cjs/src/utils/graphql/answerService/answerService.spec.js +1 -1
  48. package/cjs/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  49. package/cjs/src/utils/graphql/graphql-request.spec.js +1 -1
  50. package/cjs/src/utils/graphql/graphql-request.spec.js.map +1 -1
  51. package/cjs/src/utils/graphql/sourceService.spec.js +1 -1
  52. package/cjs/src/utils/graphql/sourceService.spec.js.map +1 -1
  53. package/cjs/src/utils/logger.spec.d.ts +5 -20
  54. package/cjs/src/utils/logger.spec.d.ts.map +1 -1
  55. package/cjs/src/utils/processData.spec.js +17 -17
  56. package/cjs/src/utils/processData.spec.js.map +1 -1
  57. package/cjs/src/utils/processTrigger.spec.js +8 -8
  58. package/cjs/src/utils/processTrigger.spec.js.map +1 -1
  59. package/cjs/src/utils.d.ts +6 -0
  60. package/cjs/src/utils.d.ts.map +1 -1
  61. package/cjs/src/utils.js +32 -1
  62. package/cjs/src/utils.js.map +1 -1
  63. package/cjs/src/utils.spec.js +19 -10
  64. package/cjs/src/utils.spec.js.map +1 -1
  65. package/dist/{index-BXCUJ09L.js → index-CSFjfTVk.js} +1 -1
  66. package/dist/src/embed/app.d.ts.map +1 -1
  67. package/dist/src/embed/liveboard.d.ts.map +1 -1
  68. package/dist/src/utils/logger.spec.d.ts +5 -20
  69. package/dist/src/utils/logger.spec.d.ts.map +1 -1
  70. package/dist/src/utils.d.ts +6 -0
  71. package/dist/src/utils.d.ts.map +1 -1
  72. package/dist/tsembed-react.es.js +39 -5
  73. package/dist/tsembed-react.js +38 -4
  74. package/dist/tsembed.es.js +39 -5
  75. package/dist/tsembed.js +38 -4
  76. package/lib/package.json +6 -5
  77. package/lib/src/auth.spec.js +43 -42
  78. package/lib/src/auth.spec.js.map +1 -1
  79. package/lib/src/authToken.spec.js +3 -3
  80. package/lib/src/authToken.spec.js.map +1 -1
  81. package/lib/src/embed/app.d.ts.map +1 -1
  82. package/lib/src/embed/app.js +4 -2
  83. package/lib/src/embed/app.js.map +1 -1
  84. package/lib/src/embed/app.spec.js +12 -5
  85. package/lib/src/embed/app.spec.js.map +1 -1
  86. package/lib/src/embed/base.spec.js +11 -15
  87. package/lib/src/embed/base.spec.js.map +1 -1
  88. package/lib/src/embed/bodyless-conversation.spec.js +2 -2
  89. package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
  90. package/lib/src/embed/conversation.spec.js +2 -2
  91. package/lib/src/embed/conversation.spec.js.map +1 -1
  92. package/lib/src/embed/embed.spec.js +103 -4
  93. package/lib/src/embed/embed.spec.js.map +1 -1
  94. package/lib/src/embed/events.spec.js +2 -2
  95. package/lib/src/embed/events.spec.js.map +1 -1
  96. package/lib/src/embed/hostEventClient/host-event-client.spec.js +2 -2
  97. package/lib/src/embed/hostEventClient/host-event-client.spec.js.map +1 -1
  98. package/lib/src/embed/liveboard.d.ts.map +1 -1
  99. package/lib/src/embed/liveboard.js +4 -2
  100. package/lib/src/embed/liveboard.js.map +1 -1
  101. package/lib/src/embed/liveboard.spec.js +28 -26
  102. package/lib/src/embed/liveboard.spec.js.map +1 -1
  103. package/lib/src/embed/pinboard.spec.js +1 -1
  104. package/lib/src/embed/pinboard.spec.js.map +1 -1
  105. package/lib/src/embed/sage.spec.js +2 -2
  106. package/lib/src/embed/sage.spec.js.map +1 -1
  107. package/lib/src/embed/search.spec.js +118 -2
  108. package/lib/src/embed/search.spec.js.map +1 -1
  109. package/lib/src/embed/ts-embed-trigger.spec.js +2 -3
  110. package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -1
  111. package/lib/src/embed/ts-embed.spec.js +242 -66
  112. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  113. package/lib/src/mixpanel-service.spec.js +1 -1
  114. package/lib/src/mixpanel-service.spec.js.map +1 -1
  115. package/lib/src/react/index.spec.js +3 -4
  116. package/lib/src/react/index.spec.js.map +1 -1
  117. package/lib/src/test/test-utils.js +1 -1
  118. package/lib/src/test/test-utils.js.map +1 -1
  119. package/lib/src/utils/authService/authService.spec.js +8 -8
  120. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  121. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -1
  122. package/lib/src/utils/graphql/answerService/answerService.spec.js +1 -1
  123. package/lib/src/utils/graphql/answerService/answerService.spec.js.map +1 -1
  124. package/lib/src/utils/graphql/graphql-request.spec.js +1 -1
  125. package/lib/src/utils/graphql/graphql-request.spec.js.map +1 -1
  126. package/lib/src/utils/graphql/sourceService.spec.js +1 -1
  127. package/lib/src/utils/graphql/sourceService.spec.js.map +1 -1
  128. package/lib/src/utils/logger.spec.d.ts +5 -20
  129. package/lib/src/utils/logger.spec.d.ts.map +1 -1
  130. package/lib/src/utils/processData.spec.js +17 -17
  131. package/lib/src/utils/processData.spec.js.map +1 -1
  132. package/lib/src/utils/processTrigger.spec.js +8 -8
  133. package/lib/src/utils/processTrigger.spec.js.map +1 -1
  134. package/lib/src/utils.d.ts +6 -0
  135. package/lib/src/utils.d.ts.map +1 -1
  136. package/lib/src/utils.js +30 -0
  137. package/lib/src/utils.js.map +1 -1
  138. package/lib/src/utils.spec.js +20 -11
  139. package/lib/src/utils.spec.js.map +1 -1
  140. package/package.json +6 -5
  141. package/src/auth.spec.ts +53 -51
  142. package/src/authToken.spec.ts +3 -3
  143. package/src/embed/app.spec.ts +12 -5
  144. package/src/embed/app.ts +4 -2
  145. package/src/embed/base.spec.ts +16 -20
  146. package/src/embed/bodyless-conversation.spec.ts +2 -2
  147. package/src/embed/conversation.spec.ts +2 -2
  148. package/src/embed/embed.spec.ts +122 -2
  149. package/src/embed/events.spec.ts +2 -2
  150. package/src/embed/hostEventClient/host-event-client.spec.ts +2 -2
  151. package/src/embed/liveboard.spec.ts +30 -29
  152. package/src/embed/liveboard.ts +4 -2
  153. package/src/embed/pinboard.spec.ts +1 -1
  154. package/src/embed/sage.spec.ts +2 -2
  155. package/src/embed/search.spec.ts +133 -2
  156. package/src/embed/ts-embed-trigger.spec.ts +2 -3
  157. package/src/embed/ts-embed.spec.ts +317 -76
  158. package/src/mixpanel-service.spec.ts +1 -1
  159. package/src/react/index.spec.tsx +4 -5
  160. package/src/test/test-utils.ts +2 -2
  161. package/src/utils/authService/authService.spec.ts +17 -17
  162. package/src/utils/authService/tokenizedAuthService.spec.ts +4 -4
  163. package/src/utils/graphql/answerService/answerService.spec.ts +3 -3
  164. package/src/utils/graphql/graphql-request.spec.ts +2 -2
  165. package/src/utils/graphql/sourceService.spec.ts +1 -1
  166. package/src/utils/processData.spec.ts +26 -26
  167. package/src/utils/processTrigger.spec.ts +8 -8
  168. package/src/utils.spec.ts +22 -11
  169. package/src/utils.ts +34 -0
@@ -44,7 +44,7 @@ exports.defaultParams = `&${exports.defaultParamsWithoutHiddenActions}&hideActio
44
44
  const hideBydefault = `&hideAction=${(0, test_utils_1.fixedEncodeURI)(JSON.stringify([types_1.Action.ReportError, ...search_1.HiddenActionItemByDefaultForSearchEmbed]))}`;
45
45
  const defaultParamsWithHiddenActions = exports.defaultParamsWithoutHiddenActions + hideBydefault;
46
46
  beforeAll(() => {
47
- spyOn(window, 'alert');
47
+ jest.spyOn(window, 'alert').mockImplementation(() => { });
48
48
  });
49
49
  const customisations = {
50
50
  style: {
@@ -100,7 +100,7 @@ describe('Unit test case for ts embed', () => {
100
100
  (0, authToken_1.resetCachedAuthToken)();
101
101
  });
102
102
  beforeAll(() => {
103
- jest.spyOn(authInstance, 'postLoginService').mockResolvedValue(true);
103
+ jest.spyOn(authInstance, 'postLoginService').mockResolvedValue(undefined);
104
104
  });
105
105
  describe('Vaidate iframe properties', () => {
106
106
  beforeAll(() => {
@@ -208,7 +208,7 @@ describe('Unit test case for ts embed', () => {
208
208
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
209
209
  });
210
210
  await (0, test_utils_1.executeAfterWait)(() => {
211
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
211
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
212
212
  expect(baseInstance.handleAuth).not.toHaveBeenCalled();
213
213
  expect(mockPort.postMessage).toHaveBeenCalledWith({
214
214
  type: index_1.EmbedEvent.AuthExpire,
@@ -240,7 +240,7 @@ describe('Unit test case for ts embed', () => {
240
240
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
241
241
  });
242
242
  await (0, test_utils_1.executeAfterWait)(() => {
243
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
243
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
244
244
  expect(mockPort.postMessage).not.toHaveBeenCalledWith({
245
245
  type: index_1.EmbedEvent.AuthExpire,
246
246
  data: { authToken: 'test_auth_token2' },
@@ -592,7 +592,7 @@ describe('Unit test case for ts embed', () => {
592
592
  expect(iframe.contentWindow.postMessage).toHaveBeenCalledTimes(0);
593
593
  }, 1000);
594
594
  });
595
- test('should remove event listener when called off method', async (done) => {
595
+ test('should remove event listener when called off method', async () => {
596
596
  const mockEmbedEventPayload = {
597
597
  type: index_1.EmbedEvent.Save,
598
598
  data: { answerId: '123' },
@@ -610,10 +610,7 @@ describe('Unit test case for ts embed', () => {
610
610
  const iframe = (0, test_utils_1.getIFrameEl)();
611
611
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload);
612
612
  });
613
- await (0, test_utils_1.executeAfterWait)(() => {
614
- expect(mockFn).toHaveBeenCalledTimes(1);
615
- done();
616
- }, 100);
613
+ expect(mockFn).toHaveBeenCalledTimes(1);
617
614
  });
618
615
  });
619
616
  describe('Appinit embedEvent in cookieless authentication authType', () => {
@@ -854,7 +851,7 @@ describe('Unit test case for ts embed', () => {
854
851
  authType: index_1.AuthType.TrustedAuthTokenCookieless,
855
852
  getAuthToken: () => Promise.reject(),
856
853
  });
857
- jest.spyOn(logger_1.logger, 'error').mockResolvedValue(true);
854
+ jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
858
855
  });
859
856
  afterEach(() => {
860
857
  jest.clearAllMocks();
@@ -921,14 +918,14 @@ describe('Unit test case for ts embed', () => {
921
918
  const mockPort = {
922
919
  postMessage: jest.fn(),
923
920
  };
924
- const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockResolvedValueOnce(true);
921
+ const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
925
922
  await (0, test_utils_1.executeAfterWait)(() => {
926
923
  const iframe = (0, test_utils_1.getIFrameEl)();
927
924
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
928
925
  });
929
926
  await (0, test_utils_1.executeAfterWait)(() => {
930
927
  expect((0, test_utils_1.getRootEl)().innerHTML).toContain('Not logged in');
931
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
928
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
932
929
  expect(loggerSpy).toHaveBeenCalledTimes(1);
933
930
  });
934
931
  jest.spyOn(authService, 'verifyTokenService').mockClear();
@@ -945,7 +942,7 @@ describe('Unit test case for ts embed', () => {
945
942
  const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), { ...defaultViewConfig, preRenderId: 'test' });
946
943
  jest.spyOn(baseInstance, 'notifyAuthFailure');
947
944
  searchEmbed.preRender();
948
- const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockResolvedValueOnce(true);
945
+ const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
949
946
  const mockPort = {
950
947
  postMessage: jest.fn(),
951
948
  };
@@ -956,7 +953,7 @@ describe('Unit test case for ts embed', () => {
956
953
  const preRenderWrapper = document.getElementById('tsEmbed-pre-render-wrapper-test');
957
954
  await (0, test_utils_1.executeAfterWait)(() => {
958
955
  expect(preRenderWrapper.innerHTML).toContain('Not logged in');
959
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
956
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
960
957
  expect(loggerSpy).toHaveBeenCalledTimes(1);
961
958
  });
962
959
  jest.spyOn(authService, 'verifyTokenService').mockClear();
@@ -986,7 +983,7 @@ describe('Unit test case for ts embed', () => {
986
983
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload);
987
984
  });
988
985
  await (0, test_utils_1.executeAfterWait)(() => {
989
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
986
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
990
987
  expect(baseInstance.handleAuth).toHaveBeenCalled();
991
988
  });
992
989
  });
@@ -1011,7 +1008,7 @@ describe('Unit test case for ts embed', () => {
1011
1008
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload);
1012
1009
  });
1013
1010
  await (0, test_utils_1.executeAfterWait)(() => {
1014
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.EXPIRY);
1011
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.EXPIRY);
1015
1012
  expect(baseInstance.handleAuth).not.toHaveBeenCalled();
1016
1013
  });
1017
1014
  });
@@ -1027,9 +1024,7 @@ describe('Unit test case for ts embed', () => {
1027
1024
  const setup = async (isLoggedIn = false) => {
1028
1025
  jest.spyOn(window, 'addEventListener').mockImplementationOnce((event, handler, options) => {
1029
1026
  handler({
1030
- data: {
1031
- type: 'xyz',
1032
- },
1027
+ data: { type: 'xyz' },
1033
1028
  ports: [3000],
1034
1029
  source: null,
1035
1030
  });
@@ -1047,8 +1042,8 @@ describe('Unit test case for ts embed', () => {
1047
1042
  };
1048
1043
  test('mixpanel should call with VISUAL_SDK_RENDER_COMPLETE', async () => {
1049
1044
  await setup(true);
1050
- expect(mockMixPanelEvent).toBeCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
1051
- expect(mockMixPanelEvent).toBeCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_COMPLETE, expect.objectContaining({
1045
+ expect(mockMixPanelEvent).toHaveBeenCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
1046
+ expect(mockMixPanelEvent).toHaveBeenCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_COMPLETE, expect.objectContaining({
1052
1047
  elWidth: 0,
1053
1048
  elHeight: 0,
1054
1049
  }));
@@ -1058,12 +1053,9 @@ describe('Unit test case for ts embed', () => {
1058
1053
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
1059
1054
  expect(prefetchIframe.length).toBe(0);
1060
1055
  });
1061
- test('Should render failure when login fails', async (done) => {
1062
- setup(false);
1063
- (0, test_utils_1.executeAfterWait)(() => {
1064
- expect((0, test_utils_1.getRootEl)().innerHTML).toContain('Failed to Login');
1065
- done();
1066
- });
1056
+ test('Should render failure when login fails', async () => {
1057
+ await setup(false);
1058
+ expect((0, test_utils_1.getRootEl)().innerHTML).toContain('Failed to Login');
1067
1059
  });
1068
1060
  });
1069
1061
  describe('Trigger infoSuccess event on iframe load', () => {
@@ -1078,9 +1070,7 @@ describe('Unit test case for ts embed', () => {
1078
1070
  const setup = async (isLoggedIn = false, overrideOrgId = undefined) => {
1079
1071
  jest.spyOn(window, 'addEventListener').mockImplementationOnce((event, handler, options) => {
1080
1072
  handler({
1081
- data: {
1082
- type: 'xyz',
1083
- },
1073
+ data: { type: 'xyz' },
1084
1074
  ports: [3000],
1085
1075
  source: null,
1086
1076
  });
@@ -1313,19 +1303,19 @@ describe('Unit test case for ts embed', () => {
1313
1303
  const iFrame = document.createElement('div');
1314
1304
  iFrame.contentWindow = null;
1315
1305
  jest.spyOn(document, 'createElement').mockReturnValueOnce(iFrame);
1316
- spyOn(logger_1.logger, 'error');
1306
+ jest.spyOn(logger_1.logger, 'error');
1317
1307
  await tsEmbed.render();
1318
1308
  });
1319
1309
  test('mixpanel should call with VISUAL_SDK_RENDER_FAILED', () => {
1320
- expect(mockMixPanelEvent).toBeCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
1321
- expect(mockMixPanelEvent).toBeCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
1310
+ expect(mockMixPanelEvent).toHaveBeenCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
1311
+ expect(mockMixPanelEvent).toHaveBeenCalledWith(mixpanel_service_1.MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
1322
1312
  error: 'false',
1323
1313
  });
1324
1314
  });
1325
1315
  });
1326
1316
  describe('when visible actions are set', () => {
1327
1317
  test('should throw error when there are both visible and hidden actions - pinboard', async () => {
1328
- spyOn(logger_1.logger, 'error');
1318
+ jest.spyOn(logger_1.logger, 'error');
1329
1319
  const pinboardEmbed = new index_1.PinboardEmbed((0, test_utils_1.getRootEl)(), {
1330
1320
  hiddenActions: [types_1.Action.DownloadAsCsv],
1331
1321
  visibleActions: [types_1.Action.DownloadAsCsv],
@@ -1356,7 +1346,7 @@ describe('Unit test case for ts embed', () => {
1356
1346
  * @param visibleActions
1357
1347
  */
1358
1348
  async function testActionsForLiveboards(hiddenActions, visibleActions) {
1359
- spyOn(logger_1.logger, 'error');
1349
+ jest.spyOn(logger_1.logger, 'error');
1360
1350
  const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
1361
1351
  hiddenActions,
1362
1352
  visibleActions,
@@ -1402,7 +1392,7 @@ describe('Unit test case for ts embed', () => {
1402
1392
  });
1403
1393
  describe('when visible Tabs are set', () => {
1404
1394
  test('should throw error when there are both visible and hidden Tabs - pinboard', async () => {
1405
- spyOn(logger_1.logger, 'error');
1395
+ jest.spyOn(logger_1.logger, 'error');
1406
1396
  const pinboardEmbed = new index_1.PinboardEmbed((0, test_utils_1.getRootEl)(), {
1407
1397
  visibleTabs: [tabId1],
1408
1398
  hiddenTabs: [tabId2],
@@ -1433,7 +1423,7 @@ describe('Unit test case for ts embed', () => {
1433
1423
  * @param visibleTabs
1434
1424
  */
1435
1425
  async function testTabsForLiveboards(hiddenTabs, visibleTabs) {
1436
- spyOn(logger_1.logger, 'error');
1426
+ jest.spyOn(logger_1.logger, 'error');
1437
1427
  const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
1438
1428
  hiddenTabs,
1439
1429
  visibleTabs,
@@ -1486,7 +1476,7 @@ describe('Unit test case for ts embed', () => {
1486
1476
  });
1487
1477
  });
1488
1478
  test('Error should be true', async () => {
1489
- spyOn(logger_1.logger, 'error');
1479
+ jest.spyOn(logger_1.logger, 'error');
1490
1480
  const tsEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), {});
1491
1481
  await tsEmbed.render();
1492
1482
  expect(tsEmbed['isError']).toBe(true);
@@ -1503,7 +1493,7 @@ describe('Unit test case for ts embed', () => {
1503
1493
  jest.spyOn(config, 'getThoughtSpotHost').mockImplementation(() => 'http://tshost');
1504
1494
  });
1505
1495
  test('when isRendered is true than isError will be true', async () => {
1506
- spyOn(logger_1.logger, 'warn');
1496
+ jest.spyOn(logger_1.logger, 'warn');
1507
1497
  const viEmbedIns = new tsEmbedInstance.V1Embed((0, test_utils_1.getRootEl)(), defaultViewConfig);
1508
1498
  expect(viEmbedIns['isError']).toBe(false);
1509
1499
  await viEmbedIns.render();
@@ -1547,7 +1537,7 @@ describe('Unit test case for ts embed', () => {
1547
1537
  (0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&${test_utils_1.defaultParamsForPinboardEmbed}${defaultParamsPost}#/${path}`);
1548
1538
  });
1549
1539
  test('navigateToPage function use before render', async () => {
1550
- spyOn(logger_1.logger, 'log');
1540
+ jest.spyOn(logger_1.logger, 'log');
1551
1541
  const appEmbed = new index_1.AppEmbed((0, test_utils_1.getRootEl)(), {
1552
1542
  frameParams: {
1553
1543
  width: '100%',
@@ -1751,7 +1741,7 @@ describe('Unit test case for ts embed', () => {
1751
1741
  await appEmbed.render();
1752
1742
  (0, test_utils_1.expectUrlMatchesWithParams)((0, test_utils_1.getIFrameSrc)(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&additionalPendoKey=1234${defaultParamsPost}#/home`);
1753
1743
  });
1754
- xit('Sets the forceSAMLAutoRedirect param', async (done) => {
1744
+ xit('Sets the forceSAMLAutoRedirect param', async () => {
1755
1745
  jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
1756
1746
  (0, index_1.init)({
1757
1747
  thoughtSpotHost: 'tshost',
@@ -1764,11 +1754,8 @@ describe('Unit test case for ts embed', () => {
1764
1754
  },
1765
1755
  });
1766
1756
  appEmbed.render();
1767
- await (0, test_utils_1.waitFor)(() => !!(0, test_utils_1.getIFrameEl)()).then(() => {
1768
- expect((0, test_utils_1.getIFrameSrc)()).toContain('authType=EmbeddedSSO');
1769
- expect((0, test_utils_1.getIFrameSrc)()).toContain('forceSAMLAutoRedirect=true');
1770
- done();
1771
- });
1757
+ expect((0, test_utils_1.getIFrameSrc)()).toContain('authType=EmbeddedSSO');
1758
+ expect((0, test_utils_1.getIFrameSrc)()).toContain('forceSAMLAutoRedirect=true');
1772
1759
  });
1773
1760
  it('Should set the override locale for number/date and currency format', async () => {
1774
1761
  jest.spyOn(baseInstance, 'getAuthPromise').mockResolvedValue(true);
@@ -1918,8 +1905,7 @@ describe('Unit test case for ts embed', () => {
1918
1905
  beforeAll(() => {
1919
1906
  delete window.location;
1920
1907
  window.location = {
1921
- hash: '',
1922
- search: '',
1908
+ assign: jest.fn(),
1923
1909
  };
1924
1910
  });
1925
1911
  beforeEach(() => {
@@ -1989,7 +1975,7 @@ describe('Unit test case for ts embed', () => {
1989
1975
  });
1990
1976
  afterAll(() => {
1991
1977
  const rootEle = document.getElementById('myRoot');
1992
- rootEle.remove();
1978
+ rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
1993
1979
  jest.clearAllMocks();
1994
1980
  });
1995
1981
  it('should preRender and hide the iframe', async () => {
@@ -2023,9 +2009,9 @@ describe('Unit test case for ts embed', () => {
2023
2009
  };
2024
2010
  });
2025
2011
  // show preRender
2026
- const warnSpy = spyOn(logger_1.logger, 'warn');
2012
+ const warnSpy = jest.spyOn(logger_1.logger, 'warn');
2027
2013
  libEmbed.showPreRender();
2028
- expect(warnSpy).toHaveBeenCalledTimes(0);
2014
+ expect(warnSpy).toHaveBeenCalledTimes(1);
2029
2015
  resizeObserverCb([
2030
2016
  {
2031
2017
  target: tsEmbedDiv,
@@ -2046,7 +2032,7 @@ describe('Unit test case for ts embed', () => {
2046
2032
  });
2047
2033
  it('preRender called without preRenderId should log error ', () => {
2048
2034
  (0, test_utils_1.createRootEleForEmbed)();
2049
- spyOn(logger_1.logger, 'error');
2035
+ jest.spyOn(logger_1.logger, 'error');
2050
2036
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2051
2037
  liveboardId: 'myLiveboardId',
2052
2038
  });
@@ -2073,7 +2059,7 @@ describe('Unit test case for ts embed', () => {
2073
2059
  preRenderId: 'i-am-preRendered',
2074
2060
  liveboardId: 'myLiveboardId',
2075
2061
  });
2076
- spyOn(libEmbed, 'preRender');
2062
+ jest.spyOn(libEmbed, 'preRender');
2077
2063
  libEmbed.hidePreRender();
2078
2064
  expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
2079
2065
  });
@@ -2107,8 +2093,8 @@ describe('Unit test case for ts embed', () => {
2107
2093
  const libEmbed = new index_1.LiveboardEmbed('#tsEmbedDiv', {
2108
2094
  liveboardId: 'myLiveboardId',
2109
2095
  });
2110
- spyOn(libEmbed, 'preRender');
2111
- spyOn(logger_1.logger, 'error');
2096
+ jest.spyOn(libEmbed, 'preRender');
2097
+ jest.spyOn(logger_1.logger, 'error');
2112
2098
  libEmbed.showPreRender();
2113
2099
  expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
2114
2100
  expect(logger_1.logger.error).toHaveBeenCalledTimes(1);
@@ -2138,7 +2124,7 @@ describe('Unit test case for ts embed', () => {
2138
2124
  preRenderId: 'test',
2139
2125
  });
2140
2126
  await libEmbed.syncPreRenderStyle();
2141
- expect(logger_1.logger.error).toBeCalledWith('PreRender should be called before using syncPreRenderStyle');
2127
+ expect(logger_1.logger.error).toHaveBeenCalledWith('PreRender should be called before using syncPreRenderStyle');
2142
2128
  logger_1.logger.error.mockClear();
2143
2129
  });
2144
2130
  });
@@ -2171,7 +2157,7 @@ describe('Unit test case for ts embed', () => {
2171
2157
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
2172
2158
  });
2173
2159
  await (0, test_utils_1.executeAfterWait)(() => {
2174
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2160
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2175
2161
  expect(baseInstance.handleAuth).toHaveBeenCalled();
2176
2162
  expect(mockPort.postMessage).toHaveBeenCalledWith({
2177
2163
  type: index_1.EmbedEvent.IdleSessionTimeout,
@@ -2197,14 +2183,14 @@ describe('Unit test case for ts embed', () => {
2197
2183
  const mockPort = {
2198
2184
  postMessage: jest.fn(),
2199
2185
  };
2200
- const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockResolvedValueOnce(true);
2186
+ const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
2201
2187
  await (0, test_utils_1.executeAfterWait)(() => {
2202
2188
  const iframe = (0, test_utils_1.getIFrameEl)();
2203
2189
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
2204
2190
  });
2205
2191
  await (0, test_utils_1.executeAfterWait)(() => {
2206
2192
  expect((0, test_utils_1.getRootEl)().innerHTML).toContain('Not logged in');
2207
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2193
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2208
2194
  expect(loggerSpy).toHaveBeenCalledTimes(1);
2209
2195
  });
2210
2196
  jest.spyOn(authService, 'verifyTokenService').mockClear();
@@ -2229,13 +2215,13 @@ describe('Unit test case for ts embed', () => {
2229
2215
  const mockPort = {
2230
2216
  postMessage: jest.fn(),
2231
2217
  };
2232
- const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockResolvedValueOnce(true);
2218
+ const loggerSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
2233
2219
  await (0, test_utils_1.executeAfterWait)(() => {
2234
2220
  const iframe = (0, test_utils_1.getIFrameEl)();
2235
2221
  (0, test_utils_1.postMessageToParent)(iframe.contentWindow, mockEmbedEventPayload, mockPort);
2236
2222
  });
2237
2223
  await (0, test_utils_1.executeAfterWait)(() => {
2238
- expect(baseInstance.notifyAuthFailure).toBeCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2224
+ expect(baseInstance.notifyAuthFailure).toHaveBeenCalledWith(authInstance.AuthFailureType.IDLE_SESSION_TIMEOUT);
2239
2225
  expect(loggerSpy).toHaveBeenCalledTimes(0);
2240
2226
  });
2241
2227
  jest.spyOn(authService, 'verifyTokenService').mockClear();
@@ -2243,7 +2229,7 @@ describe('Unit test case for ts embed', () => {
2243
2229
  });
2244
2230
  });
2245
2231
  describe('Renders should wait for init to completed', () => {
2246
- const errorSpy = jest.spyOn(logger_1.logger, 'error').mockResolvedValue(true);
2232
+ const errorSpy = jest.spyOn(logger_1.logger, 'error').mockImplementation(() => { });
2247
2233
  beforeEach(() => {
2248
2234
  errorSpy.mockClear();
2249
2235
  (0, utils_1.resetValueFromWindow)('initFlagKey');
@@ -2887,7 +2873,7 @@ describe('Unit test case for ts embed', () => {
2887
2873
  });
2888
2874
  test('should execute callbacks through executeEvent function', async () => {
2889
2875
  let capturedExecuteEvent;
2890
- mockHandleInterceptEvent.mockImplementation((params) => {
2876
+ mockHandleInterceptEvent.mockImplementation(async (params) => {
2891
2877
  capturedExecuteEvent = params.executeEvent;
2892
2878
  });
2893
2879
  const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
@@ -2920,7 +2906,7 @@ describe('Unit test case for ts embed', () => {
2920
2906
  });
2921
2907
  test('should call triggerUIPassThrough through getUnsavedAnswerTml function', async () => {
2922
2908
  let capturedGetUnsavedAnswerTml;
2923
- mockHandleInterceptEvent.mockImplementation((params) => {
2909
+ mockHandleInterceptEvent.mockImplementation(async (params) => {
2924
2910
  capturedGetUnsavedAnswerTml = params.getUnsavedAnswerTml;
2925
2911
  });
2926
2912
  const mockTmlResponse = { tml: 'test-tml-content' };
@@ -3070,7 +3056,7 @@ describe('Unit test case for ts embed', () => {
3070
3056
  });
3071
3057
  test('should pass eventPort to executeCallbacks', async () => {
3072
3058
  let capturedExecuteEvent;
3073
- mockHandleInterceptEvent.mockImplementation((params) => {
3059
+ mockHandleInterceptEvent.mockImplementation(async (params) => {
3074
3060
  capturedExecuteEvent = params.executeEvent;
3075
3061
  });
3076
3062
  const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
@@ -3103,7 +3089,7 @@ describe('Unit test case for ts embed', () => {
3103
3089
  });
3104
3090
  test('should handle getUnsavedAnswerTml with empty response', async () => {
3105
3091
  let capturedGetUnsavedAnswerTml;
3106
- mockHandleInterceptEvent.mockImplementation((params) => {
3092
+ mockHandleInterceptEvent.mockImplementation(async (params) => {
3107
3093
  capturedGetUnsavedAnswerTml = params.getUnsavedAnswerTml;
3108
3094
  });
3109
3095
  mockProcessTrigger.mockResolvedValue([]);
@@ -3224,4 +3210,194 @@ describe('Additional Coverage Tests', () => {
3224
3210
  expect(removeEventListenerSpy).toHaveBeenCalledWith('message', expect.any(Function));
3225
3211
  });
3226
3212
  });
3213
+ describe('Trigger method edge cases', () => {
3214
+ beforeAll(() => {
3215
+ (0, index_1.init)({
3216
+ thoughtSpotHost: 'tshost',
3217
+ authType: index_1.AuthType.None,
3218
+ });
3219
+ });
3220
+ beforeEach(() => {
3221
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
3222
+ });
3223
+ test('should handle error when trigger is called with undefined messageType', async () => {
3224
+ const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
3225
+ jest.spyOn(logger_1.logger, 'error');
3226
+ await searchEmbed.render();
3227
+ await (0, test_utils_1.executeAfterWait)(async () => {
3228
+ const result = await searchEmbed.trigger(undefined);
3229
+ expect(result).toBeNull();
3230
+ expect(logger_1.logger.error).toHaveBeenCalledWith(expect.objectContaining({
3231
+ errorType: types_1.ErrorDetailsTypes.VALIDATION_ERROR,
3232
+ code: types_1.EmbedErrorCodes.HOST_EVENT_TYPE_UNDEFINED,
3233
+ }));
3234
+ });
3235
+ });
3236
+ test('should return null when trigger is called before iframe is ready', async () => {
3237
+ jest.spyOn(baseInstance, 'getAuthPromise').mockRejectedValueOnce(new Error('Auth failed'));
3238
+ const searchEmbed = new index_1.SearchEmbed((0, test_utils_1.getRootEl)(), defaultViewConfig);
3239
+ jest.spyOn(logger_1.logger, 'debug');
3240
+ await searchEmbed.render();
3241
+ await (0, test_utils_1.executeAfterWait)(async () => {
3242
+ const result = await searchEmbed.trigger(types_1.HostEvent.Reload);
3243
+ expect(result).toBeNull();
3244
+ });
3245
+ });
3246
+ });
3247
+ describe('PreRender replaceExistingPreRender scenarios', () => {
3248
+ beforeAll(() => {
3249
+ (0, index_1.init)({
3250
+ thoughtSpotHost: 'tshost',
3251
+ authType: index_1.AuthType.None,
3252
+ });
3253
+ });
3254
+ afterEach(() => {
3255
+ const rootEle = document.getElementById('myRoot');
3256
+ rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3257
+ });
3258
+ test('should skip re-rendering when preRender already exists and replaceExistingPreRender is false', async () => {
3259
+ (0, test_utils_1.createRootEleForEmbed)();
3260
+ const embed1 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3261
+ preRenderId: 'no-replace-test',
3262
+ liveboardId: 'lb1',
3263
+ });
3264
+ await embed1.preRender();
3265
+ await (0, test_utils_1.waitFor)(() => !!(0, test_utils_1.getIFrameEl)());
3266
+ const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3267
+ preRenderId: 'no-replace-test',
3268
+ liveboardId: 'lb2',
3269
+ });
3270
+ const result = await embed2.preRender(false, false);
3271
+ expect(result).toBe(embed2);
3272
+ // The original iframe should still have lb1
3273
+ const iframe = (0, test_utils_1.getIFrameEl)();
3274
+ expect(iframe.src).toContain('lb1');
3275
+ });
3276
+ });
3277
+ describe('Destroy error handling', () => {
3278
+ beforeAll(() => {
3279
+ (0, index_1.init)({
3280
+ thoughtSpotHost: 'tshost',
3281
+ authType: index_1.AuthType.None,
3282
+ });
3283
+ });
3284
+ beforeEach(() => {
3285
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
3286
+ });
3287
+ test('should handle error gracefully when destroy fails', async () => {
3288
+ const appEmbed = new index_1.AppEmbed((0, test_utils_1.getRootEl)(), {
3289
+ frameParams: { width: '100%', height: '100%' },
3290
+ });
3291
+ await appEmbed.render();
3292
+ const logSpy = jest.spyOn(logger_1.logger, 'log').mockImplementation(() => { });
3293
+ jest.spyOn(Node.prototype, 'removeChild').mockImplementationOnce(() => {
3294
+ throw new Error('Remove failed');
3295
+ });
3296
+ expect(() => {
3297
+ appEmbed.destroy();
3298
+ }).not.toThrow();
3299
+ expect(logSpy).toHaveBeenCalledWith('Error destroying TS Embed', expect.any(Error));
3300
+ logSpy.mockRestore();
3301
+ });
3302
+ });
3303
+ describe('Fullscreen change handler behavior', () => {
3304
+ beforeAll(() => {
3305
+ (0, index_1.init)({
3306
+ thoughtSpotHost: 'tshost',
3307
+ authType: index_1.AuthType.None,
3308
+ disableFullscreenPresentation: false,
3309
+ });
3310
+ });
3311
+ beforeEach(() => {
3312
+ document.body.innerHTML = (0, test_utils_1.getDocumentBody)();
3313
+ });
3314
+ test('should trigger ExitPresentMode when exiting fullscreen', async () => {
3315
+ const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
3316
+ ...defaultViewConfig,
3317
+ liveboardId: 'test-lb',
3318
+ });
3319
+ await liveboardEmbed.render();
3320
+ await (0, test_utils_1.executeAfterWait)(() => {
3321
+ const iframe = (0, test_utils_1.getIFrameEl)();
3322
+ expect(iframe).toBeTruthy();
3323
+ });
3324
+ mockProcessTrigger.mockResolvedValue({});
3325
+ liveboardEmbed['setupFullscreenChangeHandler']();
3326
+ Object.defineProperty(document, 'fullscreenElement', {
3327
+ value: null,
3328
+ writable: true,
3329
+ configurable: true,
3330
+ });
3331
+ const event = new Event('fullscreenchange');
3332
+ document.dispatchEvent(event);
3333
+ await (0, test_utils_1.executeAfterWait)(() => {
3334
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.ExitPresentMode, expect.any(String), expect.any(Object));
3335
+ });
3336
+ });
3337
+ test('should not trigger ExitPresentMode when entering fullscreen', async () => {
3338
+ const liveboardEmbed = new index_1.LiveboardEmbed((0, test_utils_1.getRootEl)(), {
3339
+ ...defaultViewConfig,
3340
+ liveboardId: 'test-lb-fullscreen',
3341
+ });
3342
+ await liveboardEmbed.render();
3343
+ await (0, test_utils_1.executeAfterWait)(() => {
3344
+ const iframe = (0, test_utils_1.getIFrameEl)();
3345
+ expect(iframe).toBeTruthy();
3346
+ });
3347
+ mockProcessTrigger.mockClear();
3348
+ mockProcessTrigger.mockResolvedValue({});
3349
+ liveboardEmbed['setupFullscreenChangeHandler']();
3350
+ Object.defineProperty(document, 'fullscreenElement', {
3351
+ value: (0, test_utils_1.getIFrameEl)(),
3352
+ writable: true,
3353
+ configurable: true,
3354
+ });
3355
+ const event = new Event('fullscreenchange');
3356
+ document.dispatchEvent(event);
3357
+ await (0, test_utils_1.executeAfterWait)(() => {
3358
+ expect(mockProcessTrigger).not.toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.ExitPresentMode, expect.any(String), expect.any(Object));
3359
+ });
3360
+ });
3361
+ });
3362
+ describe('ShowPreRender with UpdateEmbedParams', () => {
3363
+ beforeAll(() => {
3364
+ (0, index_1.init)({
3365
+ thoughtSpotHost: 'tshost',
3366
+ authType: index_1.AuthType.None,
3367
+ });
3368
+ });
3369
+ afterEach(() => {
3370
+ const rootEle = document.getElementById('myRoot');
3371
+ rootEle === null || rootEle === void 0 ? void 0 : rootEle.remove();
3372
+ });
3373
+ test('should trigger UpdateEmbedParams when showPreRender connects to existing prerendered component', async () => {
3374
+ (0, test_utils_1.createRootEleForEmbed)();
3375
+ (0, test_utils_1.mockMessageChannel)();
3376
+ window.ResizeObserver = window.ResizeObserver
3377
+ || jest.fn().mockImplementation(() => ({
3378
+ disconnect: jest.fn(),
3379
+ observe: jest.fn(),
3380
+ unobserve: jest.fn(),
3381
+ }));
3382
+ const embed1 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3383
+ preRenderId: 'update-params-test',
3384
+ liveboardId: 'original-lb',
3385
+ });
3386
+ await embed1.preRender();
3387
+ await (0, test_utils_1.waitFor)(() => !!(0, test_utils_1.getIFrameEl)());
3388
+ embed1.isEmbedContainerLoaded = true;
3389
+ mockProcessTrigger.mockClear();
3390
+ mockProcessTrigger.mockResolvedValue({});
3391
+ const embed2 = new index_1.LiveboardEmbed('#tsEmbedDiv', {
3392
+ preRenderId: 'update-params-test',
3393
+ liveboardId: 'updated-lb',
3394
+ });
3395
+ embed2.showPreRender();
3396
+ await (0, test_utils_1.executeAfterWait)(() => {
3397
+ expect(mockProcessTrigger).toHaveBeenCalledWith(expect.any(Object), types_1.HostEvent.UpdateEmbedParams, expect.any(String), expect.objectContaining({
3398
+ liveboardId: 'updated-lb',
3399
+ }));
3400
+ });
3401
+ });
3402
+ });
3227
3403
  //# sourceMappingURL=ts-embed.spec.js.map