@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.
Files changed (256) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/auth.d.ts +14 -17
  3. package/cjs/src/auth.d.ts.map +1 -1
  4. package/cjs/src/auth.js +45 -59
  5. package/cjs/src/auth.js.map +1 -1
  6. package/cjs/src/auth.spec.d.ts +12 -0
  7. package/cjs/src/auth.spec.d.ts.map +1 -1
  8. package/cjs/src/auth.spec.js +89 -67
  9. package/cjs/src/auth.spec.js.map +1 -1
  10. package/cjs/src/authToken.d.ts +1 -1
  11. package/cjs/src/authToken.d.ts.map +1 -1
  12. package/cjs/src/authToken.js +18 -5
  13. package/cjs/src/authToken.js.map +1 -1
  14. package/cjs/src/authToken.spec.d.ts +2 -0
  15. package/cjs/src/authToken.spec.d.ts.map +1 -0
  16. package/cjs/src/authToken.spec.js +29 -0
  17. package/cjs/src/authToken.spec.js.map +1 -0
  18. package/cjs/src/embed/app.spec.js +4 -2
  19. package/cjs/src/embed/app.spec.js.map +1 -1
  20. package/cjs/src/embed/base.d.ts.map +1 -1
  21. package/cjs/src/embed/base.js +2 -0
  22. package/cjs/src/embed/base.js.map +1 -1
  23. package/cjs/src/embed/base.spec.js +1 -0
  24. package/cjs/src/embed/base.spec.js.map +1 -1
  25. package/cjs/src/embed/embed.spec.js +3 -0
  26. package/cjs/src/embed/embed.spec.js.map +1 -1
  27. package/cjs/src/embed/events.spec.js +3 -0
  28. package/cjs/src/embed/events.spec.js.map +1 -1
  29. package/cjs/src/embed/liveboard.spec.js +2 -0
  30. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  31. package/cjs/src/embed/pinboard.spec.js +3 -0
  32. package/cjs/src/embed/pinboard.spec.js.map +1 -1
  33. package/cjs/src/embed/sage.spec.js +3 -0
  34. package/cjs/src/embed/sage.spec.js.map +1 -1
  35. package/cjs/src/embed/search.spec.js +1 -0
  36. package/cjs/src/embed/search.spec.js.map +1 -1
  37. package/cjs/src/embed/ts-embed-trigger.spec.js +3 -0
  38. package/cjs/src/embed/ts-embed-trigger.spec.js.map +1 -1
  39. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  40. package/cjs/src/embed/ts-embed.js +7 -0
  41. package/cjs/src/embed/ts-embed.js.map +1 -1
  42. package/cjs/src/embed/ts-embed.spec.js +7 -0
  43. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  44. package/cjs/src/index.d.ts +2 -1
  45. package/cjs/src/index.d.ts.map +1 -1
  46. package/cjs/src/index.js +2 -1
  47. package/cjs/src/index.js.map +1 -1
  48. package/cjs/src/mixpanel-service.d.ts +2 -1
  49. package/cjs/src/mixpanel-service.d.ts.map +1 -1
  50. package/cjs/src/mixpanel-service.js +1 -0
  51. package/cjs/src/mixpanel-service.js.map +1 -1
  52. package/cjs/src/mixpanel-service.spec.js +7 -0
  53. package/cjs/src/mixpanel-service.spec.js.map +1 -1
  54. package/cjs/src/react/index.d.ts +1 -1
  55. package/cjs/src/react/index.d.ts.map +1 -1
  56. package/cjs/src/react/index.js +2 -1
  57. package/cjs/src/react/index.js.map +1 -1
  58. package/cjs/src/react/index.spec.js +6 -0
  59. package/cjs/src/react/index.spec.js.map +1 -1
  60. package/cjs/src/types.d.ts +79 -47
  61. package/cjs/src/types.d.ts.map +1 -1
  62. package/cjs/src/types.js +61 -46
  63. package/cjs/src/types.js.map +1 -1
  64. package/cjs/src/utils/authService/authService.d.ts +1 -0
  65. package/cjs/src/utils/authService/authService.d.ts.map +1 -1
  66. package/cjs/src/utils/authService/authService.js +1 -0
  67. package/cjs/src/utils/authService/authService.js.map +1 -1
  68. package/cjs/src/utils/authService/authService.spec.js +18 -5
  69. package/cjs/src/utils/authService/authService.spec.js.map +1 -1
  70. package/cjs/src/utils/authService/tokenizedAuthService.d.ts +15 -2
  71. package/cjs/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  72. package/cjs/src/utils/authService/tokenizedAuthService.js +39 -9
  73. package/cjs/src/utils/authService/tokenizedAuthService.js.map +1 -1
  74. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  75. package/cjs/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  76. package/cjs/src/utils/authService/tokenizedAuthService.spec.js +32 -0
  77. package/cjs/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  78. package/cjs/src/utils/graphql/answerService/answerService.d.ts +10 -0
  79. package/cjs/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  80. package/cjs/src/utils/graphql/answerService/answerService.js +10 -0
  81. package/cjs/src/utils/graphql/answerService/answerService.js.map +1 -1
  82. package/cjs/src/utils/processData.js +2 -2
  83. package/cjs/src/utils/processData.js.map +1 -1
  84. package/cjs/src/utils/processData.spec.js +3 -2
  85. package/cjs/src/utils/processData.spec.js.map +1 -1
  86. package/cjs/src/utils/sessionInfoService.d.ts +66 -0
  87. package/cjs/src/utils/sessionInfoService.d.ts.map +1 -0
  88. package/cjs/src/utils/sessionInfoService.js +92 -0
  89. package/cjs/src/utils/sessionInfoService.js.map +1 -0
  90. package/cjs/src/utils.d.ts +1 -1
  91. package/cjs/src/utils.d.ts.map +1 -1
  92. package/cjs/src/utils.js +4 -1
  93. package/cjs/src/utils.js.map +1 -1
  94. package/dist/src/auth.d.ts +14 -17
  95. package/dist/src/auth.d.ts.map +1 -1
  96. package/dist/src/auth.spec.d.ts +12 -0
  97. package/dist/src/auth.spec.d.ts.map +1 -1
  98. package/dist/src/authToken.d.ts +1 -1
  99. package/dist/src/authToken.d.ts.map +1 -1
  100. package/dist/src/authToken.spec.d.ts +2 -0
  101. package/dist/src/authToken.spec.d.ts.map +1 -0
  102. package/dist/src/embed/base.d.ts.map +1 -1
  103. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  104. package/dist/src/index.d.ts +2 -1
  105. package/dist/src/index.d.ts.map +1 -1
  106. package/dist/src/mixpanel-service.d.ts +2 -1
  107. package/dist/src/mixpanel-service.d.ts.map +1 -1
  108. package/dist/src/react/index.d.ts +1 -1
  109. package/dist/src/react/index.d.ts.map +1 -1
  110. package/dist/src/types.d.ts +79 -47
  111. package/dist/src/types.d.ts.map +1 -1
  112. package/dist/src/utils/authService/authService.d.ts +1 -0
  113. package/dist/src/utils/authService/authService.d.ts.map +1 -1
  114. package/dist/src/utils/authService/tokenizedAuthService.d.ts +15 -2
  115. package/dist/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  116. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  117. package/dist/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  118. package/dist/src/utils/graphql/answerService/answerService.d.ts +10 -0
  119. package/dist/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  120. package/dist/src/utils/sessionInfoService.d.ts +66 -0
  121. package/dist/src/utils/sessionInfoService.d.ts.map +1 -0
  122. package/dist/src/utils.d.ts +1 -1
  123. package/dist/src/utils.d.ts.map +1 -1
  124. package/dist/tsembed-react.es.js +225 -105
  125. package/dist/tsembed-react.js +225 -104
  126. package/dist/tsembed.es.js +233 -116
  127. package/dist/tsembed.js +233 -116
  128. package/dist/visual-embed-sdk-react-full.d.ts +171 -66
  129. package/dist/visual-embed-sdk-react.d.ts +171 -66
  130. package/dist/visual-embed-sdk.d.ts +171 -66
  131. package/lib/package.json +1 -1
  132. package/lib/src/auth.d.ts +14 -17
  133. package/lib/src/auth.d.ts.map +1 -1
  134. package/lib/src/auth.js +44 -56
  135. package/lib/src/auth.js.map +1 -1
  136. package/lib/src/auth.spec.d.ts +12 -0
  137. package/lib/src/auth.spec.d.ts.map +1 -1
  138. package/lib/src/auth.spec.js +88 -66
  139. package/lib/src/auth.spec.js.map +1 -1
  140. package/lib/src/authToken.d.ts +1 -1
  141. package/lib/src/authToken.d.ts.map +1 -1
  142. package/lib/src/authToken.js +18 -5
  143. package/lib/src/authToken.js.map +1 -1
  144. package/lib/src/authToken.spec.d.ts +2 -0
  145. package/lib/src/authToken.spec.d.ts.map +1 -0
  146. package/lib/src/authToken.spec.js +26 -0
  147. package/lib/src/authToken.spec.js.map +1 -0
  148. package/lib/src/embed/app.spec.js +4 -2
  149. package/lib/src/embed/app.spec.js.map +1 -1
  150. package/lib/src/embed/base.d.ts.map +1 -1
  151. package/lib/src/embed/base.js +3 -1
  152. package/lib/src/embed/base.js.map +1 -1
  153. package/lib/src/embed/base.spec.js +1 -0
  154. package/lib/src/embed/base.spec.js.map +1 -1
  155. package/lib/src/embed/embed.spec.js +2 -0
  156. package/lib/src/embed/embed.spec.js.map +1 -1
  157. package/lib/src/embed/events.spec.js +2 -0
  158. package/lib/src/embed/events.spec.js.map +1 -1
  159. package/lib/src/embed/liveboard.spec.js +2 -0
  160. package/lib/src/embed/liveboard.spec.js.map +1 -1
  161. package/lib/src/embed/pinboard.spec.js +2 -0
  162. package/lib/src/embed/pinboard.spec.js.map +1 -1
  163. package/lib/src/embed/sage.spec.js +2 -0
  164. package/lib/src/embed/sage.spec.js.map +1 -1
  165. package/lib/src/embed/search.spec.js +1 -0
  166. package/lib/src/embed/search.spec.js.map +1 -1
  167. package/lib/src/embed/ts-embed-trigger.spec.js +2 -0
  168. package/lib/src/embed/ts-embed-trigger.spec.js.map +1 -1
  169. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  170. package/lib/src/embed/ts-embed.js +7 -0
  171. package/lib/src/embed/ts-embed.js.map +1 -1
  172. package/lib/src/embed/ts-embed.spec.js +7 -0
  173. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  174. package/lib/src/index.d.ts +2 -1
  175. package/lib/src/index.d.ts.map +1 -1
  176. package/lib/src/index.js +2 -1
  177. package/lib/src/index.js.map +1 -1
  178. package/lib/src/mixpanel-service.d.ts +2 -1
  179. package/lib/src/mixpanel-service.d.ts.map +1 -1
  180. package/lib/src/mixpanel-service.js +1 -0
  181. package/lib/src/mixpanel-service.js.map +1 -1
  182. package/lib/src/mixpanel-service.spec.js +7 -0
  183. package/lib/src/mixpanel-service.spec.js.map +1 -1
  184. package/lib/src/react/index.d.ts +1 -1
  185. package/lib/src/react/index.d.ts.map +1 -1
  186. package/lib/src/react/index.js +1 -1
  187. package/lib/src/react/index.js.map +1 -1
  188. package/lib/src/react/index.spec.js +6 -0
  189. package/lib/src/react/index.spec.js.map +1 -1
  190. package/lib/src/types.d.ts +79 -47
  191. package/lib/src/types.d.ts.map +1 -1
  192. package/lib/src/types.js +61 -46
  193. package/lib/src/types.js.map +1 -1
  194. package/lib/src/utils/authService/authService.d.ts +1 -0
  195. package/lib/src/utils/authService/authService.d.ts.map +1 -1
  196. package/lib/src/utils/authService/authService.js +1 -0
  197. package/lib/src/utils/authService/authService.js.map +1 -1
  198. package/lib/src/utils/authService/authService.spec.js +18 -5
  199. package/lib/src/utils/authService/authService.spec.js.map +1 -1
  200. package/lib/src/utils/authService/tokenizedAuthService.d.ts +15 -2
  201. package/lib/src/utils/authService/tokenizedAuthService.d.ts.map +1 -1
  202. package/lib/src/utils/authService/tokenizedAuthService.js +37 -8
  203. package/lib/src/utils/authService/tokenizedAuthService.js.map +1 -1
  204. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts +2 -0
  205. package/lib/src/utils/authService/tokenizedAuthService.spec.d.ts.map +1 -0
  206. package/lib/src/utils/authService/tokenizedAuthService.spec.js +29 -0
  207. package/lib/src/utils/authService/tokenizedAuthService.spec.js.map +1 -0
  208. package/lib/src/utils/graphql/answerService/answerService.d.ts +10 -0
  209. package/lib/src/utils/graphql/answerService/answerService.d.ts.map +1 -1
  210. package/lib/src/utils/graphql/answerService/answerService.js +10 -0
  211. package/lib/src/utils/graphql/answerService/answerService.js.map +1 -1
  212. package/lib/src/utils/processData.js +3 -3
  213. package/lib/src/utils/processData.js.map +1 -1
  214. package/lib/src/utils/processData.spec.js +3 -2
  215. package/lib/src/utils/processData.spec.js.map +1 -1
  216. package/lib/src/utils/sessionInfoService.d.ts +66 -0
  217. package/lib/src/utils/sessionInfoService.d.ts.map +1 -0
  218. package/lib/src/utils/sessionInfoService.js +85 -0
  219. package/lib/src/utils/sessionInfoService.js.map +1 -0
  220. package/lib/src/utils.d.ts +1 -1
  221. package/lib/src/utils.d.ts.map +1 -1
  222. package/lib/src/utils.js +4 -1
  223. package/lib/src/utils.js.map +1 -1
  224. package/lib/src/visual-embed-sdk.d.ts +176 -67
  225. package/package.json +1 -1
  226. package/src/auth.spec.ts +92 -72
  227. package/src/auth.ts +46 -68
  228. package/src/authToken.spec.ts +31 -0
  229. package/src/authToken.ts +17 -5
  230. package/src/embed/app.spec.ts +4 -2
  231. package/src/embed/base.spec.ts +1 -0
  232. package/src/embed/base.ts +3 -0
  233. package/src/embed/embed.spec.ts +2 -0
  234. package/src/embed/events.spec.ts +2 -0
  235. package/src/embed/liveboard.spec.ts +2 -0
  236. package/src/embed/pinboard.spec.ts +2 -0
  237. package/src/embed/sage.spec.ts +3 -0
  238. package/src/embed/search.spec.ts +1 -0
  239. package/src/embed/ts-embed-trigger.spec.ts +3 -0
  240. package/src/embed/ts-embed.spec.ts +8 -0
  241. package/src/embed/ts-embed.ts +7 -0
  242. package/src/index.ts +2 -1
  243. package/src/mixpanel-service.spec.ts +12 -3
  244. package/src/mixpanel-service.ts +3 -1
  245. package/src/react/index.spec.tsx +7 -0
  246. package/src/react/index.tsx +1 -0
  247. package/src/types.ts +80 -47
  248. package/src/utils/authService/authService.spec.ts +18 -5
  249. package/src/utils/authService/authService.ts +1 -0
  250. package/src/utils/authService/tokenizedAuthService.spec.ts +36 -0
  251. package/src/utils/authService/tokenizedAuthService.ts +38 -8
  252. package/src/utils/graphql/answerService/answerService.ts +10 -0
  253. package/src/utils/processData.spec.ts +3 -2
  254. package/src/utils/processData.ts +3 -3
  255. package/src/utils/sessionInfoService.ts +101 -0
  256. 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 { fetchSessionInfoService, fetchAuthService, fetchBasicAuthService, fetchLogoutService, fetchAuthPostService, EndPoints, } from './utils/authService';
5
- import { getAuthenticationToken, resetCachedAuthToken } from './authToken';
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 { getEmbedConfig } from './embed/embedConfig';
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
- authEE.emit(AuthStatus.SUCCESS, sessionInfo);
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 fetchSessionInfoService(authVerificationUrl);
170
- const sessionInfoResp = await response.json();
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
- * Return releaseVersion if available
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 getReleaseVersion() {
185
- return releaseVersion;
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 a promise that resolves with the session information when
189
- * authentication is successful. And info is available.
190
- *
191
- * @group Global methods
172
+ * Return releaseVersion if available
192
173
  */
193
- export function getSessionInfo() {
194
- return sessionInfoPromise;
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
- const authToken = await getAuthenticationToken(embedConfig);
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('[data-ts-iframe=\'true\']');
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;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
@@ -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":"AAeA,eAAO,MAAM,WAAW,EAAE,GAoFzB,CAAC;AAGF,eAAO,MAAM,eAAe;;;;;;;;;;CAU3B,CAAC"}
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"}
@@ -1,12 +1,14 @@
1
1
  import * as authInstance from './auth';
2
- import * as authService from './utils/authService/authService';
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 { AuthType, EmbedEvent } from './types';
4
+ import * as mixPanelService from './mixpanel-service';
8
5
  import { executeAfterWait } from './test/test-utils';
9
- import { resetCachedAuthToken } from './authToken';
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.AuthServer,
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(mixPanelService, 'initMixpanel').mockImplementation(() => Promise.resolve());
124
- authInstance.initSession(mockSessionInfo);
125
- const sessionInfo = await authInstance.getSessionInfo();
126
- expect(sessionInfo).toStrictEqual(mockSessionInfo);
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.initSession(mockSessionInfo);
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(tokenAuthService, 'fetchSessionInfoService').mockImplementation(async () => ({
154
- json: () => mockSessionInfo,
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(tokenAuthService.fetchSessionInfoService).toBeCalled();
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, 'fetchSessionInfoService').mockImplementation(() => false);
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, 'fetchSessionInfoService').mockImplementation(() => false);
178
- jest.spyOn(authService, 'fetchAuthTokenService').mockImplementation(() => Promise.resolve({ text: () => Promise.resolve('abc') }));
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(tokenAuthService.fetchSessionInfoService).toBeCalled();
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.fetchSessionInfoService).toHaveBeenCalledTimes(2);
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(checkReleaseVersionInBetaInstance, 'checkReleaseVersionInBeta');
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(authInstance, 'getSessionDetails').mockReturnValue(mockSessionInfo);
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, 'fetchSessionInfoService')
342
- .mockImplementationOnce(() => Promise.reject())
343
- .mockImplementationOnce(async () => ({
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(tokenAuthService.fetchSessionInfoService).toBeCalled();
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
- const details = authInstance.getSessionDetails({
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
- const details2 = authInstance.getSessionDetails({
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