@thoughtspot/visual-embed-sdk 1.26.2 → 1.27.0-logger
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/README.md +1 -1
- package/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts +4 -4
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +15 -8
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/embed/app.d.ts +14 -14
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +4 -3
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +5 -4
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/base.d.ts.map +1 -1
- package/cjs/src/embed/base.js +5 -2
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +3 -2
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/embed.spec.js +2 -1
- package/cjs/src/embed/embed.spec.js.map +1 -1
- package/cjs/src/embed/embedConfig.d.ts +2 -1
- package/cjs/src/embed/embedConfig.d.ts.map +1 -1
- package/cjs/src/embed/embedConfig.js +2 -0
- package/cjs/src/embed/embedConfig.js.map +1 -1
- package/cjs/src/embed/events.spec.js +3 -2
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +28 -23
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +4 -3
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +47 -29
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +1 -1
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +22 -6
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +33 -18
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +4 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +10 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +37 -17
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +141 -26
- package/cjs/src/embed/ts-embed.spec.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/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +2 -1
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/react/index.spec.js +2 -14
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +751 -242
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +665 -176
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/authService.d.ts.map +1 -1
- package/cjs/src/utils/authService/authService.js +3 -2
- package/cjs/src/utils/authService/authService.js.map +1 -1
- package/cjs/src/utils/authService/authService.spec.js +3 -2
- package/cjs/src/utils/authService/authService.spec.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.js +2 -1
- package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +2 -4
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +2 -4
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/logger.d.ts +4 -14
- package/cjs/src/utils/logger.d.ts.map +1 -1
- package/cjs/src/utils/logger.js +37 -41
- package/cjs/src/utils/logger.js.map +1 -1
- package/cjs/src/utils/logger.spec.d.ts +25 -0
- package/cjs/src/utils/logger.spec.d.ts.map +1 -0
- package/cjs/src/utils/logger.spec.js +80 -0
- package/cjs/src/utils/logger.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts +6 -0
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +5 -1
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processTrigger.js +1 -1
- package/dist/src/auth.d.ts +4 -4
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +14 -14
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/embedConfig.d.ts +2 -1
- package/dist/src/embed/embedConfig.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +28 -23
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +47 -29
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +22 -6
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +33 -18
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.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/mixpanel-service.d.ts.map +1 -1
- package/dist/src/types.d.ts +751 -242
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/dist/src/utils/graphql/answerService/answerService.d.ts +2 -4
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +4 -14
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.spec.d.ts +25 -0
- package/dist/src/utils/logger.spec.d.ts.map +1 -0
- package/dist/src/utils/processData.d.ts +6 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +18186 -404
- package/dist/tsembed-react.js +18185 -403
- package/dist/tsembed.es.js +18336 -545
- package/dist/tsembed.js +32457 -14667
- package/dist/visual-embed-sdk-react-full.d.ts +903 -341
- package/dist/visual-embed-sdk-react.d.ts +903 -341
- package/dist/visual-embed-sdk.d.ts +903 -341
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts +4 -4
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +15 -8
- package/lib/src/auth.js.map +1 -1
- package/lib/src/embed/app.d.ts +14 -14
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +4 -3
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +5 -4
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/base.d.ts.map +1 -1
- package/lib/src/embed/base.js +6 -3
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +3 -2
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +2 -1
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/embedConfig.d.ts +2 -1
- package/lib/src/embed/embedConfig.d.ts.map +1 -1
- package/lib/src/embed/embedConfig.js +2 -0
- package/lib/src/embed/embedConfig.js.map +1 -1
- package/lib/src/embed/events.spec.js +3 -2
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +28 -23
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +4 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/sage.d.ts +47 -29
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +1 -1
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +22 -6
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +33 -18
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +4 -1
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +10 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +38 -18
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +141 -26
- package/lib/src/embed/ts-embed.spec.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/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +2 -1
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/react/index.spec.js +2 -14
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +751 -242
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +664 -175
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.d.ts.map +1 -1
- package/lib/src/utils/authService/authService.js +3 -2
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +3 -2
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.js +2 -1
- package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.d.ts +2 -4
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +2 -4
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/logger.d.ts +4 -14
- package/lib/src/utils/logger.d.ts.map +1 -1
- package/lib/src/utils/logger.js +23 -25
- package/lib/src/utils/logger.js.map +1 -1
- package/lib/src/utils/logger.spec.d.ts +25 -0
- package/lib/src/utils/logger.spec.d.ts.map +1 -0
- package/lib/src/utils/logger.spec.js +57 -0
- package/lib/src/utils/logger.spec.js.map +1 -0
- package/lib/src/utils/processData.d.ts +6 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +4 -1
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processTrigger.js +1 -1
- package/lib/src/visual-embed-sdk.d.ts +904 -342
- package/package.json +1 -1
- package/src/auth.ts +15 -8
- package/src/embed/app.spec.ts +5 -4
- package/src/embed/app.ts +22 -21
- package/src/embed/base.spec.ts +3 -2
- package/src/embed/base.ts +10 -3
- package/src/embed/embed.spec.ts +2 -1
- package/src/embed/embedConfig.ts +2 -0
- package/src/embed/events.spec.ts +3 -2
- package/src/embed/liveboard.ts +28 -23
- package/src/embed/sage.ts +47 -29
- package/src/embed/search-bar.tsx +22 -6
- package/src/embed/search.spec.ts +13 -0
- package/src/embed/search.ts +38 -19
- package/src/embed/ts-embed.spec.ts +159 -26
- package/src/embed/ts-embed.ts +37 -19
- package/src/index.ts +2 -0
- package/src/mixpanel-service.ts +2 -1
- package/src/react/index.spec.tsx +2 -31
- package/src/types.ts +753 -243
- package/src/utils/authService/authService.spec.ts +3 -2
- package/src/utils/authService/authService.ts +4 -2
- package/src/utils/authService/tokenizedAuthService.ts +2 -1
- package/src/utils/graphql/answerService/answerService.ts +2 -4
- package/src/utils/logger.spec.ts +67 -0
- package/src/utils/logger.ts +87 -0
- package/src/utils/processData.ts +4 -1
- package/src/utils/processTrigger.ts +1 -1
- package/cjs/src/embed/TsEmbed.d.ts +0 -302
- package/cjs/src/embed/TsEmbed.d.ts.map +0 -1
- package/cjs/src/embed/TsEmbed.js +0 -851
- package/cjs/src/embed/TsEmbed.js.map +0 -1
- package/cjs/src/utils/answerService.d.ts +0 -10
- package/cjs/src/utils/answerService.d.ts.map +0 -1
- package/cjs/src/utils/answerService.js +0 -61
- package/cjs/src/utils/answerService.js.map +0 -1
- package/cjs/src/utils/answerService.spec.d.ts +0 -2
- package/cjs/src/utils/answerService.spec.d.ts.map +0 -1
- package/cjs/src/utils/answerService.spec.js +0 -31
- package/cjs/src/utils/answerService.spec.js.map +0 -1
- package/cjs/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
- package/cjs/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
- package/cjs/src/utils/authService/tokenisedAuthSerice.js +0 -44
- package/cjs/src/utils/authService/tokenisedAuthSerice.js.map +0 -1
- package/cjs/src/utils/authService.d.ts +0 -55
- package/cjs/src/utils/authService.d.ts.map +0 -1
- package/cjs/src/utils/authService.js +0 -139
- package/cjs/src/utils/authService.js.map +0 -1
- package/cjs/src/utils/authService.spec.d.ts +0 -2
- package/cjs/src/utils/authService.spec.d.ts.map +0 -1
- package/cjs/src/utils/authService.spec.js +0 -82
- package/cjs/src/utils/authService.spec.js.map +0 -1
- package/cjs/src/utils/graphql/graphql-request.spec.d.ts +0 -2
- package/cjs/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
- package/cjs/src/utils/graphql/graphql-request.spec.js +0 -39
- package/cjs/src/utils/graphql/graphql-request.spec.js.map +0 -1
- package/dist/src/utils/answerService.d.ts +0 -10
- package/dist/src/utils/answerService.d.ts.map +0 -1
- package/dist/src/utils/answerService.spec.d.ts +0 -2
- package/dist/src/utils/answerService.spec.d.ts.map +0 -1
- package/dist/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
- package/dist/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
- package/dist/src/utils/authService.d.ts +0 -55
- package/dist/src/utils/authService.d.ts.map +0 -1
- package/dist/src/utils/authService.spec.d.ts +0 -2
- package/dist/src/utils/authService.spec.d.ts.map +0 -1
- package/dist/src/utils/graphql/graphql-request.spec.d.ts +0 -2
- package/dist/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
- package/lib/src/embed/TsEmbed.d.ts +0 -302
- package/lib/src/embed/TsEmbed.d.ts.map +0 -1
- package/lib/src/embed/TsEmbed.js +0 -847
- package/lib/src/embed/TsEmbed.js.map +0 -1
- package/lib/src/utils/answerService.d.ts +0 -10
- package/lib/src/utils/answerService.d.ts.map +0 -1
- package/lib/src/utils/answerService.js +0 -57
- package/lib/src/utils/answerService.js.map +0 -1
- package/lib/src/utils/answerService.spec.d.ts +0 -2
- package/lib/src/utils/answerService.spec.d.ts.map +0 -1
- package/lib/src/utils/answerService.spec.js +0 -29
- package/lib/src/utils/answerService.spec.js.map +0 -1
- package/lib/src/utils/authService/tokenisedAuthSerice.d.ts +0 -11
- package/lib/src/utils/authService/tokenisedAuthSerice.d.ts.map +0 -1
- package/lib/src/utils/authService/tokenisedAuthSerice.js +0 -39
- package/lib/src/utils/authService/tokenisedAuthSerice.js.map +0 -1
- package/lib/src/utils/authService.d.ts +0 -55
- package/lib/src/utils/authService.d.ts.map +0 -1
- package/lib/src/utils/authService.js +0 -129
- package/lib/src/utils/authService.js.map +0 -1
- package/lib/src/utils/authService.spec.d.ts +0 -2
- package/lib/src/utils/authService.spec.d.ts.map +0 -1
- package/lib/src/utils/authService.spec.js +0 -80
- package/lib/src/utils/authService.spec.js.map +0 -1
- package/lib/src/utils/graphql/graphql-request.spec.d.ts +0 -2
- package/lib/src/utils/graphql/graphql-request.spec.d.ts.map +0 -1
- package/lib/src/utils/graphql/graphql-request.spec.js +0 -36
- package/lib/src/utils/graphql/graphql-request.spec.js.map +0 -1
package/src/embed/search-bar.tsx
CHANGED
|
@@ -20,25 +20,41 @@ export interface SearchBarViewConfig
|
|
|
20
20
|
> {
|
|
21
21
|
/**
|
|
22
22
|
* The array of data source GUIDs to set on load.
|
|
23
|
-
* Only a single
|
|
23
|
+
* Only a single data source is supported currently.
|
|
24
24
|
*
|
|
25
|
-
* @deprecated Use dataSource instead
|
|
25
|
+
* @deprecated Use `dataSource` instead
|
|
26
26
|
*/
|
|
27
27
|
dataSources?: string[];
|
|
28
28
|
/**
|
|
29
29
|
* The array of data source GUIDs to set on load.
|
|
30
30
|
*
|
|
31
|
-
* @version: SDK: 1.19.0
|
|
31
|
+
* @version: SDK: 1.19.0, ThoughtSpot 9.0.0.cl, 9.0.1.sw
|
|
32
32
|
*/
|
|
33
33
|
dataSource?: string;
|
|
34
34
|
/**
|
|
35
|
-
*
|
|
35
|
+
* Boolean to define if the last selected data source should be used
|
|
36
36
|
*
|
|
37
|
-
* @version: SDK: 1.24.0
|
|
37
|
+
* @version: SDK: 1.24.0, ThoughtSpot 9.5.0.cl, 9.5.0.sw
|
|
38
38
|
*/
|
|
39
39
|
useLastSelectedSources?: boolean;
|
|
40
40
|
/**
|
|
41
|
-
* Configuration for search options
|
|
41
|
+
* Configuration for search options.
|
|
42
|
+
* Includes the following properties:
|
|
43
|
+
*
|
|
44
|
+
* `searchTokenString`: Search tokens to pass in the query.
|
|
45
|
+
*
|
|
46
|
+
* `executeSearch`: Boolean to define if the search should be executed or not.
|
|
47
|
+
* If it is executed, the focus is placed on the results.
|
|
48
|
+
* If it’s not executed, the focus is placed at the end of
|
|
49
|
+
* the token string in the search bar.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```js
|
|
53
|
+
* searchOptions: {
|
|
54
|
+
* searchTokenString: '[quantity purchased] [region]',
|
|
55
|
+
* executeSearch: true,
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
42
58
|
*/
|
|
43
59
|
searchOptions?: SearchOptions;
|
|
44
60
|
}
|
package/src/embed/search.spec.ts
CHANGED
|
@@ -411,4 +411,17 @@ describe('Search embed tests', () => {
|
|
|
411
411
|
);
|
|
412
412
|
});
|
|
413
413
|
});
|
|
414
|
+
test('should set hideSearchBar to true if hideSearchBar flag is true', async () => {
|
|
415
|
+
const searchEmbed = new SearchEmbed(getRootEl(), {
|
|
416
|
+
...defaultViewConfig,
|
|
417
|
+
hideSearchBar: true,
|
|
418
|
+
});
|
|
419
|
+
searchEmbed.render();
|
|
420
|
+
await executeAfterWait(() => {
|
|
421
|
+
expectUrlMatchesWithParams(
|
|
422
|
+
getIFrameSrc(),
|
|
423
|
+
`http://${thoughtSpotHost}/v2/?${defaultParamsWithHiddenActions}&dataSourceMode=expand&enableDataPanelV2=false&useLastSelectedSources=false&hideSearchBar=true${prefixParams}#/embed/saved-answer/${answerId}`,
|
|
424
|
+
);
|
|
425
|
+
});
|
|
426
|
+
});
|
|
414
427
|
});
|
package/src/embed/search.ts
CHANGED
|
@@ -23,18 +23,19 @@ import { getReleaseVersion } from '../auth';
|
|
|
23
23
|
import { getEmbedConfig } from './embedConfig';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* Configuration for search options
|
|
26
|
+
* Configuration for search options.
|
|
27
|
+
*
|
|
27
28
|
*/
|
|
28
29
|
export interface SearchOptions {
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
+
* Search tokens to pass in the query.
|
|
31
32
|
*/
|
|
32
33
|
searchTokenString: string;
|
|
33
34
|
/**
|
|
34
|
-
* Boolean to
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* the
|
|
35
|
+
* Boolean to define if the search should be executed or not.
|
|
36
|
+
* If it is executed, the focus is placed on the results.
|
|
37
|
+
* If it’s not executed, the focus is placed at the end of
|
|
38
|
+
* the token string in the search bar.
|
|
38
39
|
*/
|
|
39
40
|
executeSearch?: boolean;
|
|
40
41
|
}
|
|
@@ -59,19 +60,15 @@ export interface SearchViewConfig
|
|
|
59
60
|
*/
|
|
60
61
|
collapseDataSources?: boolean;
|
|
61
62
|
/**
|
|
62
|
-
*
|
|
63
|
+
* Show or hide the data sources panel.
|
|
63
64
|
*/
|
|
64
65
|
hideDataSources?: boolean;
|
|
65
66
|
/**
|
|
66
|
-
*
|
|
67
|
+
* Show or hide the charts and tables in search answers.
|
|
67
68
|
* This attribute can be used to create a custom visualization
|
|
68
69
|
* using raw answer data.
|
|
69
70
|
*/
|
|
70
71
|
hideResults?: boolean;
|
|
71
|
-
/**
|
|
72
|
-
* If set to true, expands all the data sources panel.
|
|
73
|
-
*/
|
|
74
|
-
expandAllDataSource?: boolean;
|
|
75
72
|
/**
|
|
76
73
|
* If set to true, the Search Assist feature is enabled.
|
|
77
74
|
*
|
|
@@ -85,9 +82,9 @@ export interface SearchViewConfig
|
|
|
85
82
|
forceTable?: boolean;
|
|
86
83
|
/**
|
|
87
84
|
* The array of data source GUIDs to set on load.
|
|
88
|
-
* Only a single
|
|
85
|
+
* Only a single data source is supported currently.
|
|
89
86
|
*
|
|
90
|
-
* @deprecated Use dataSource instead
|
|
87
|
+
* @deprecated Use `dataSource` instead.
|
|
91
88
|
*/
|
|
92
89
|
dataSources?: string[];
|
|
93
90
|
/**
|
|
@@ -99,11 +96,29 @@ export interface SearchViewConfig
|
|
|
99
96
|
/**
|
|
100
97
|
* The initial search query to load the answer with.
|
|
101
98
|
*
|
|
102
|
-
* @deprecated
|
|
99
|
+
* @deprecated
|
|
100
|
+
*
|
|
101
|
+
* Use {@link searchOptions} instead.
|
|
103
102
|
*/
|
|
104
103
|
searchQuery?: string;
|
|
105
104
|
/**
|
|
106
|
-
* Configuration for search options
|
|
105
|
+
* Configuration for search options.
|
|
106
|
+
* Includes the following properties:
|
|
107
|
+
*
|
|
108
|
+
* `searchTokenString`: Search tokens to pass in the query.
|
|
109
|
+
*
|
|
110
|
+
* `executeSearch`: Boolean to define if the search should be executed or not.
|
|
111
|
+
* If it is executed, the focus is placed on the results.
|
|
112
|
+
* If it’s not executed, the focus is placed at the end of
|
|
113
|
+
* the token string in the search bar.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```js
|
|
117
|
+
* searchOptions: {
|
|
118
|
+
* searchTokenString: '[quantity purchased] [region]',
|
|
119
|
+
* executeSearch: true,
|
|
120
|
+
* }
|
|
121
|
+
* ```
|
|
107
122
|
*/
|
|
108
123
|
searchOptions?: SearchOptions;
|
|
109
124
|
/**
|
|
@@ -111,10 +126,10 @@ export interface SearchViewConfig
|
|
|
111
126
|
*/
|
|
112
127
|
answerId?: string;
|
|
113
128
|
/**
|
|
114
|
-
* If set to true, search page will render without the Search Bar
|
|
129
|
+
* If set to true, the search page will render without the Search Bar
|
|
115
130
|
* The chart/table should still be visible.
|
|
116
131
|
*
|
|
117
|
-
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl
|
|
132
|
+
* @version SDK: 1.21.0 | ThoughtSpot: 9.2.0.cl, 9.5.0.sw
|
|
118
133
|
*/
|
|
119
134
|
hideSearchBar?: boolean;
|
|
120
135
|
/**
|
|
@@ -177,7 +192,6 @@ export class SearchEmbed extends TsEmbed {
|
|
|
177
192
|
protected getEmbedParams(): string {
|
|
178
193
|
const {
|
|
179
194
|
hideResults,
|
|
180
|
-
expandAllDataSource,
|
|
181
195
|
enableSearchAssist,
|
|
182
196
|
forceTable,
|
|
183
197
|
searchOptions,
|
|
@@ -185,6 +199,7 @@ export class SearchEmbed extends TsEmbed {
|
|
|
185
199
|
dataSource,
|
|
186
200
|
dataSources,
|
|
187
201
|
excludeRuntimeFiltersfromURL,
|
|
202
|
+
hideSearchBar,
|
|
188
203
|
dataPanelV2 = false,
|
|
189
204
|
useLastSelectedSources = false,
|
|
190
205
|
runtimeParameters,
|
|
@@ -221,6 +236,10 @@ export class SearchEmbed extends TsEmbed {
|
|
|
221
236
|
queryParams[Param.ForceTable] = true;
|
|
222
237
|
}
|
|
223
238
|
|
|
239
|
+
if (hideSearchBar) {
|
|
240
|
+
queryParams[Param.HideSearchBar] = true;
|
|
241
|
+
}
|
|
242
|
+
|
|
224
243
|
queryParams[Param.DataPanelV2Enabled] = dataPanelV2;
|
|
225
244
|
queryParams[Param.DataSourceMode] = this.getDataSourceMode();
|
|
226
245
|
|
|
@@ -32,6 +32,7 @@ import * as authInstance from '../auth';
|
|
|
32
32
|
import * as baseInstance from './base';
|
|
33
33
|
import { MIXPANEL_EVENT } from '../mixpanel-service';
|
|
34
34
|
import * as authService from '../utils/authService/authService';
|
|
35
|
+
import { logger } from '../utils/logger';
|
|
35
36
|
|
|
36
37
|
const defaultViewConfig = {
|
|
37
38
|
frameParams: {
|
|
@@ -425,7 +426,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
425
426
|
const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
|
|
426
427
|
searchEmbed
|
|
427
428
|
.on(EmbedEvent.Save, () => {
|
|
428
|
-
|
|
429
|
+
logger.log('non callable');
|
|
429
430
|
})
|
|
430
431
|
.render();
|
|
431
432
|
|
|
@@ -468,7 +469,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
468
469
|
.on(
|
|
469
470
|
EmbedEvent.Save,
|
|
470
471
|
() => {
|
|
471
|
-
|
|
472
|
+
logger.log('non callable');
|
|
472
473
|
},
|
|
473
474
|
{ start: true },
|
|
474
475
|
)
|
|
@@ -562,6 +563,138 @@ describe('Unit test case for ts embed', () => {
|
|
|
562
563
|
});
|
|
563
564
|
});
|
|
564
565
|
|
|
566
|
+
describe('Token fetch fails in cookieless authentication authType', () => {
|
|
567
|
+
beforeEach(() => {
|
|
568
|
+
jest.spyOn(authInstance, 'doCookielessTokenAuth').mockResolvedValueOnce(true);
|
|
569
|
+
init({
|
|
570
|
+
thoughtSpotHost: 'tshost',
|
|
571
|
+
customizations: customisations,
|
|
572
|
+
customCssUrl: 'http://localhost:5000',
|
|
573
|
+
authType: AuthType.TrustedAuthTokenCookieless,
|
|
574
|
+
getAuthToken: () => Promise.reject(),
|
|
575
|
+
});
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
afterEach(() => {
|
|
579
|
+
jest.clearAllMocks();
|
|
580
|
+
baseInstance.reset();
|
|
581
|
+
});
|
|
582
|
+
|
|
583
|
+
test('should show login failure message if token failed during app_init', async () => {
|
|
584
|
+
const a = jest.spyOn(authService, 'verifyTokenService');
|
|
585
|
+
a.mockResolvedValue(true);
|
|
586
|
+
|
|
587
|
+
// authVerifyMock.mockResolvedValue(true);
|
|
588
|
+
const mockEmbedEventPayload = {
|
|
589
|
+
type: EmbedEvent.APP_INIT,
|
|
590
|
+
data: {},
|
|
591
|
+
};
|
|
592
|
+
const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
|
|
593
|
+
searchEmbed.render();
|
|
594
|
+
const mockPort: any = {
|
|
595
|
+
postMessage: jest.fn(),
|
|
596
|
+
};
|
|
597
|
+
await executeAfterWait(() => {
|
|
598
|
+
const iframe = getIFrameEl();
|
|
599
|
+
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
600
|
+
});
|
|
601
|
+
await executeAfterWait(() => {
|
|
602
|
+
expect(mockPort.postMessage).not.toHaveBeenCalled();
|
|
603
|
+
expect(getRootEl().innerHTML).toContain('Not logged in');
|
|
604
|
+
});
|
|
605
|
+
|
|
606
|
+
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
607
|
+
});
|
|
608
|
+
|
|
609
|
+
test('should show login failure message if token failed during app_init prerender', async () => {
|
|
610
|
+
const a = jest.spyOn(authService, 'verifyTokenService');
|
|
611
|
+
a.mockResolvedValue(true);
|
|
612
|
+
|
|
613
|
+
// authVerifyMock.mockResolvedValue(true);
|
|
614
|
+
const mockEmbedEventPayload = {
|
|
615
|
+
type: EmbedEvent.APP_INIT,
|
|
616
|
+
data: {},
|
|
617
|
+
};
|
|
618
|
+
const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
|
|
619
|
+
searchEmbed.preRender();
|
|
620
|
+
const mockPort: any = {
|
|
621
|
+
postMessage: jest.fn(),
|
|
622
|
+
};
|
|
623
|
+
await executeAfterWait(() => {
|
|
624
|
+
const iframe = getIFrameEl();
|
|
625
|
+
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
626
|
+
});
|
|
627
|
+
const preRenderWrapper = document.getElementById('tsEmbed-pre-render-wrapper-test');
|
|
628
|
+
await executeAfterWait(() => {
|
|
629
|
+
expect(mockPort.postMessage).not.toHaveBeenCalled();
|
|
630
|
+
expect(preRenderWrapper.innerHTML).toContain('Not logged in');
|
|
631
|
+
});
|
|
632
|
+
|
|
633
|
+
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
634
|
+
});
|
|
635
|
+
|
|
636
|
+
test('should show login failure message if update token failed', async () => {
|
|
637
|
+
const a = jest.spyOn(authService, 'verifyTokenService');
|
|
638
|
+
a.mockResolvedValue(true);
|
|
639
|
+
|
|
640
|
+
// authVerifyMock.mockResolvedValue(true);
|
|
641
|
+
const mockEmbedEventPayload = {
|
|
642
|
+
type: EmbedEvent.AuthExpire,
|
|
643
|
+
data: {},
|
|
644
|
+
};
|
|
645
|
+
const searchEmbed = new SearchEmbed(getRootEl(), defaultViewConfig);
|
|
646
|
+
jest.spyOn(baseInstance, 'notifyAuthFailure');
|
|
647
|
+
searchEmbed.render();
|
|
648
|
+
const mockPort: any = {
|
|
649
|
+
postMessage: jest.fn(),
|
|
650
|
+
};
|
|
651
|
+
await executeAfterWait(() => {
|
|
652
|
+
const iframe = getIFrameEl();
|
|
653
|
+
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
654
|
+
});
|
|
655
|
+
await executeAfterWait(() => {
|
|
656
|
+
expect(getRootEl().innerHTML).toContain('Not logged in');
|
|
657
|
+
expect(baseInstance.notifyAuthFailure).toBeCalledWith(
|
|
658
|
+
authInstance.AuthFailureType.EXPIRY,
|
|
659
|
+
);
|
|
660
|
+
});
|
|
661
|
+
|
|
662
|
+
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
663
|
+
jest.spyOn(baseInstance, 'notifyAuthFailure').mockClear();
|
|
664
|
+
});
|
|
665
|
+
|
|
666
|
+
test('should show login failure message if update token failed prerender', async () => {
|
|
667
|
+
const a = jest.spyOn(authService, 'verifyTokenService');
|
|
668
|
+
a.mockResolvedValue(true);
|
|
669
|
+
|
|
670
|
+
// authVerifyMock.mockResolvedValue(true);
|
|
671
|
+
const mockEmbedEventPayload = {
|
|
672
|
+
type: EmbedEvent.AuthExpire,
|
|
673
|
+
data: {},
|
|
674
|
+
};
|
|
675
|
+
const searchEmbed = new SearchEmbed(getRootEl(), { ...defaultViewConfig, preRenderId: 'test' });
|
|
676
|
+
jest.spyOn(baseInstance, 'notifyAuthFailure');
|
|
677
|
+
searchEmbed.preRender();
|
|
678
|
+
const mockPort: any = {
|
|
679
|
+
postMessage: jest.fn(),
|
|
680
|
+
};
|
|
681
|
+
await executeAfterWait(() => {
|
|
682
|
+
const iframe = getIFrameEl();
|
|
683
|
+
postMessageToParent(iframe.contentWindow, mockEmbedEventPayload, mockPort);
|
|
684
|
+
});
|
|
685
|
+
const preRenderWrapper = document.getElementById('tsEmbed-pre-render-wrapper-test');
|
|
686
|
+
await executeAfterWait(() => {
|
|
687
|
+
expect(preRenderWrapper.innerHTML).toContain('Not logged in');
|
|
688
|
+
expect(baseInstance.notifyAuthFailure).toBeCalledWith(
|
|
689
|
+
authInstance.AuthFailureType.EXPIRY,
|
|
690
|
+
);
|
|
691
|
+
});
|
|
692
|
+
|
|
693
|
+
jest.spyOn(authService, 'verifyTokenService').mockClear();
|
|
694
|
+
jest.spyOn(baseInstance, 'notifyAuthFailure').mockClear();
|
|
695
|
+
});
|
|
696
|
+
});
|
|
697
|
+
|
|
565
698
|
xdescribe('AuthExpire embedEvent in TrustedAuthToken authType', () => {
|
|
566
699
|
test('AutoLogin true scenario', async () => {
|
|
567
700
|
init({
|
|
@@ -698,7 +831,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
698
831
|
const iFrame: any = document.createElement('div');
|
|
699
832
|
iFrame.contentWindow = null;
|
|
700
833
|
jest.spyOn(document, 'createElement').mockReturnValueOnce(iFrame);
|
|
701
|
-
spyOn(
|
|
834
|
+
spyOn(logger, 'error');
|
|
702
835
|
tsEmbed.render();
|
|
703
836
|
});
|
|
704
837
|
|
|
@@ -712,7 +845,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
712
845
|
|
|
713
846
|
describe('when visible actions are set', () => {
|
|
714
847
|
test('should throw error when there are both visible and hidden actions - pinboard', async () => {
|
|
715
|
-
spyOn(
|
|
848
|
+
spyOn(logger, 'error');
|
|
716
849
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
717
850
|
hiddenActions: [Action.DownloadAsCsv],
|
|
718
851
|
visibleActions: [Action.DownloadAsCsv],
|
|
@@ -721,7 +854,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
721
854
|
} as LiveboardViewConfig);
|
|
722
855
|
await pinboardEmbed.render();
|
|
723
856
|
expect(pinboardEmbed['isError']).toBe(true);
|
|
724
|
-
expect(
|
|
857
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
725
858
|
'You cannot have both hidden actions and visible actions',
|
|
726
859
|
);
|
|
727
860
|
});
|
|
@@ -744,7 +877,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
744
877
|
hiddenActions: Array<Action>,
|
|
745
878
|
visibleActions: Array<Action>,
|
|
746
879
|
) {
|
|
747
|
-
spyOn(
|
|
880
|
+
spyOn(logger, 'error');
|
|
748
881
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
749
882
|
hiddenActions,
|
|
750
883
|
visibleActions,
|
|
@@ -753,7 +886,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
753
886
|
} as LiveboardViewConfig);
|
|
754
887
|
await liveboardEmbed.render();
|
|
755
888
|
expect(liveboardEmbed['isError']).toBe(true);
|
|
756
|
-
expect(
|
|
889
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
757
890
|
'You cannot have both hidden actions and visible actions',
|
|
758
891
|
);
|
|
759
892
|
}
|
|
@@ -789,7 +922,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
789
922
|
|
|
790
923
|
describe('when visible Tabs are set', () => {
|
|
791
924
|
test('should throw error when there are both visible and hidden Tabs - pinboard', async () => {
|
|
792
|
-
spyOn(
|
|
925
|
+
spyOn(logger, 'error');
|
|
793
926
|
const pinboardEmbed = new PinboardEmbed(getRootEl(), {
|
|
794
927
|
visibleTabs: [tabId1],
|
|
795
928
|
hiddenTabs: [tabId2],
|
|
@@ -798,7 +931,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
798
931
|
} as LiveboardViewConfig);
|
|
799
932
|
await pinboardEmbed.render();
|
|
800
933
|
expect(pinboardEmbed['isError']).toBe(true);
|
|
801
|
-
expect(
|
|
934
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
802
935
|
'You cannot have both hidden Tabs and visible Tabs',
|
|
803
936
|
);
|
|
804
937
|
});
|
|
@@ -821,7 +954,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
821
954
|
hiddenTabs: Array<string>,
|
|
822
955
|
visibleTabs: Array<string>,
|
|
823
956
|
) {
|
|
824
|
-
spyOn(
|
|
957
|
+
spyOn(logger, 'error');
|
|
825
958
|
const liveboardEmbed = new LiveboardEmbed(getRootEl(), {
|
|
826
959
|
hiddenTabs,
|
|
827
960
|
visibleTabs,
|
|
@@ -830,7 +963,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
830
963
|
} as LiveboardViewConfig);
|
|
831
964
|
await liveboardEmbed.render();
|
|
832
965
|
expect(liveboardEmbed['isError']).toBe(true);
|
|
833
|
-
expect(
|
|
966
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
834
967
|
'You cannot have both hidden Tabs and visible Tabs',
|
|
835
968
|
);
|
|
836
969
|
}
|
|
@@ -874,11 +1007,11 @@ describe('Unit test case for ts embed', () => {
|
|
|
874
1007
|
});
|
|
875
1008
|
|
|
876
1009
|
test('Error should be true', async () => {
|
|
877
|
-
spyOn(
|
|
1010
|
+
spyOn(logger, 'error');
|
|
878
1011
|
const tsEmbed = new SearchEmbed(getRootEl(), {});
|
|
879
1012
|
tsEmbed.render();
|
|
880
1013
|
expect(tsEmbed['isError']).toBe(true);
|
|
881
|
-
expect(
|
|
1014
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
882
1015
|
'You need to init the ThoughtSpot SDK module first',
|
|
883
1016
|
);
|
|
884
1017
|
});
|
|
@@ -886,13 +1019,13 @@ describe('Unit test case for ts embed', () => {
|
|
|
886
1019
|
|
|
887
1020
|
describe('V1Embed ', () => {
|
|
888
1021
|
test('when isRendered is true than isError will be true', () => {
|
|
889
|
-
spyOn(
|
|
1022
|
+
spyOn(logger, 'error');
|
|
890
1023
|
const viEmbedIns = new tsEmbedInstance.V1Embed(getRootEl(), defaultViewConfig);
|
|
891
1024
|
expect(viEmbedIns['isError']).toBe(false);
|
|
892
1025
|
viEmbedIns.render();
|
|
893
1026
|
viEmbedIns.on(EmbedEvent.CustomAction, jest.fn()).render();
|
|
894
1027
|
expect(viEmbedIns['isError']).toBe(true);
|
|
895
|
-
expect(
|
|
1028
|
+
expect(logger.error).toHaveBeenCalledWith(
|
|
896
1029
|
'Please register event handlers before calling render',
|
|
897
1030
|
);
|
|
898
1031
|
});
|
|
@@ -933,7 +1066,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
933
1066
|
});
|
|
934
1067
|
|
|
935
1068
|
test('navigateToPage function use before render', async () => {
|
|
936
|
-
spyOn(
|
|
1069
|
+
spyOn(logger, 'log');
|
|
937
1070
|
const appEmbed = new AppEmbed(getRootEl(), {
|
|
938
1071
|
frameParams: {
|
|
939
1072
|
width: '100%',
|
|
@@ -942,7 +1075,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
942
1075
|
});
|
|
943
1076
|
appEmbed.navigateToPage(path, false);
|
|
944
1077
|
await appEmbed.render();
|
|
945
|
-
expect(
|
|
1078
|
+
expect(logger.log).toHaveBeenCalledWith(
|
|
946
1079
|
'Please call render before invoking this method',
|
|
947
1080
|
);
|
|
948
1081
|
});
|
|
@@ -1330,7 +1463,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1330
1463
|
});
|
|
1331
1464
|
|
|
1332
1465
|
// show preRender
|
|
1333
|
-
const warnSpy = spyOn(
|
|
1466
|
+
const warnSpy = spyOn(logger, 'warn');
|
|
1334
1467
|
libEmbed.showPreRender();
|
|
1335
1468
|
expect(warnSpy).toHaveBeenCalledTimes(0);
|
|
1336
1469
|
|
|
@@ -1360,13 +1493,13 @@ describe('Unit test case for ts embed', () => {
|
|
|
1360
1493
|
it('preRender called without preRenderId should log error ', () => {
|
|
1361
1494
|
createRootEleForEmbed();
|
|
1362
1495
|
|
|
1363
|
-
spyOn(
|
|
1496
|
+
spyOn(logger, 'error');
|
|
1364
1497
|
const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
|
|
1365
1498
|
liveboardId: 'myLiveboardId',
|
|
1366
1499
|
});
|
|
1367
1500
|
libEmbed.preRender();
|
|
1368
1501
|
|
|
1369
|
-
expect(
|
|
1502
|
+
expect(logger.error).toHaveBeenCalledWith('PreRender id is required for preRender');
|
|
1370
1503
|
});
|
|
1371
1504
|
|
|
1372
1505
|
it('showPreRender should preRender if not available', async () => {
|
|
@@ -1414,7 +1547,7 @@ describe('Unit test case for ts embed', () => {
|
|
|
1414
1547
|
|
|
1415
1548
|
libEmbed.preRender();
|
|
1416
1549
|
await waitFor(() => !!getIFrameEl());
|
|
1417
|
-
const warnSpy = jest.spyOn(
|
|
1550
|
+
const warnSpy = jest.spyOn(logger, 'warn');
|
|
1418
1551
|
const newEmbed = new LiveboardEmbed('#tsEmbedDiv', {
|
|
1419
1552
|
preRenderId: 'i-am-preRendered',
|
|
1420
1553
|
liveboardId: 'awdawda',
|
|
@@ -1433,10 +1566,10 @@ describe('Unit test case for ts embed', () => {
|
|
|
1433
1566
|
liveboardId: 'myLiveboardId',
|
|
1434
1567
|
});
|
|
1435
1568
|
spyOn(libEmbed, 'preRender');
|
|
1436
|
-
spyOn(
|
|
1569
|
+
spyOn(logger, 'error');
|
|
1437
1570
|
libEmbed.showPreRender();
|
|
1438
1571
|
expect(libEmbed.preRender).toHaveBeenCalledTimes(0);
|
|
1439
|
-
expect(
|
|
1572
|
+
expect(logger.error).toHaveBeenCalledTimes(1);
|
|
1440
1573
|
});
|
|
1441
1574
|
|
|
1442
1575
|
it('should get underlying iframe', async () => {
|
|
@@ -1464,16 +1597,16 @@ describe('Unit test case for ts embed', () => {
|
|
|
1464
1597
|
);
|
|
1465
1598
|
});
|
|
1466
1599
|
it('should log error if sync is called before preRender', async () => {
|
|
1467
|
-
jest.spyOn(
|
|
1600
|
+
jest.spyOn(logger, 'error').mockImplementation(jest.fn());
|
|
1468
1601
|
const libEmbed = new LiveboardEmbed('#tsEmbedDiv', {
|
|
1469
1602
|
liveboardId: 'myLiveboardId',
|
|
1470
1603
|
preRenderId: 'test',
|
|
1471
1604
|
});
|
|
1472
1605
|
await libEmbed.syncPreRenderStyle();
|
|
1473
|
-
expect(
|
|
1606
|
+
expect(logger.error).toBeCalledWith(
|
|
1474
1607
|
'PreRender should be called before using syncPreRenderStyle',
|
|
1475
1608
|
);
|
|
1476
|
-
(
|
|
1609
|
+
(logger.error as any).mockClear();
|
|
1477
1610
|
});
|
|
1478
1611
|
});
|
|
1479
1612
|
});
|