@thoughtspot/visual-embed-sdk 1.29.0-alpha.7 → 1.29.0-alpha.SCAL-205893-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/package.json +1 -1
- package/cjs/src/auth.d.ts +14 -17
- package/cjs/src/auth.d.ts.map +1 -1
- package/cjs/src/auth.js +45 -59
- package/cjs/src/auth.js.map +1 -1
- package/cjs/src/auth.spec.d.ts +12 -0
- package/cjs/src/auth.spec.d.ts.map +1 -1
- package/cjs/src/auth.spec.js +89 -67
- package/cjs/src/auth.spec.js.map +1 -1
- package/cjs/src/authToken.d.ts +1 -1
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +18 -5
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.d.ts +2 -0
- package/cjs/src/authToken.spec.d.ts.map +1 -0
- package/cjs/src/authToken.spec.js +29 -0
- package/cjs/src/authToken.spec.js.map +1 -0
- package/cjs/src/embed/app.spec.js +4 -2
- 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 +2 -0
- package/cjs/src/embed/base.js.map +1 -1
- package/cjs/src/embed/base.spec.js +1 -0
- package/cjs/src/embed/base.spec.js.map +1 -1
- package/cjs/src/embed/embed.spec.js +3 -0
- package/cjs/src/embed/embed.spec.js.map +1 -1
- package/cjs/src/embed/events.spec.js +3 -0
- package/cjs/src/embed/events.spec.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +2 -0
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/pinboard.spec.js +3 -0
- package/cjs/src/embed/pinboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +3 -0
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search.spec.js +1 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed-trigger.spec.js +3 -0
- package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +7 -0
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +7 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -1
- 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 +2 -1
- package/cjs/src/mixpanel-service.d.ts.map +1 -1
- package/cjs/src/mixpanel-service.js +1 -0
- package/cjs/src/mixpanel-service.js.map +1 -1
- package/cjs/src/mixpanel-service.spec.js +7 -0
- package/cjs/src/mixpanel-service.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +2 -1
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +6 -0
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +79 -47
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +61 -46
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/authService/authService.d.ts +1 -0
- package/cjs/src/utils/authService/authService.d.ts.map +1 -1
- package/cjs/src/utils/authService/authService.js +1 -0
- package/cjs/src/utils/authService/authService.js.map +1 -1
- package/cjs/src/utils/authService/authService.spec.js +18 -5
- package/cjs/src/utils/authService/authService.spec.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.js +39 -9
- package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
- package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
- package/cjs/src/utils/graphql/answerService/answerService.d.ts +10 -0
- package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/cjs/src/utils/graphql/answerService/answerService.js +10 -0
- package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/cjs/src/utils/processData.js +2 -2
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +3 -2
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils/sessionInfoService.d.ts +66 -0
- package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
- package/cjs/src/utils/sessionInfoService.js +92 -0
- package/cjs/src/utils/sessionInfoService.js.map +1 -0
- package/cjs/src/utils.d.ts +1 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +4 -1
- package/cjs/src/utils.js.map +1 -1
- package/dist/src/auth.d.ts +14 -17
- package/dist/src/auth.d.ts.map +1 -1
- package/dist/src/auth.spec.d.ts +12 -0
- package/dist/src/auth.spec.d.ts.map +1 -1
- package/dist/src/authToken.d.ts +1 -1
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/authToken.spec.d.ts +2 -0
- package/dist/src/authToken.spec.d.ts.map +1 -0
- package/dist/src/embed/base.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mixpanel-service.d.ts +2 -1
- package/dist/src/mixpanel-service.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +79 -47
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/authService/authService.d.ts +1 -0
- package/dist/src/utils/authService/authService.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/dist/src/utils/graphql/answerService/answerService.d.ts +10 -0
- package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/dist/src/utils/sessionInfoService.d.ts +66 -0
- package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +225 -105
- package/dist/tsembed-react.js +225 -104
- package/dist/tsembed.es.js +233 -116
- package/dist/tsembed.js +233 -116
- package/dist/visual-embed-sdk-react-full.d.ts +171 -66
- package/dist/visual-embed-sdk-react.d.ts +171 -66
- package/dist/visual-embed-sdk.d.ts +171 -66
- package/lib/package.json +1 -1
- package/lib/src/auth.d.ts +14 -17
- package/lib/src/auth.d.ts.map +1 -1
- package/lib/src/auth.js +44 -56
- package/lib/src/auth.js.map +1 -1
- package/lib/src/auth.spec.d.ts +12 -0
- package/lib/src/auth.spec.d.ts.map +1 -1
- package/lib/src/auth.spec.js +88 -66
- package/lib/src/auth.spec.js.map +1 -1
- package/lib/src/authToken.d.ts +1 -1
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +18 -5
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.d.ts +2 -0
- package/lib/src/authToken.spec.d.ts.map +1 -0
- package/lib/src/authToken.spec.js +26 -0
- package/lib/src/authToken.spec.js.map +1 -0
- package/lib/src/embed/app.spec.js +4 -2
- 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 +3 -1
- package/lib/src/embed/base.js.map +1 -1
- package/lib/src/embed/base.spec.js +1 -0
- package/lib/src/embed/base.spec.js.map +1 -1
- package/lib/src/embed/embed.spec.js +2 -0
- package/lib/src/embed/embed.spec.js.map +1 -1
- package/lib/src/embed/events.spec.js +2 -0
- package/lib/src/embed/events.spec.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +2 -0
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/pinboard.spec.js +2 -0
- package/lib/src/embed/pinboard.spec.js.map +1 -1
- package/lib/src/embed/sage.spec.js +2 -0
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search.spec.js +1 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed-trigger.spec.js +2 -0
- package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +7 -0
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +7 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js +2 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/mixpanel-service.d.ts +2 -1
- package/lib/src/mixpanel-service.d.ts.map +1 -1
- package/lib/src/mixpanel-service.js +1 -0
- package/lib/src/mixpanel-service.js.map +1 -1
- package/lib/src/mixpanel-service.spec.js +7 -0
- package/lib/src/mixpanel-service.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +1 -1
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +6 -0
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +79 -47
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +61 -46
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/authService/authService.d.ts +1 -0
- package/lib/src/utils/authService/authService.d.ts.map +1 -1
- package/lib/src/utils/authService/authService.js +1 -0
- package/lib/src/utils/authService/authService.js.map +1 -1
- package/lib/src/utils/authService/authService.spec.js +18 -5
- package/lib/src/utils/authService/authService.spec.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.d.ts +15 -2
- package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.js +37 -8
- package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
- package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
- package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
- package/lib/src/utils/graphql/answerService/answerService.d.ts +10 -0
- package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
- package/lib/src/utils/graphql/answerService/answerService.js +10 -0
- package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
- package/lib/src/utils/processData.js +3 -3
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +3 -2
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils/sessionInfoService.d.ts +66 -0
- package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
- package/lib/src/utils/sessionInfoService.js +85 -0
- package/lib/src/utils/sessionInfoService.js.map +1 -0
- package/lib/src/utils.d.ts +1 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +4 -1
- package/lib/src/utils.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +176 -67
- package/package.json +1 -1
- package/src/auth.spec.ts +92 -72
- package/src/auth.ts +46 -68
- package/src/authToken.spec.ts +31 -0
- package/src/authToken.ts +17 -5
- package/src/embed/app.spec.ts +4 -2
- package/src/embed/base.spec.ts +1 -0
- package/src/embed/base.ts +3 -0
- package/src/embed/embed.spec.ts +2 -0
- package/src/embed/events.spec.ts +2 -0
- package/src/embed/liveboard.spec.ts +2 -0
- package/src/embed/pinboard.spec.ts +2 -0
- package/src/embed/sage.spec.ts +3 -0
- package/src/embed/search.spec.ts +1 -0
- package/src/embed/ts-embed-trigger.spec.ts +3 -0
- package/src/embed/ts-embed.spec.ts +8 -0
- package/src/embed/ts-embed.ts +7 -0
- package/src/index.ts +2 -1
- package/src/mixpanel-service.spec.ts +12 -3
- package/src/mixpanel-service.ts +3 -1
- package/src/react/index.spec.tsx +7 -0
- package/src/react/index.tsx +1 -0
- package/src/types.ts +80 -47
- package/src/utils/authService/authService.spec.ts +18 -5
- package/src/utils/authService/authService.ts +1 -0
- package/src/utils/authService/tokenizedAuthService.spec.ts +36 -0
- package/src/utils/authService/tokenizedAuthService.ts +38 -8
- package/src/utils/graphql/answerService/answerService.ts +10 -0
- package/src/utils/processData.spec.ts +3 -2
- package/src/utils/processData.ts +3 -3
- package/src/utils/sessionInfoService.ts +101 -0
- package/src/utils.ts +7 -2
package/lib/src/auth.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
|
+
import { getAuthenticationToken, resetCachedAuthToken } from './authToken';
|
|
2
|
+
import { getEmbedConfig } from './embed/embedConfig';
|
|
1
3
|
import { initMixpanel } from './mixpanel-service';
|
|
2
4
|
import { AuthType, EmbedEvent, } from './types';
|
|
3
5
|
import { getDOMNode, getRedirectUrl } from './utils';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
+
import { EndPoints, fetchAuthPostService, fetchAuthService, fetchBasicAuthService, fetchLogoutService, } from './utils/authService';
|
|
7
|
+
import { isActiveService } from './utils/authService/tokenizedAuthService';
|
|
6
8
|
import { logger } from './utils/logger';
|
|
7
|
-
import {
|
|
9
|
+
import { getSessionInfo } from './utils/sessionInfoService';
|
|
8
10
|
// eslint-disable-next-line import/no-mutable-exports
|
|
9
11
|
export let loggedInStatus = false;
|
|
10
12
|
// eslint-disable-next-line import/no-mutable-exports
|
|
11
13
|
export let samlAuthWindow = null;
|
|
12
14
|
// eslint-disable-next-line import/no-mutable-exports
|
|
13
15
|
export let samlCompletionPromise = null;
|
|
14
|
-
let sessionInfo = null;
|
|
15
|
-
let sessionInfoResolver = null;
|
|
16
|
-
const sessionInfoPromise = new Promise((resolve) => {
|
|
17
|
-
sessionInfoResolver = resolve;
|
|
18
|
-
});
|
|
19
16
|
let releaseVersion = '';
|
|
20
17
|
export const SSO_REDIRECTION_MARKER_GUID = '5e16222e-ef02-43e9-9fbd-24226bf3ce5b';
|
|
21
18
|
/**
|
|
@@ -103,12 +100,18 @@ export function notifyAuthSDKSuccess() {
|
|
|
103
100
|
/**
|
|
104
101
|
*
|
|
105
102
|
*/
|
|
106
|
-
export function notifyAuthSuccess() {
|
|
103
|
+
export async function notifyAuthSuccess() {
|
|
107
104
|
if (!authEE) {
|
|
108
105
|
logger.error('SDK not initialized');
|
|
109
106
|
return;
|
|
110
107
|
}
|
|
111
|
-
|
|
108
|
+
try {
|
|
109
|
+
const sessionInfo = await getSessionInfo();
|
|
110
|
+
authEE.emit(AuthStatus.SUCCESS, sessionInfo);
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
logger.error('Failed to get session info');
|
|
114
|
+
}
|
|
112
115
|
}
|
|
113
116
|
/**
|
|
114
117
|
*
|
|
@@ -131,67 +134,45 @@ export function notifyLogout() {
|
|
|
131
134
|
}
|
|
132
135
|
authEE.emit(AuthStatus.LOGOUT);
|
|
133
136
|
}
|
|
134
|
-
export const initSession = (sessionDetails) => {
|
|
135
|
-
const embedConfig = getEmbedConfig();
|
|
136
|
-
if (sessionInfo == null) {
|
|
137
|
-
sessionInfo = sessionDetails;
|
|
138
|
-
if (!embedConfig.disableSDKTracking) {
|
|
139
|
-
initMixpanel(sessionInfo);
|
|
140
|
-
}
|
|
141
|
-
sessionInfoResolver(sessionInfo);
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
export const getSessionDetails = (sessionInfoResp) => {
|
|
145
|
-
const devMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.devSdkKey;
|
|
146
|
-
const prodMixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.prodSdkKey;
|
|
147
|
-
const mixpanelToken = sessionInfoResp.configInfo.mixpanelConfig.production
|
|
148
|
-
? prodMixpanelToken
|
|
149
|
-
: devMixpanelToken;
|
|
150
|
-
return {
|
|
151
|
-
userGUID: sessionInfoResp.userGUID,
|
|
152
|
-
mixpanelToken,
|
|
153
|
-
isPublicUser: sessionInfoResp.configInfo.isPublicUser,
|
|
154
|
-
releaseVersion: sessionInfoResp.releaseVersion,
|
|
155
|
-
clusterId: sessionInfoResp.configInfo.selfClusterId,
|
|
156
|
-
clusterName: sessionInfoResp.configInfo.selfClusterName,
|
|
157
|
-
...sessionInfoResp,
|
|
158
|
-
};
|
|
159
|
-
};
|
|
160
137
|
/**
|
|
161
138
|
* Check if we are logged into the ThoughtSpot cluster
|
|
162
139
|
*
|
|
163
140
|
* @param thoughtSpotHost The ThoughtSpot cluster hostname or IP
|
|
164
141
|
*/
|
|
165
142
|
async function isLoggedIn(thoughtSpotHost) {
|
|
166
|
-
const authVerificationUrl = `${thoughtSpotHost}${EndPoints.AUTH_VERIFICATION}`;
|
|
167
|
-
let response = null;
|
|
168
143
|
try {
|
|
169
|
-
response = await
|
|
170
|
-
|
|
171
|
-
const sessionDetails = getSessionDetails(sessionInfoResp);
|
|
172
|
-
// Store user session details from session info
|
|
173
|
-
initSession(sessionDetails);
|
|
174
|
-
releaseVersion = sessionInfoResp.releaseVersion;
|
|
144
|
+
const response = await isActiveService(thoughtSpotHost);
|
|
145
|
+
return response;
|
|
175
146
|
}
|
|
176
147
|
catch (e) {
|
|
177
148
|
return false;
|
|
178
149
|
}
|
|
179
|
-
return response.status === 200;
|
|
180
150
|
}
|
|
181
151
|
/**
|
|
182
|
-
*
|
|
152
|
+
* Services to be called after the login is successful,
|
|
153
|
+
* This should be called after the cookie is set for cookie auth or
|
|
154
|
+
* after the token is set for cookieless.
|
|
155
|
+
*
|
|
156
|
+
* @return {Promise<void>}
|
|
157
|
+
* @example
|
|
158
|
+
* ```js
|
|
159
|
+
* await postLoginService();
|
|
160
|
+
* ```
|
|
161
|
+
* @version SDK: 1.28.3 | ThoughtSpot: *
|
|
183
162
|
*/
|
|
184
|
-
export function
|
|
185
|
-
|
|
163
|
+
export async function postLoginService() {
|
|
164
|
+
const sessionInfo = await getSessionInfo();
|
|
165
|
+
releaseVersion = sessionInfo.releaseVersion;
|
|
166
|
+
const embedConfig = getEmbedConfig();
|
|
167
|
+
if (!embedConfig.disableSDKTracking) {
|
|
168
|
+
initMixpanel(sessionInfo);
|
|
169
|
+
}
|
|
186
170
|
}
|
|
187
171
|
/**
|
|
188
|
-
* Return
|
|
189
|
-
* authentication is successful. And info is available.
|
|
190
|
-
*
|
|
191
|
-
* @group Global methods
|
|
172
|
+
* Return releaseVersion if available
|
|
192
173
|
*/
|
|
193
|
-
export function
|
|
194
|
-
return
|
|
174
|
+
export function getReleaseVersion() {
|
|
175
|
+
return releaseVersion;
|
|
195
176
|
}
|
|
196
177
|
/**
|
|
197
178
|
* Check if we are stuck at the SSO redirect URL
|
|
@@ -222,7 +203,14 @@ export const doTokenAuth = async (embedConfig) => {
|
|
|
222
203
|
}
|
|
223
204
|
loggedInStatus = await isLoggedIn(thoughtSpotHost);
|
|
224
205
|
if (!loggedInStatus) {
|
|
225
|
-
|
|
206
|
+
let authToken;
|
|
207
|
+
try {
|
|
208
|
+
authToken = await getAuthenticationToken(embedConfig);
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
loggedInStatus = false;
|
|
212
|
+
throw e;
|
|
213
|
+
}
|
|
226
214
|
let resp;
|
|
227
215
|
try {
|
|
228
216
|
resp = await fetchAuthPostService(thoughtSpotHost, username, authToken);
|
|
@@ -380,7 +368,7 @@ export const logout = async (embedConfig) => {
|
|
|
380
368
|
const { thoughtSpotHost } = embedConfig;
|
|
381
369
|
await fetchLogoutService(thoughtSpotHost);
|
|
382
370
|
resetCachedAuthToken();
|
|
383
|
-
const thoughtspotIframes = document.querySelectorAll(
|
|
371
|
+
const thoughtspotIframes = document.querySelectorAll("[data-ts-iframe='true']");
|
|
384
372
|
if (thoughtspotIframes === null || thoughtspotIframes === void 0 ? void 0 : thoughtspotIframes.length) {
|
|
385
373
|
thoughtspotIframes.forEach((el) => {
|
|
386
374
|
el.parentElement.innerHTML = embedConfig.loginFailedMessage;
|
package/lib/src/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACH,QAAQ,EAA4B,UAAU,GACjD,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EACH,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
package/lib/src/auth.spec.d.ts
CHANGED
|
@@ -10,4 +10,16 @@ export declare const mockSessionInfo: {
|
|
|
10
10
|
genNo: number;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
+
export declare const mockSessionInfoApiResponse: {
|
|
14
|
+
userGUID: string;
|
|
15
|
+
releaseVersion: string;
|
|
16
|
+
configInfo: {
|
|
17
|
+
isPublicUser: boolean;
|
|
18
|
+
mixpanelConfig: {
|
|
19
|
+
production: boolean;
|
|
20
|
+
devSdkKey: string;
|
|
21
|
+
prodSdkKey: string;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
13
25
|
//# sourceMappingURL=auth.spec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.spec.d.ts","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.spec.d.ts","sourceRoot":"","sources":["../../src/auth.spec.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,WAAW,EAAE,GAoFzB,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;CAWtC,CAAC"}
|
package/lib/src/auth.spec.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import * as authInstance from './auth';
|
|
2
|
-
import * as
|
|
3
|
-
import * as tokenAuthService from './utils/authService/tokenizedAuthService';
|
|
4
|
-
import * as checkReleaseVersionInBetaInstance from './utils';
|
|
5
|
-
import * as mixPanelService from './mixpanel-service';
|
|
2
|
+
import * as authTokenService from './authToken';
|
|
6
3
|
import * as EmbedConfig from './embed/embedConfig';
|
|
7
|
-
import
|
|
4
|
+
import * as mixPanelService from './mixpanel-service';
|
|
8
5
|
import { executeAfterWait } from './test/test-utils';
|
|
9
|
-
import {
|
|
6
|
+
import { AuthType, EmbedEvent } from './types';
|
|
7
|
+
import * as checkReleaseVersionInBetaInstance from './utils';
|
|
8
|
+
import * as authService from './utils/authService/authService';
|
|
9
|
+
import * as tokenAuthService from './utils/authService/tokenizedAuthService';
|
|
10
|
+
import { logger } from './utils/logger';
|
|
11
|
+
import * as SessionService from './utils/sessionInfoService';
|
|
10
12
|
const thoughtSpotHost = 'http://localhost:3000';
|
|
11
13
|
const username = 'tsuser';
|
|
12
14
|
const password = '12345678';
|
|
@@ -16,7 +18,7 @@ export const embedConfig = {
|
|
|
16
18
|
thoughtSpotHost,
|
|
17
19
|
username,
|
|
18
20
|
authEndpoint: 'auth',
|
|
19
|
-
authType: AuthType.
|
|
21
|
+
authType: AuthType.TrustedAuthToken,
|
|
20
22
|
getAuthToken: jest.fn(() => Promise.resolve(token)),
|
|
21
23
|
}),
|
|
22
24
|
doTokenAuthWithCookieDetect: {
|
|
@@ -108,29 +110,44 @@ export const mockSessionInfo = {
|
|
|
108
110
|
genNo: 5,
|
|
109
111
|
},
|
|
110
112
|
};
|
|
113
|
+
export const mockSessionInfoApiResponse = {
|
|
114
|
+
userGUID: '1234',
|
|
115
|
+
releaseVersion: 'test',
|
|
116
|
+
configInfo: {
|
|
117
|
+
isPublicUser: false,
|
|
118
|
+
mixpanelConfig: {
|
|
119
|
+
production: true,
|
|
120
|
+
devSdkKey: 'devKey',
|
|
121
|
+
prodSdkKey: 'prodKey',
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
};
|
|
111
125
|
describe('Unit test for auth', () => {
|
|
112
126
|
beforeEach(() => {
|
|
127
|
+
jest.resetAllMocks();
|
|
113
128
|
global.fetch = window.fetch;
|
|
114
129
|
});
|
|
115
130
|
afterEach(() => {
|
|
116
|
-
resetCachedAuthToken();
|
|
131
|
+
authTokenService.resetCachedAuthToken();
|
|
132
|
+
SessionService.resetCachedSessionInfo();
|
|
117
133
|
});
|
|
118
134
|
test('endpoints, SAML_LOGIN_TEMPLATE', () => {
|
|
119
135
|
const ssoTemplateUrl = authService.EndPoints.SAML_LOGIN_TEMPLATE(thoughtSpotHost);
|
|
120
136
|
expect(ssoTemplateUrl).toBe(`/callosum/v1/saml/login?targetURLPath=${thoughtSpotHost}`);
|
|
121
137
|
});
|
|
122
|
-
test('when session info giving response', async () => {
|
|
123
|
-
jest.spyOn(
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
expect(sessionInfo).
|
|
138
|
+
test('when session info giving response, it is cached', async () => {
|
|
139
|
+
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockResolvedValueOnce(mockSessionInfoApiResponse);
|
|
140
|
+
const sessionInfo = await SessionService.getSessionInfo();
|
|
141
|
+
expect(sessionInfo.mixpanelToken).toEqual('prodKey');
|
|
142
|
+
expect(sessionInfo.isPublicUser).toEqual(false);
|
|
143
|
+
await SessionService.getSessionInfo();
|
|
144
|
+
expect(tokenAuthService.fetchSessionInfoService).toHaveBeenCalledTimes(1);
|
|
127
145
|
});
|
|
128
146
|
test('Disable mixpanel when disableSDKTracking flag is set', () => {
|
|
129
|
-
jest.clearAllMocks();
|
|
130
|
-
jest.resetAllMocks();
|
|
131
147
|
jest.spyOn(mixPanelService, 'initMixpanel');
|
|
148
|
+
jest.spyOn(SessionService, 'getSessionInfo').mockReturnValue(mockSessionInfo);
|
|
132
149
|
jest.spyOn(EmbedConfig, 'getEmbedConfig').mockReturnValue({ disableSDKTracking: true });
|
|
133
|
-
authInstance.
|
|
150
|
+
authInstance.postLoginService();
|
|
134
151
|
expect(mixPanelService.initMixpanel).not.toBeCalled();
|
|
135
152
|
});
|
|
136
153
|
test('doCookielessTokenAuth: when authEndpoint and getAuthToken are not there, it throw error', async () => {
|
|
@@ -150,45 +167,42 @@ describe('Unit test for auth', () => {
|
|
|
150
167
|
}
|
|
151
168
|
});
|
|
152
169
|
test('doTokenAuth: when user is loggedIn', async () => {
|
|
153
|
-
jest.spyOn(
|
|
154
|
-
|
|
155
|
-
status: 200,
|
|
156
|
-
}));
|
|
157
|
-
jest.spyOn(authInstance, 'getSessionDetails').mockReturnValue(mockSessionInfo);
|
|
158
|
-
jest.spyOn(authInstance, 'initSession').mockReturnValue(null);
|
|
170
|
+
const getAuthenticationTokenMock = jest.spyOn(authTokenService, 'getAuthenticationToken');
|
|
171
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockImplementation(async () => true);
|
|
159
172
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken'));
|
|
160
|
-
expect(
|
|
173
|
+
expect(authTokenService.getAuthenticationToken).not.toBeCalled();
|
|
161
174
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
175
|
+
getAuthenticationTokenMock.mockRestore();
|
|
162
176
|
});
|
|
163
177
|
test('doTokenAuth: when user is not loggedIn & getAuthToken have response', async () => {
|
|
164
|
-
jest.spyOn(tokenAuthService, '
|
|
165
|
-
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => ({
|
|
166
|
-
text: () => Promise.resolve('abc'),
|
|
167
|
-
}));
|
|
178
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockImplementation(async () => false);
|
|
168
179
|
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
169
180
|
status: 200,
|
|
181
|
+
ok: true,
|
|
170
182
|
}));
|
|
171
183
|
jest.spyOn(authService, 'verifyTokenService').mockResolvedValueOnce(true);
|
|
172
184
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken2'));
|
|
173
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
174
185
|
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
|
|
175
186
|
});
|
|
176
187
|
test('doTokenAuth: when user is not loggedIn & getAuthToken not present, isLoggedIn should called', async () => {
|
|
177
|
-
jest.spyOn(tokenAuthService, '
|
|
178
|
-
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() =>
|
|
188
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockImplementation(async () => false);
|
|
189
|
+
jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => ({
|
|
190
|
+
text: () => Promise.resolve('abc'),
|
|
191
|
+
}));
|
|
179
192
|
jest.spyOn(authService, 'fetchAuthService').mockImplementation(() => Promise.resolve({
|
|
180
193
|
status: 200,
|
|
181
194
|
ok: true,
|
|
182
195
|
}));
|
|
183
196
|
jest.spyOn(authService, 'verifyTokenService').mockResolvedValueOnce(true);
|
|
184
197
|
await authInstance.doTokenAuth(embedConfig.doTokenAuthFailureWithoutGetAuthToken);
|
|
198
|
+
expect(authService.fetchAuthTokenService).toBeCalledWith('auth');
|
|
185
199
|
await executeAfterWait(() => {
|
|
186
200
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
187
|
-
expect(
|
|
188
|
-
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
|
|
201
|
+
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'abc');
|
|
189
202
|
});
|
|
190
203
|
});
|
|
191
204
|
test('doTokenAuth: Should raise error when duplicate token is used', async () => {
|
|
205
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockImplementation(async () => false);
|
|
192
206
|
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockResolvedValue({
|
|
193
207
|
status: 401,
|
|
194
208
|
});
|
|
@@ -229,8 +243,10 @@ describe('Unit test for auth', () => {
|
|
|
229
243
|
ok: true,
|
|
230
244
|
}));
|
|
231
245
|
jest.spyOn(authService, 'verifyTokenService').mockResolvedValueOnce(true);
|
|
246
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockResolvedValueOnce(false);
|
|
247
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockResolvedValueOnce(false);
|
|
232
248
|
const isLoggedIn = await authInstance.doTokenAuth(embedConfig.doTokenAuthWithCookieDetect);
|
|
233
|
-
expect(tokenAuthService.
|
|
249
|
+
expect(tokenAuthService.isActiveService).toHaveBeenCalledTimes(2);
|
|
234
250
|
expect(isLoggedIn).toBe(false);
|
|
235
251
|
});
|
|
236
252
|
test('doTokenAuth: when user is not loggedIn & fetchAuthPostService failed than fetchAuthService should call', async () => {
|
|
@@ -250,7 +266,6 @@ describe('Unit test for auth', () => {
|
|
|
250
266
|
}));
|
|
251
267
|
jest.spyOn(authService, 'verifyTokenService').mockResolvedValueOnce(true);
|
|
252
268
|
expect(await authInstance.doTokenAuth(embedConfig.doTokenAuthSuccess('authToken2'))).toBe(true);
|
|
253
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
254
269
|
expect(authService.fetchAuthPostService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
|
|
255
270
|
expect(authService.fetchAuthService).toBeCalledWith(thoughtSpotHost, username, 'authToken2');
|
|
256
271
|
});
|
|
@@ -259,18 +274,9 @@ describe('Unit test for auth', () => {
|
|
|
259
274
|
global.fetch = window.fetch;
|
|
260
275
|
});
|
|
261
276
|
it('when user is loggedIn', async () => {
|
|
262
|
-
spyOn(
|
|
263
|
-
jest.spyOn(authInstance, 'getSessionDetails').mockReturnValue(mockSessionInfo);
|
|
264
|
-
jest.spyOn(authInstance, 'initSession').mockReturnValue(null);
|
|
265
|
-
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockImplementation(async () => ({
|
|
266
|
-
json: () => mockSessionInfo,
|
|
267
|
-
status: 200,
|
|
268
|
-
}));
|
|
277
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockResolvedValueOnce(true);
|
|
269
278
|
await authInstance.doBasicAuth(embedConfig.doBasicAuth);
|
|
270
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
271
279
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
272
|
-
expect(authInstance.getSessionDetails).toBeCalled();
|
|
273
|
-
expect(authInstance.initSession).toBeCalled();
|
|
274
280
|
});
|
|
275
281
|
it('when user is not loggedIn', async () => {
|
|
276
282
|
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
@@ -279,7 +285,7 @@ describe('Unit test for auth', () => {
|
|
|
279
285
|
ok: true,
|
|
280
286
|
}));
|
|
281
287
|
await authInstance.doBasicAuth(embedConfig.doBasicAuth);
|
|
282
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
288
|
+
// expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
283
289
|
expect(authService.fetchBasicAuthService).toBeCalled();
|
|
284
290
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
285
291
|
});
|
|
@@ -303,17 +309,14 @@ describe('Unit test for auth', () => {
|
|
|
303
309
|
json: () => mockSessionInfo,
|
|
304
310
|
status: 200,
|
|
305
311
|
}));
|
|
306
|
-
jest.spyOn(
|
|
307
|
-
jest.spyOn(authInstance, 'initSession').mockReturnValue(null);
|
|
312
|
+
jest.spyOn(tokenAuthService, 'isActiveService').mockReturnValue(true);
|
|
308
313
|
await authInstance.doSamlAuth(embedConfig.doSamlAuth);
|
|
309
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
310
314
|
expect(window.location.hash).toBe('');
|
|
311
315
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
312
316
|
});
|
|
313
317
|
it('when user is not loggedIn & isAtSSORedirectUrl is true', async () => {
|
|
314
318
|
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
315
319
|
await authInstance.doSamlAuth(embedConfig.doSamlAuth);
|
|
316
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
317
320
|
expect(window.location.hash).toBe('');
|
|
318
321
|
expect(authInstance.loggedInStatus).toBe(false);
|
|
319
322
|
});
|
|
@@ -326,7 +329,6 @@ describe('Unit test for auth', () => {
|
|
|
326
329
|
});
|
|
327
330
|
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
328
331
|
await authInstance.doSamlAuth(embedConfig.doSamlAuth);
|
|
329
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
330
332
|
expect(global.window.location.href).toBe(samalLoginUrl);
|
|
331
333
|
});
|
|
332
334
|
it('when user is not loggedIn, in config noRedirect is true and isAtSSORedirectUrl is false', async () => {
|
|
@@ -338,14 +340,9 @@ describe('Unit test for auth', () => {
|
|
|
338
340
|
});
|
|
339
341
|
spyOn(authInstance, 'samlCompletionPromise');
|
|
340
342
|
global.window.open = jest.fn();
|
|
341
|
-
jest.spyOn(tokenAuthService, '
|
|
342
|
-
.
|
|
343
|
-
.
|
|
344
|
-
json: () => mockSessionInfo,
|
|
345
|
-
status: 200,
|
|
346
|
-
}));
|
|
347
|
-
jest.spyOn(authInstance, 'getSessionDetails').mockReturnValue(mockSessionInfo);
|
|
348
|
-
jest.spyOn(authInstance, 'initSession').mockReturnValue(null);
|
|
343
|
+
jest.spyOn(tokenAuthService, 'isActiveService')
|
|
344
|
+
.mockReturnValueOnce(false)
|
|
345
|
+
.mockReturnValueOnce(true);
|
|
349
346
|
expect(await authInstance.samlCompletionPromise).not.toBe(null);
|
|
350
347
|
expect(await authInstance.doSamlAuth({
|
|
351
348
|
...embedConfig.doSamlAuthNoRedirect,
|
|
@@ -353,14 +350,12 @@ describe('Unit test for auth', () => {
|
|
|
353
350
|
document.getElementById('ts-auth-btn').click();
|
|
354
351
|
window.postMessage({ type: EmbedEvent.SAMLComplete }, '*');
|
|
355
352
|
await authInstance.samlCompletionPromise;
|
|
356
|
-
expect(
|
|
357
|
-
expect(authInstance.getSessionDetails).toBeCalled();
|
|
358
|
-
expect(authInstance.initSession).toBeCalled();
|
|
353
|
+
expect(authInstance.loggedInStatus).toBe(true);
|
|
359
354
|
});
|
|
360
355
|
});
|
|
361
356
|
describe('doOIDCAuth', () => {
|
|
362
357
|
afterEach(() => {
|
|
363
|
-
resetCachedAuthToken();
|
|
358
|
+
authTokenService.resetCachedAuthToken();
|
|
364
359
|
delete global.window;
|
|
365
360
|
global.window = Object.create(originalWindow);
|
|
366
361
|
global.window.open = jest.fn();
|
|
@@ -369,7 +364,6 @@ describe('Unit test for auth', () => {
|
|
|
369
364
|
it('when user is not loggedIn & isAtSSORedirectUrl is true', async () => {
|
|
370
365
|
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockImplementation(() => Promise.reject());
|
|
371
366
|
await authInstance.doOIDCAuth(embedConfig.doOidcAuth);
|
|
372
|
-
expect(tokenAuthService.fetchSessionInfoService).toBeCalled();
|
|
373
367
|
expect(window.location.hash).toBe('');
|
|
374
368
|
expect(authInstance.loggedInStatus).toBe(false);
|
|
375
369
|
});
|
|
@@ -406,6 +400,7 @@ describe('Unit test for auth', () => {
|
|
|
406
400
|
});
|
|
407
401
|
it('authenticate: when authType is Basic', async () => {
|
|
408
402
|
jest.spyOn(authInstance, 'doBasicAuth');
|
|
403
|
+
jest.spyOn(authService, 'fetchBasicAuthService').mockImplementation(() => Promise.resolve({ status: 200, ok: true }));
|
|
409
404
|
await authInstance.authenticate(embedConfig.basicAuthSuccess);
|
|
410
405
|
expect(authInstance.doBasicAuth).toBeCalled();
|
|
411
406
|
expect(authInstance.loggedInStatus).toBe(true);
|
|
@@ -417,6 +412,7 @@ describe('Unit test for auth', () => {
|
|
|
417
412
|
expect(authInstance.isAuthenticated()).toBe(authInstance.loggedInStatus);
|
|
418
413
|
});
|
|
419
414
|
it('doCookielessTokenAuth should resolve to true if valid token is passed', async () => {
|
|
415
|
+
jest.clearAllMocks();
|
|
420
416
|
jest.spyOn(authService, 'verifyTokenService').mockResolvedValueOnce(true);
|
|
421
417
|
const isLoggedIn = await authInstance.doCookielessTokenAuth(embedConfig.doCookielessAuth('testToken'));
|
|
422
418
|
expect(isLoggedIn).toBe(true);
|
|
@@ -431,10 +427,10 @@ describe('Unit test for auth', () => {
|
|
|
431
427
|
authInstance.setAuthEE(testObject);
|
|
432
428
|
expect(authInstance.getAuthEE()).toBe(testObject);
|
|
433
429
|
});
|
|
434
|
-
it('getSessionDetails returns the correct details given sessionInfo', () => {
|
|
430
|
+
it('getSessionDetails returns the correct details given sessionInfo', async () => {
|
|
435
431
|
jest.clearAllMocks();
|
|
436
432
|
jest.restoreAllMocks();
|
|
437
|
-
|
|
433
|
+
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockReturnValue({
|
|
438
434
|
userGUID: '1234',
|
|
439
435
|
releaseVersion: '1',
|
|
440
436
|
configInfo: {
|
|
@@ -445,10 +441,11 @@ describe('Unit test for auth', () => {
|
|
|
445
441
|
},
|
|
446
442
|
},
|
|
447
443
|
});
|
|
444
|
+
const details = await SessionService.getSessionInfo();
|
|
448
445
|
expect(details).toEqual(expect.objectContaining({
|
|
449
446
|
mixpanelToken: 'devKey',
|
|
450
447
|
}));
|
|
451
|
-
|
|
448
|
+
jest.spyOn(tokenAuthService, 'fetchSessionInfoService').mockReturnValue({
|
|
452
449
|
configInfo: {
|
|
453
450
|
mixpanelConfig: {
|
|
454
451
|
devSdkKey: 'devKey',
|
|
@@ -457,9 +454,34 @@ describe('Unit test for auth', () => {
|
|
|
457
454
|
},
|
|
458
455
|
},
|
|
459
456
|
});
|
|
457
|
+
SessionService.resetCachedSessionInfo();
|
|
458
|
+
const details2 = await SessionService.getSessionInfo();
|
|
460
459
|
expect(details2).toEqual(expect.objectContaining({
|
|
461
460
|
mixpanelToken: 'prodKey',
|
|
462
461
|
}));
|
|
463
462
|
});
|
|
463
|
+
test('notifyAuthSuccess if getSessionInfo returns data', async () => {
|
|
464
|
+
const dummyInfo = { test: 'dummy' };
|
|
465
|
+
jest.spyOn(SessionService, 'getSessionInfo').mockResolvedValueOnce(dummyInfo);
|
|
466
|
+
jest.spyOn(logger, 'error').mockResolvedValueOnce(true);
|
|
467
|
+
const emitSpy = jest.fn();
|
|
468
|
+
authInstance.setAuthEE({ emit: emitSpy });
|
|
469
|
+
await authInstance.notifyAuthSuccess();
|
|
470
|
+
expect(logger.error).not.toBeCalled();
|
|
471
|
+
expect(emitSpy).toBeCalledWith(authInstance.AuthStatus.SUCCESS, dummyInfo);
|
|
472
|
+
authInstance.setAuthEE(null);
|
|
473
|
+
});
|
|
474
|
+
test('notifyAuthSuccess if getSessionInfo fails', async () => {
|
|
475
|
+
jest.spyOn(SessionService, 'getSessionInfo').mockImplementation(() => {
|
|
476
|
+
throw new Error('error');
|
|
477
|
+
});
|
|
478
|
+
jest.spyOn(logger, 'error');
|
|
479
|
+
const emitSpy = jest.fn();
|
|
480
|
+
authInstance.setAuthEE({ emit: emitSpy });
|
|
481
|
+
await authInstance.notifyAuthSuccess();
|
|
482
|
+
expect(logger.error).toBeCalled();
|
|
483
|
+
expect(emitSpy).not.toBeCalled();
|
|
484
|
+
authInstance.setAuthEE(null);
|
|
485
|
+
});
|
|
464
486
|
});
|
|
465
487
|
//# sourceMappingURL=auth.spec.js.map
|