@thoughtspot/visual-embed-sdk 1.39.2-alpha.1 → 1.39.2-alpha.3
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/cjs/package.json +1 -1
- package/cjs/src/config.spec.js +9 -0
- package/cjs/src/config.spec.js.map +1 -1
- package/cjs/src/embed/app.d.ts +75 -15
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +68 -9
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +360 -7
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +19 -7
- package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +24 -4
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.spec.js +8 -190
- package/cjs/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +2 -60
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +1 -9
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/conversation.spec.js +0 -102
- package/cjs/src/embed/conversation.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +56 -0
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +46 -0
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +206 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +1 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +1 -0
- package/cjs/src/errors.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js +2 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +3 -2
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/index.d.ts +71 -20
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +79 -42
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +436 -100
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +46 -4
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +28 -0
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/cjs/src/utils/graphql/nlsService/conversation-service.js +2 -0
- package/cjs/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
- package/cjs/src/utils/processTrigger.js +2 -1
- package/cjs/src/utils/processTrigger.js.map +1 -1
- package/cjs/src/utils.d.ts +6 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +23 -3
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +237 -1
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/index-D1pyb7RG.js +7371 -0
- package/dist/index-e3Uw3YFO.js +7371 -0
- package/dist/src/embed/app.d.ts +75 -15
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +19 -7
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +2 -60
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +56 -0
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/errors.d.ts +1 -0
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +71 -20
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +46 -4
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +276 -74
- package/dist/tsembed-react.js +276 -72
- package/dist/tsembed.es.js +194 -27
- package/dist/tsembed.js +192 -25
- package/dist/visual-embed-sdk-react-full.d.ts +246 -105
- package/dist/visual-embed-sdk-react.d.ts +246 -105
- package/dist/visual-embed-sdk.d.ts +176 -86
- package/lib/package.json +1 -1
- package/lib/src/config.spec.js +9 -0
- package/lib/src/config.spec.js.map +1 -1
- package/lib/src/embed/app.d.ts +75 -15
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +68 -9
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +361 -8
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +19 -7
- package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +23 -4
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.spec.js +9 -191
- package/lib/src/embed/bodyless-conversation.spec.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +2 -60
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +2 -10
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/conversation.spec.js +2 -104
- package/lib/src/embed/conversation.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +56 -0
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +47 -1
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +206 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/errors.d.ts +1 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +1 -0
- package/lib/src/errors.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/index.d.ts +71 -20
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +79 -43
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +439 -103
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +46 -4
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +28 -0
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/graphql/nlsService/conversation-service.d.ts.map +1 -1
- package/lib/src/utils/graphql/nlsService/conversation-service.js +2 -0
- package/lib/src/utils/graphql/nlsService/conversation-service.js.map +1 -1
- package/lib/src/utils/processTrigger.js +2 -1
- package/lib/src/utils/processTrigger.js.map +1 -1
- package/lib/src/utils.d.ts +6 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +21 -2
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +238 -2
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +178 -88
- package/package.json +1 -1
- package/src/config.spec.ts +11 -0
- package/src/embed/app.spec.ts +451 -8
- package/src/embed/app.ts +131 -27
- package/src/embed/bodyless-conversation.spec.ts +9 -203
- package/src/embed/bodyless-conversation.ts +24 -10
- package/src/embed/conversation.spec.ts +5 -131
- package/src/embed/conversation.ts +10 -82
- package/src/embed/liveboard.spec.ts +254 -1
- package/src/embed/liveboard.ts +96 -5
- package/src/errors.ts +1 -0
- package/src/index.ts +2 -0
- package/src/react/all-types-export.ts +2 -1
- package/src/react/index.spec.tsx +556 -157
- package/src/react/index.tsx +117 -51
- package/src/types.ts +42 -0
- package/src/utils/graphql/nlsService/conversation-service.ts +2 -0
- package/src/utils/processTrigger.ts +1 -1
- package/src/utils.spec.ts +279 -2
- package/src/utils.ts +28 -2
package/lib/src/embed/app.js
CHANGED
|
@@ -8,13 +8,12 @@
|
|
|
8
8
|
* @author Ayon Ghosh <ayon.ghosh@thoughtspot.com>
|
|
9
9
|
*/
|
|
10
10
|
import { logger } from '../utils/logger';
|
|
11
|
-
import { getQueryParamString } from '../utils';
|
|
11
|
+
import { calculateVisibleElementData, getQueryParamString } from '../utils';
|
|
12
12
|
import { Param, HostEvent, EmbedEvent, } from '../types';
|
|
13
13
|
import { V1Embed } from './ts-embed';
|
|
14
14
|
/**
|
|
15
15
|
* Pages within the ThoughtSpot app that can be embedded.
|
|
16
16
|
*/
|
|
17
|
-
// eslint-disable-next-line no-shadow
|
|
18
17
|
export var Page;
|
|
19
18
|
(function (Page) {
|
|
20
19
|
/**
|
|
@@ -100,16 +99,46 @@ export var HomePage;
|
|
|
100
99
|
*/
|
|
101
100
|
HomePage["Modular"] = "v2";
|
|
102
101
|
})(HomePage || (HomePage = {}));
|
|
102
|
+
/**
|
|
103
|
+
* Define the version of the list page
|
|
104
|
+
* @version SDK: 1.40.0 | ThoughtSpot: 10.12.0.cl
|
|
105
|
+
*/
|
|
106
|
+
export var ListPage;
|
|
107
|
+
(function (ListPage) {
|
|
108
|
+
/**
|
|
109
|
+
* List (v2) is the traditional List Experience.
|
|
110
|
+
* It serves as the foundational version of the list page.
|
|
111
|
+
*/
|
|
112
|
+
ListPage["List"] = "v2";
|
|
113
|
+
/**
|
|
114
|
+
* ListWithUXChanges (v3) introduces the new updated list page with UX changes.
|
|
115
|
+
*/
|
|
116
|
+
ListPage["ListWithUXChanges"] = "v3";
|
|
117
|
+
})(ListPage || (ListPage = {}));
|
|
103
118
|
/**
|
|
104
119
|
* Embeds full ThoughtSpot experience in a host application.
|
|
105
120
|
* @group Embed components
|
|
106
121
|
*/
|
|
107
122
|
export class AppEmbed extends V1Embed {
|
|
108
|
-
// eslint-disable-next-line no-useless-constructor
|
|
109
123
|
constructor(domSelector, viewConfig) {
|
|
110
124
|
viewConfig.embedComponentType = 'AppEmbed';
|
|
111
125
|
super(domSelector, viewConfig);
|
|
112
126
|
this.defaultHeight = '100%';
|
|
127
|
+
this.sendFullHeightLazyLoadData = () => {
|
|
128
|
+
const data = calculateVisibleElementData(this.iFrame);
|
|
129
|
+
this.trigger(HostEvent.VisibleEmbedCoordinates, data);
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* This is a handler for the RequestVisibleEmbedCoordinates event.
|
|
133
|
+
* It is used to send the visible coordinates data to the host application.
|
|
134
|
+
* @param data The event payload
|
|
135
|
+
* @param responder The responder function
|
|
136
|
+
*/
|
|
137
|
+
this.requestVisibleEmbedCoordinatesHandler = (data, responder) => {
|
|
138
|
+
logger.info('Sending RequestVisibleEmbedCoordinates', data);
|
|
139
|
+
const visibleCoordinatesData = calculateVisibleElementData(this.iFrame);
|
|
140
|
+
responder({ type: EmbedEvent.RequestVisibleEmbedCoordinates, data: visibleCoordinatesData });
|
|
141
|
+
};
|
|
113
142
|
/**
|
|
114
143
|
* Set the iframe height as per the computed height received
|
|
115
144
|
* from the ThoughtSpot app.
|
|
@@ -118,6 +147,7 @@ export class AppEmbed extends V1Embed {
|
|
|
118
147
|
this.updateIFrameHeight = (data) => {
|
|
119
148
|
var _a;
|
|
120
149
|
this.setIFrameHeight(Math.max(data.data, (_a = this.iFrame) === null || _a === void 0 ? void 0 : _a.scrollHeight));
|
|
150
|
+
this.sendFullHeightLazyLoadData();
|
|
121
151
|
};
|
|
122
152
|
this.embedIframeCenter = (data, responder) => {
|
|
123
153
|
const obj = this.getIframeCenter();
|
|
@@ -147,6 +177,7 @@ export class AppEmbed extends V1Embed {
|
|
|
147
177
|
this.on(EmbedEvent.RouteChange, this.setIframeHeightForNonEmbedLiveboard);
|
|
148
178
|
this.on(EmbedEvent.EmbedHeight, this.updateIFrameHeight);
|
|
149
179
|
this.on(EmbedEvent.EmbedIframeCenter, this.embedIframeCenter);
|
|
180
|
+
this.on(EmbedEvent.RequestVisibleEmbedCoordinates, this.requestVisibleEmbedCoordinatesHandler);
|
|
150
181
|
}
|
|
151
182
|
}
|
|
152
183
|
/**
|
|
@@ -154,9 +185,7 @@ export class AppEmbed extends V1Embed {
|
|
|
154
185
|
* embedded Liveboard or visualization.
|
|
155
186
|
*/
|
|
156
187
|
getEmbedParams() {
|
|
157
|
-
const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false,
|
|
158
|
-
/* eslint-disable-next-line max-len */
|
|
159
|
-
dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
|
|
188
|
+
const { tag, hideObjects, liveboardV2, showPrimaryNavbar, disableProfileAndHelp, hideHamburger, hideObjectSearch, hideNotification, hideApplicationSwitcher, hideOrgSwitcher, enableSearchAssist, fullHeight, dataPanelV2 = false, hideLiveboardHeader = false, showLiveboardTitle = true, showLiveboardDescription = true, hideHomepageLeftNav = false, modularHomeExperience = false, isLiveboardHeaderSticky = true, enableAskSage, collapseSearchBarInitially = false, enable2ColumnLayout, enableCustomColumnGroups = false, isOnBeforeGetVizDataInterceptEnabled = false, dataPanelCustomGroupsAccordionInitialState = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL, collapseSearchBar = true, isLiveboardCompactHeaderEnabled = false, showLiveboardVerifiedBadge = true, showLiveboardReverifyBanner = true, hideIrrelevantChipsInLiveboardTabs = false, homePageSearchBarMode, isUnifiedSearchExperienceEnabled = true, enablePendoHelp = true, discoveryExperience, coverAndFilterOptionInPDF = false, isLiveboardStylingAndGroupingEnabled, } = this.viewConfig;
|
|
160
189
|
let params = {};
|
|
161
190
|
params[Param.PrimaryNavHidden] = !showPrimaryNavbar;
|
|
162
191
|
params[Param.HideProfleAndHelp] = !!disableProfileAndHelp;
|
|
@@ -185,6 +214,10 @@ export class AppEmbed extends V1Embed {
|
|
|
185
214
|
}
|
|
186
215
|
if (fullHeight === true) {
|
|
187
216
|
params[Param.fullHeight] = true;
|
|
217
|
+
if (this.viewConfig.lazyLoadingForFullHeight) {
|
|
218
|
+
params[Param.IsLazyLoadingForEmbedEnabled] = true;
|
|
219
|
+
params[Param.RootMarginForLazyLoad] = this.viewConfig.lazyLoadingMargin;
|
|
220
|
+
}
|
|
188
221
|
}
|
|
189
222
|
if (tag) {
|
|
190
223
|
params[Param.Tag] = tag;
|
|
@@ -205,7 +238,6 @@ export class AppEmbed extends V1Embed {
|
|
|
205
238
|
params[Param.enableAskSage] = enableAskSage;
|
|
206
239
|
}
|
|
207
240
|
if (isOnBeforeGetVizDataInterceptEnabled) {
|
|
208
|
-
/* eslint-disable-next-line max-len */
|
|
209
241
|
params[Param.IsOnBeforeGetVizDataInterceptEnabled] = isOnBeforeGetVizDataInterceptEnabled;
|
|
210
242
|
}
|
|
211
243
|
if (homePageSearchBarMode) {
|
|
@@ -226,11 +258,9 @@ export class AppEmbed extends V1Embed {
|
|
|
226
258
|
=== DataPanelCustomColumnGroupsAccordionState.COLLAPSE_ALL
|
|
227
259
|
|| dataPanelCustomGroupsAccordionInitialState
|
|
228
260
|
=== DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST) {
|
|
229
|
-
/* eslint-disable-next-line max-len */
|
|
230
261
|
params[Param.DataPanelCustomGroupsAccordionInitialState] = dataPanelCustomGroupsAccordionInitialState;
|
|
231
262
|
}
|
|
232
263
|
else {
|
|
233
|
-
/* eslint-disable-next-line max-len */
|
|
234
264
|
params[Param.DataPanelCustomGroupsAccordionInitialState] = DataPanelCustomColumnGroupsAccordionState.EXPAND_ALL;
|
|
235
265
|
}
|
|
236
266
|
if (discoveryExperience) {
|
|
@@ -243,6 +273,10 @@ export class AppEmbed extends V1Embed {
|
|
|
243
273
|
if (discoveryExperience.homePage === HomePage.Modular) {
|
|
244
274
|
params[Param.ModularHomeExperienceEnabled] = true;
|
|
245
275
|
}
|
|
276
|
+
// listPageVersion v3 will enable the new list page
|
|
277
|
+
if (discoveryExperience.listPageVersion === ListPage.ListWithUXChanges) {
|
|
278
|
+
params[Param.ListPageVersion] = discoveryExperience.listPageVersion;
|
|
279
|
+
}
|
|
246
280
|
}
|
|
247
281
|
const queryParams = getQueryParamString(params, true);
|
|
248
282
|
return queryParams;
|
|
@@ -330,6 +364,30 @@ export class AppEmbed extends V1Embed {
|
|
|
330
364
|
this.iFrame.src = `${iframeSrc.split(currentPath)[0]}${currentPath}/${path.replace(/^\/?#?\//, '')}`;
|
|
331
365
|
}
|
|
332
366
|
}
|
|
367
|
+
/**
|
|
368
|
+
* Destroys the ThoughtSpot embed, and remove any nodes from the DOM.
|
|
369
|
+
* @version SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
370
|
+
*/
|
|
371
|
+
destroy() {
|
|
372
|
+
super.destroy();
|
|
373
|
+
this.unregisterLazyLoadEvents();
|
|
374
|
+
}
|
|
375
|
+
postRender() {
|
|
376
|
+
this.registerLazyLoadEvents();
|
|
377
|
+
}
|
|
378
|
+
registerLazyLoadEvents() {
|
|
379
|
+
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
380
|
+
// TODO: Use passive: true, install modernizr to check for passive
|
|
381
|
+
window.addEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
382
|
+
window.addEventListener('scroll', this.sendFullHeightLazyLoadData, true);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
unregisterLazyLoadEvents() {
|
|
386
|
+
if (this.viewConfig.fullHeight && this.viewConfig.lazyLoadingForFullHeight) {
|
|
387
|
+
window.removeEventListener('resize', this.sendFullHeightLazyLoadData);
|
|
388
|
+
window.removeEventListener('scroll', this.sendFullHeightLazyLoadData);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
333
391
|
/**
|
|
334
392
|
* Renders the embedded application pages in the ThoughtSpot app.
|
|
335
393
|
* @param renderOptions An object containing the page ID
|
|
@@ -339,6 +397,7 @@ export class AppEmbed extends V1Embed {
|
|
|
339
397
|
await super.render();
|
|
340
398
|
const src = this.getIFrameSrc();
|
|
341
399
|
await this.renderV1Embed(src);
|
|
400
|
+
this.postRender();
|
|
342
401
|
return this;
|
|
343
402
|
}
|
|
344
403
|
}
|
package/lib/src/embed/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/embed/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppEmbed, DataPanelCustomColumnGroupsAccordionState, Page, HomePageSearchBarMode, PrimaryNavbarVersion, HomePage, } from './app';
|
|
1
|
+
import { AppEmbed, DataPanelCustomColumnGroupsAccordionState, Page, HomePageSearchBarMode, PrimaryNavbarVersion, HomePage, ListPage, } from './app';
|
|
2
2
|
import { init } from '../index';
|
|
3
3
|
import { Action, AuthType, EmbedEvent, HostEvent, RuntimeFilterOp } from '../types';
|
|
4
4
|
import { executeAfterWait, getDocumentBody, getIFrameSrc, getRootEl, getIFrameEl, mockMessageChannel, defaultParams, defaultParamsForPinboardEmbed, defaultParamsWithoutHiddenActions, expectUrlMatchesWithParams, } from '../test/test-utils';
|
|
@@ -85,7 +85,6 @@ describe('App embed tests', () => {
|
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
87
|
describe('should render the correct routes for pages', () => {
|
|
88
|
-
/* eslint-disable no-loop-func */
|
|
89
88
|
const pageRouteMap = {
|
|
90
89
|
[Page.Search]: 'answer',
|
|
91
90
|
[Page.Answers]: 'answers',
|
|
@@ -126,7 +125,7 @@ describe('App embed tests', () => {
|
|
|
126
125
|
for (let i = 0; i < pageIdsForModularHomes.length; i++) {
|
|
127
126
|
const pageIdsForModularHome = pageIdsForModularHomes[i];
|
|
128
127
|
test(`${pageIdsForModularHome}`, async () => {
|
|
129
|
-
const route =
|
|
128
|
+
const route = pageRouteMapForModularHome[pageIdsForModularHome];
|
|
130
129
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
131
130
|
...defaultViewConfig,
|
|
132
131
|
modularHomeExperience: true,
|
|
@@ -438,6 +437,44 @@ describe('App embed tests', () => {
|
|
|
438
437
|
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&modularHomeExperience=false&enableAskSage=true${defaultParams}${defaultParamsPost}#/home`);
|
|
439
438
|
});
|
|
440
439
|
});
|
|
440
|
+
test('Should add listpageVersion=v3 when listPageVersion is ListWithUXChanges to the iframe src', async () => {
|
|
441
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
442
|
+
...defaultViewConfig,
|
|
443
|
+
discoveryExperience: {
|
|
444
|
+
listPageVersion: ListPage.ListWithUXChanges,
|
|
445
|
+
},
|
|
446
|
+
});
|
|
447
|
+
appEmbed.render();
|
|
448
|
+
await executeAfterWait(() => {
|
|
449
|
+
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&modularHomeExperience=false&listpageVersion=v3${defaultParams}${defaultParamsPost}#/home`);
|
|
450
|
+
});
|
|
451
|
+
});
|
|
452
|
+
test('Should not add listpageVersion when listPageVersion is List (v2) to the iframe src', async () => {
|
|
453
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
454
|
+
...defaultViewConfig,
|
|
455
|
+
discoveryExperience: {
|
|
456
|
+
listPageVersion: ListPage.List,
|
|
457
|
+
},
|
|
458
|
+
});
|
|
459
|
+
appEmbed.render();
|
|
460
|
+
await executeAfterWait(() => {
|
|
461
|
+
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&modularHomeExperience=false${defaultParams}${defaultParamsPost}#/home`);
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
test('Should add listpageVersion=v3 combined with other discoveryExperience options to the iframe src', async () => {
|
|
465
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
466
|
+
...defaultViewConfig,
|
|
467
|
+
discoveryExperience: {
|
|
468
|
+
primaryNavbarVersion: PrimaryNavbarVersion.Sliding,
|
|
469
|
+
homePage: HomePage.Modular,
|
|
470
|
+
listPageVersion: ListPage.ListWithUXChanges,
|
|
471
|
+
},
|
|
472
|
+
});
|
|
473
|
+
appEmbed.render();
|
|
474
|
+
await executeAfterWait(() => {
|
|
475
|
+
expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/?embedApp=true&primaryNavHidden=true&profileAndHelpInNavBarHidden=false&modularHomeExperience=true&navigationVersion=v3&listpageVersion=v3${defaultParams}${defaultParamsPost}#/home`);
|
|
476
|
+
});
|
|
477
|
+
});
|
|
441
478
|
test('Should add enablePendoHelp flag to the iframe src conditional on navbar', async () => {
|
|
442
479
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
443
480
|
...defaultViewConfig,
|
|
@@ -488,7 +525,6 @@ describe('App embed tests', () => {
|
|
|
488
525
|
test('Should add dataPanelCustomGroupsAccordionInitialState flag to the iframe src', async () => {
|
|
489
526
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
490
527
|
...defaultViewConfig,
|
|
491
|
-
// eslint-disable-next-line max-len
|
|
492
528
|
dataPanelCustomGroupsAccordionInitialState: DataPanelCustomColumnGroupsAccordionState.EXPAND_FIRST,
|
|
493
529
|
});
|
|
494
530
|
appEmbed.render();
|
|
@@ -497,12 +533,13 @@ describe('App embed tests', () => {
|
|
|
497
533
|
});
|
|
498
534
|
});
|
|
499
535
|
test('should register event handlers to adjust iframe height', async () => {
|
|
536
|
+
let embedHeightCallback = () => { };
|
|
500
537
|
const onSpy = jest.spyOn(AppEmbed.prototype, 'on').mockImplementation((event, callback) => {
|
|
501
538
|
if (event === EmbedEvent.RouteChange) {
|
|
502
539
|
callback({ data: { currentPath: '/answers' } }, jest.fn());
|
|
503
540
|
}
|
|
504
541
|
if (event === EmbedEvent.EmbedHeight) {
|
|
505
|
-
|
|
542
|
+
embedHeightCallback = callback;
|
|
506
543
|
}
|
|
507
544
|
if (event === EmbedEvent.EmbedIframeCenter) {
|
|
508
545
|
callback({}, jest.fn());
|
|
@@ -514,14 +551,20 @@ describe('App embed tests', () => {
|
|
|
514
551
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
515
552
|
...defaultViewConfig,
|
|
516
553
|
fullHeight: true,
|
|
554
|
+
lazyLoadingForFullHeight: true,
|
|
517
555
|
});
|
|
518
|
-
|
|
556
|
+
// Set the iframe before render
|
|
557
|
+
appEmbed.iFrame = document.createElement('iframe');
|
|
558
|
+
// Wait for render to complete
|
|
559
|
+
await appEmbed.render();
|
|
560
|
+
embedHeightCallback({ data: '100%' });
|
|
561
|
+
// Verify event handlers were registered
|
|
519
562
|
await executeAfterWait(() => {
|
|
520
563
|
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedHeight, expect.anything());
|
|
521
564
|
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.RouteChange, expect.anything());
|
|
522
565
|
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.EmbedIframeCenter, expect.anything());
|
|
523
|
-
|
|
524
|
-
|
|
566
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.RequestVisibleEmbedCoordinates, expect.anything());
|
|
567
|
+
}, 100);
|
|
525
568
|
});
|
|
526
569
|
describe('Navigate to Page API', () => {
|
|
527
570
|
const path = 'pinboard/e0836cad-4fdf-42d4-bd97-567a6b2a6058';
|
|
@@ -586,5 +629,315 @@ describe('App embed tests', () => {
|
|
|
586
629
|
expect(logger.log).toHaveBeenCalledWith('Please call render before invoking this method');
|
|
587
630
|
});
|
|
588
631
|
});
|
|
632
|
+
describe('LazyLoadingForFullHeight functionality', () => {
|
|
633
|
+
let mockIFrame;
|
|
634
|
+
beforeEach(() => {
|
|
635
|
+
mockIFrame = document.createElement('iframe');
|
|
636
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
637
|
+
top: 100,
|
|
638
|
+
left: 150,
|
|
639
|
+
bottom: 600,
|
|
640
|
+
right: 800,
|
|
641
|
+
width: 650,
|
|
642
|
+
height: 500,
|
|
643
|
+
});
|
|
644
|
+
jest.spyOn(document, 'createElement').mockImplementation((tagName) => {
|
|
645
|
+
if (tagName === 'iframe') {
|
|
646
|
+
return mockIFrame;
|
|
647
|
+
}
|
|
648
|
+
return document.createElement(tagName);
|
|
649
|
+
});
|
|
650
|
+
});
|
|
651
|
+
afterEach(() => {
|
|
652
|
+
jest.restoreAllMocks();
|
|
653
|
+
});
|
|
654
|
+
test('should set lazyLoadingMargin parameter when provided', async () => {
|
|
655
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
656
|
+
...defaultViewConfig,
|
|
657
|
+
fullHeight: true,
|
|
658
|
+
lazyLoadingForFullHeight: true,
|
|
659
|
+
lazyLoadingMargin: '100px 0px',
|
|
660
|
+
});
|
|
661
|
+
await appEmbed.render();
|
|
662
|
+
await executeAfterWait(() => {
|
|
663
|
+
const iframeSrc = getIFrameSrc();
|
|
664
|
+
expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
|
|
665
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
666
|
+
expect(iframeSrc).toContain('rootMarginForLazyLoad=100px%200px');
|
|
667
|
+
}, 100);
|
|
668
|
+
});
|
|
669
|
+
test('should set isLazyLoadingForEmbedEnabled=true when both fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
670
|
+
// Mock the iframe element first
|
|
671
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
672
|
+
top: 100,
|
|
673
|
+
left: 150,
|
|
674
|
+
bottom: 600,
|
|
675
|
+
right: 800,
|
|
676
|
+
width: 650,
|
|
677
|
+
height: 500,
|
|
678
|
+
});
|
|
679
|
+
Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
|
|
680
|
+
// Mock the event handlers
|
|
681
|
+
const onSpy = jest.spyOn(AppEmbed.prototype, 'on').mockImplementation((event, callback) => {
|
|
682
|
+
return null;
|
|
683
|
+
});
|
|
684
|
+
jest.spyOn(TsEmbed.prototype, 'getIframeCenter').mockReturnValue({});
|
|
685
|
+
jest.spyOn(TsEmbed.prototype, 'setIFrameHeight').mockReturnValue({});
|
|
686
|
+
// Create the AppEmbed instance
|
|
687
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
688
|
+
...defaultViewConfig,
|
|
689
|
+
fullHeight: true,
|
|
690
|
+
lazyLoadingForFullHeight: true,
|
|
691
|
+
});
|
|
692
|
+
// Set the iframe before render
|
|
693
|
+
appEmbed.iFrame = mockIFrame;
|
|
694
|
+
// Add the iframe to the DOM
|
|
695
|
+
const rootEl = getRootEl();
|
|
696
|
+
rootEl.appendChild(mockIFrame);
|
|
697
|
+
// Wait for render to complete
|
|
698
|
+
await appEmbed.render();
|
|
699
|
+
// Wait for iframe initialization and URL parameters to be set
|
|
700
|
+
await executeAfterWait(() => {
|
|
701
|
+
const iframeSrc = appEmbed.getIFrameSrc();
|
|
702
|
+
expect(iframeSrc).toContain('isLazyLoadingForEmbedEnabled=true');
|
|
703
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
704
|
+
}, 100);
|
|
705
|
+
});
|
|
706
|
+
test('should not set lazyLoadingForEmbed when lazyLoadingForFullHeight is enabled but fullHeight is false', async () => {
|
|
707
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
708
|
+
...defaultViewConfig,
|
|
709
|
+
fullHeight: false,
|
|
710
|
+
lazyLoadingForFullHeight: true,
|
|
711
|
+
});
|
|
712
|
+
// Wait for render to complete
|
|
713
|
+
await appEmbed.render();
|
|
714
|
+
// Wait for iframe initialization and URL parameters to be set
|
|
715
|
+
await executeAfterWait(() => {
|
|
716
|
+
const iframeSrc = getIFrameSrc();
|
|
717
|
+
expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
|
|
718
|
+
expect(iframeSrc).not.toContain('isFullHeightPinboard=true');
|
|
719
|
+
}, 100); // 100ms wait time to ensure iframe src is set
|
|
720
|
+
});
|
|
721
|
+
test('should not set isLazyLoadingForEmbedEnabled when fullHeight is true but lazyLoadingForFullHeight is false', async () => {
|
|
722
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
723
|
+
...defaultViewConfig,
|
|
724
|
+
fullHeight: true,
|
|
725
|
+
lazyLoadingForFullHeight: false,
|
|
726
|
+
});
|
|
727
|
+
// Wait for render to complete
|
|
728
|
+
await appEmbed.render();
|
|
729
|
+
// Wait for iframe initialization and URL parameters to be set
|
|
730
|
+
await executeAfterWait(() => {
|
|
731
|
+
const iframeSrc = getIFrameSrc();
|
|
732
|
+
expect(iframeSrc).not.toContain('isLazyLoadingForEmbedEnabled=true');
|
|
733
|
+
expect(iframeSrc).toContain('isFullHeightPinboard=true');
|
|
734
|
+
}, 100); // 100ms wait time to ensure iframe src is set
|
|
735
|
+
});
|
|
736
|
+
test('should register RequestFullHeightLazyLoadData event handler when fullHeight is enabled', async () => {
|
|
737
|
+
const onSpy = jest.spyOn(AppEmbed.prototype, 'on');
|
|
738
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
739
|
+
...defaultViewConfig,
|
|
740
|
+
fullHeight: true,
|
|
741
|
+
});
|
|
742
|
+
await appEmbed.render();
|
|
743
|
+
expect(onSpy).toHaveBeenCalledWith(EmbedEvent.RequestVisibleEmbedCoordinates, expect.any(Function));
|
|
744
|
+
onSpy.mockRestore();
|
|
745
|
+
});
|
|
746
|
+
test('should send correct visible data when RequestFullHeightLazyLoadData is triggered', async () => {
|
|
747
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
748
|
+
...defaultViewConfig,
|
|
749
|
+
fullHeight: true,
|
|
750
|
+
lazyLoadingForFullHeight: true,
|
|
751
|
+
});
|
|
752
|
+
const mockTrigger = jest.spyOn(appEmbed, 'trigger');
|
|
753
|
+
await appEmbed.render();
|
|
754
|
+
// Trigger the lazy load data calculation
|
|
755
|
+
appEmbed.sendFullHeightLazyLoadData();
|
|
756
|
+
expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
|
|
757
|
+
top: 0,
|
|
758
|
+
height: 500,
|
|
759
|
+
left: 0,
|
|
760
|
+
width: 650,
|
|
761
|
+
});
|
|
762
|
+
});
|
|
763
|
+
test('should calculate correct visible data for partially visible full height element', async () => {
|
|
764
|
+
// Mock iframe partially clipped from top and left
|
|
765
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
766
|
+
top: -50,
|
|
767
|
+
left: -30,
|
|
768
|
+
bottom: 700,
|
|
769
|
+
right: 1024,
|
|
770
|
+
width: 1054,
|
|
771
|
+
height: 750,
|
|
772
|
+
});
|
|
773
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
774
|
+
...defaultViewConfig,
|
|
775
|
+
fullHeight: true,
|
|
776
|
+
lazyLoadingForFullHeight: true,
|
|
777
|
+
});
|
|
778
|
+
const mockTrigger = jest.spyOn(appEmbed, 'trigger');
|
|
779
|
+
await appEmbed.render();
|
|
780
|
+
// Trigger the lazy load data calculation
|
|
781
|
+
appEmbed.sendFullHeightLazyLoadData();
|
|
782
|
+
expect(mockTrigger).toHaveBeenCalledWith(HostEvent.VisibleEmbedCoordinates, {
|
|
783
|
+
top: 50,
|
|
784
|
+
height: 700,
|
|
785
|
+
left: 30,
|
|
786
|
+
width: 1024, // visible width (from 0 to 1024)
|
|
787
|
+
});
|
|
788
|
+
});
|
|
789
|
+
test('should add window event listeners for resize and scroll when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
790
|
+
const addEventListenerSpy = jest.spyOn(window, 'addEventListener');
|
|
791
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
792
|
+
...defaultViewConfig,
|
|
793
|
+
fullHeight: true,
|
|
794
|
+
lazyLoadingForFullHeight: true,
|
|
795
|
+
});
|
|
796
|
+
await appEmbed.render();
|
|
797
|
+
// Wait for the post-render events to be registered
|
|
798
|
+
await executeAfterWait(() => {
|
|
799
|
+
expect(addEventListenerSpy).toHaveBeenCalledWith('resize', expect.any(Function));
|
|
800
|
+
expect(addEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function), true);
|
|
801
|
+
}, 100);
|
|
802
|
+
addEventListenerSpy.mockRestore();
|
|
803
|
+
});
|
|
804
|
+
test('should remove window event listeners on destroy when fullHeight and lazyLoadingForFullHeight are enabled', async () => {
|
|
805
|
+
const removeEventListenerSpy = jest.spyOn(window, 'removeEventListener');
|
|
806
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
807
|
+
...defaultViewConfig,
|
|
808
|
+
fullHeight: true,
|
|
809
|
+
lazyLoadingForFullHeight: true,
|
|
810
|
+
});
|
|
811
|
+
await appEmbed.render();
|
|
812
|
+
appEmbed.destroy();
|
|
813
|
+
expect(removeEventListenerSpy).toHaveBeenCalledWith('resize', expect.any(Function));
|
|
814
|
+
expect(removeEventListenerSpy).toHaveBeenCalledWith('scroll', expect.any(Function));
|
|
815
|
+
removeEventListenerSpy.mockRestore();
|
|
816
|
+
});
|
|
817
|
+
test('should handle RequestVisibleEmbedCoordinates event and respond with correct data', async () => {
|
|
818
|
+
// Mock the iframe element
|
|
819
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
820
|
+
top: 100,
|
|
821
|
+
left: 150,
|
|
822
|
+
bottom: 600,
|
|
823
|
+
right: 800,
|
|
824
|
+
width: 650,
|
|
825
|
+
height: 500,
|
|
826
|
+
});
|
|
827
|
+
Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
|
|
828
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
829
|
+
...defaultViewConfig,
|
|
830
|
+
fullHeight: true,
|
|
831
|
+
lazyLoadingForFullHeight: true,
|
|
832
|
+
});
|
|
833
|
+
// Set the iframe before render
|
|
834
|
+
appEmbed.iFrame = mockIFrame;
|
|
835
|
+
await appEmbed.render();
|
|
836
|
+
// Create a mock responder function
|
|
837
|
+
const mockResponder = jest.fn();
|
|
838
|
+
// Trigger the handler directly
|
|
839
|
+
appEmbed.requestVisibleEmbedCoordinatesHandler({}, mockResponder);
|
|
840
|
+
// Verify the responder was called with the correct data
|
|
841
|
+
expect(mockResponder).toHaveBeenCalledWith({
|
|
842
|
+
type: EmbedEvent.RequestVisibleEmbedCoordinates,
|
|
843
|
+
data: {
|
|
844
|
+
top: 0,
|
|
845
|
+
height: 500,
|
|
846
|
+
left: 0,
|
|
847
|
+
width: 650,
|
|
848
|
+
},
|
|
849
|
+
});
|
|
850
|
+
});
|
|
851
|
+
});
|
|
852
|
+
describe('IFrame height management', () => {
|
|
853
|
+
let mockIFrame;
|
|
854
|
+
beforeEach(() => {
|
|
855
|
+
mockIFrame = document.createElement('iframe');
|
|
856
|
+
mockIFrame.getBoundingClientRect = jest.fn().mockReturnValue({
|
|
857
|
+
top: 100,
|
|
858
|
+
left: 150,
|
|
859
|
+
bottom: 600,
|
|
860
|
+
right: 800,
|
|
861
|
+
width: 650,
|
|
862
|
+
height: 500,
|
|
863
|
+
});
|
|
864
|
+
Object.defineProperty(mockIFrame, 'scrollHeight', { value: 500 });
|
|
865
|
+
});
|
|
866
|
+
test('should not call setIFrameHeight if currentPath starts with "/embed/viz/"', () => {
|
|
867
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
868
|
+
...defaultViewConfig,
|
|
869
|
+
fullHeight: true,
|
|
870
|
+
});
|
|
871
|
+
const spySetIFrameHeight = jest.spyOn(appEmbed, 'setIFrameHeight');
|
|
872
|
+
appEmbed.render();
|
|
873
|
+
appEmbed.setIframeHeightForNonEmbedLiveboard({
|
|
874
|
+
data: { currentPath: '/embed/viz/' },
|
|
875
|
+
type: 'Route',
|
|
876
|
+
});
|
|
877
|
+
expect(spySetIFrameHeight).not.toHaveBeenCalled();
|
|
878
|
+
});
|
|
879
|
+
test('should not call setIFrameHeight if currentPath starts with "/embed/insights/viz/"', () => {
|
|
880
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
881
|
+
...defaultViewConfig,
|
|
882
|
+
fullHeight: true,
|
|
883
|
+
});
|
|
884
|
+
const spySetIFrameHeight = jest.spyOn(appEmbed, 'setIFrameHeight');
|
|
885
|
+
appEmbed.render();
|
|
886
|
+
appEmbed.setIframeHeightForNonEmbedLiveboard({
|
|
887
|
+
data: { currentPath: '/embed/insights/viz/' },
|
|
888
|
+
type: 'Route',
|
|
889
|
+
});
|
|
890
|
+
expect(spySetIFrameHeight).not.toHaveBeenCalled();
|
|
891
|
+
});
|
|
892
|
+
test('should call setIFrameHeight if currentPath starts with "/some/other/path/"', () => {
|
|
893
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
894
|
+
...defaultViewConfig,
|
|
895
|
+
fullHeight: true,
|
|
896
|
+
});
|
|
897
|
+
const spySetIFrameHeight = jest
|
|
898
|
+
.spyOn(appEmbed, 'setIFrameHeight')
|
|
899
|
+
.mockImplementation(jest.fn());
|
|
900
|
+
appEmbed.render();
|
|
901
|
+
appEmbed.setIframeHeightForNonEmbedLiveboard({
|
|
902
|
+
data: { currentPath: '/some/other/path/' },
|
|
903
|
+
type: 'Route',
|
|
904
|
+
});
|
|
905
|
+
expect(spySetIFrameHeight).toHaveBeenCalled();
|
|
906
|
+
});
|
|
907
|
+
test('should update iframe height correctly', async () => {
|
|
908
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
909
|
+
...defaultViewConfig,
|
|
910
|
+
fullHeight: true,
|
|
911
|
+
});
|
|
912
|
+
// Set up the mock iframe
|
|
913
|
+
appEmbed.iFrame = mockIFrame;
|
|
914
|
+
document.body.appendChild(mockIFrame);
|
|
915
|
+
await appEmbed.render();
|
|
916
|
+
const mockEvent = {
|
|
917
|
+
data: 600,
|
|
918
|
+
type: EmbedEvent.EmbedHeight,
|
|
919
|
+
};
|
|
920
|
+
appEmbed.updateIFrameHeight(mockEvent);
|
|
921
|
+
// Check if the iframe style was updated
|
|
922
|
+
expect(mockIFrame.style.height).toBe('600px');
|
|
923
|
+
});
|
|
924
|
+
test('should handle updateIFrameHeight with default height', async () => {
|
|
925
|
+
const appEmbed = new AppEmbed(getRootEl(), {
|
|
926
|
+
...defaultViewConfig,
|
|
927
|
+
fullHeight: true,
|
|
928
|
+
});
|
|
929
|
+
// Set up the mock iframe
|
|
930
|
+
appEmbed.iFrame = mockIFrame;
|
|
931
|
+
document.body.appendChild(mockIFrame);
|
|
932
|
+
await appEmbed.render();
|
|
933
|
+
const mockEvent = {
|
|
934
|
+
data: 0,
|
|
935
|
+
type: EmbedEvent.EmbedHeight,
|
|
936
|
+
};
|
|
937
|
+
appEmbed.updateIFrameHeight(mockEvent);
|
|
938
|
+
// Should use the scrollHeight
|
|
939
|
+
expect(mockIFrame.style.height).toBe('500px');
|
|
940
|
+
});
|
|
941
|
+
});
|
|
589
942
|
});
|
|
590
943
|
//# sourceMappingURL=app.spec.js.map
|