@databiosphere/findable-ui 19.0.0 → 20.0.0

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 (363) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
  4. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
  5. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
  6. package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.js +1 -0
  7. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
  8. package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
  9. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
  10. package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
  11. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
  12. package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
  13. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
  14. package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
  15. package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
  16. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
  17. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
  18. package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
  19. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
  20. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
  21. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
  22. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
  23. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  24. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
  25. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
  26. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
  27. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
  28. package/lib/components/Layout/components/Header/header.js +1 -1
  29. package/lib/components/Login/components/Button/button.d.ts +2 -0
  30. package/lib/components/Login/components/Button/button.js +6 -0
  31. package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
  32. package/lib/components/Login/components/Button/button.styles.js +11 -0
  33. package/lib/components/Login/components/Button/constants.d.ts +2 -0
  34. package/lib/components/Login/components/Button/constants.js +6 -0
  35. package/lib/components/Login/components/Button/types.d.ts +3 -0
  36. package/lib/components/Login/components/Button/types.js +1 -0
  37. package/lib/components/Login/login.d.ts +2 -9
  38. package/lib/components/Login/login.js +9 -10
  39. package/lib/components/Login/types.d.ts +10 -0
  40. package/lib/components/Login/types.js +1 -0
  41. package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
  42. package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
  43. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
  44. package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
  45. package/lib/config/entities.d.ts +22 -23
  46. package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
  47. package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
  48. package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
  49. package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
  50. package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
  51. package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
  52. package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
  53. package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
  54. package/lib/hooks/authentication/profile/types.d.ts +5 -0
  55. package/lib/hooks/authentication/profile/types.js +1 -0
  56. package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
  57. package/lib/hooks/authentication/profile/useProfile.js +15 -0
  58. package/lib/hooks/authentication/providers/types.d.ts +6 -0
  59. package/lib/hooks/authentication/providers/types.js +1 -0
  60. package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
  61. package/lib/hooks/authentication/providers/useProviders.js +14 -0
  62. package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
  63. package/lib/hooks/authentication/session/useSessionActive.js +36 -0
  64. package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
  65. package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
  66. package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
  67. package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
  68. package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
  69. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
  70. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
  71. package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
  72. package/lib/hooks/authentication/token/types.d.ts +4 -0
  73. package/lib/hooks/authentication/token/types.js +1 -0
  74. package/lib/hooks/authentication/token/useToken.d.ts +2 -0
  75. package/lib/hooks/authentication/token/useToken.js +5 -0
  76. package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
  77. package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
  78. package/lib/hooks/useEntityList.js +2 -2
  79. package/lib/hooks/useFetchEntity.js +4 -3
  80. package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
  81. package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
  82. package/lib/hooks/useRequestFileLocation.js +2 -3
  83. package/lib/hooks/useRouteHistory.d.ts +14 -0
  84. package/lib/hooks/useRouteHistory.js +40 -0
  85. package/lib/hooks/useRouteRoot.d.ts +1 -0
  86. package/lib/hooks/useRouteRoot.js +8 -0
  87. package/lib/hooks/useSummary.js +3 -3
  88. package/lib/providers/authentication/auth/actions.d.ts +8 -0
  89. package/lib/providers/authentication/auth/actions.js +12 -0
  90. package/lib/providers/authentication/auth/constants.d.ts +2 -0
  91. package/lib/providers/authentication/auth/constants.js +5 -0
  92. package/lib/providers/authentication/auth/context.d.ts +2 -0
  93. package/lib/providers/authentication/auth/context.js +7 -0
  94. package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
  95. package/lib/providers/authentication/auth/dispatch.js +43 -0
  96. package/lib/providers/authentication/auth/hook.d.ts +6 -0
  97. package/lib/providers/authentication/auth/hook.js +9 -0
  98. package/lib/providers/authentication/auth/reducer.d.ts +8 -0
  99. package/lib/providers/authentication/auth/reducer.js +24 -0
  100. package/lib/providers/authentication/auth/types.d.ts +48 -0
  101. package/lib/providers/authentication/auth/types.js +11 -0
  102. package/lib/providers/authentication/authentication/actions.d.ts +8 -0
  103. package/lib/providers/authentication/authentication/actions.js +12 -0
  104. package/lib/providers/authentication/authentication/constants.d.ts +2 -0
  105. package/lib/providers/authentication/authentication/constants.js +5 -0
  106. package/lib/providers/authentication/authentication/context.d.ts +2 -0
  107. package/lib/providers/authentication/authentication/context.js +6 -0
  108. package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
  109. package/lib/providers/authentication/authentication/dispatch.js +42 -0
  110. package/lib/providers/authentication/authentication/hook.d.ts +6 -0
  111. package/lib/providers/authentication/authentication/hook.js +9 -0
  112. package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
  113. package/lib/providers/authentication/authentication/reducer.js +25 -0
  114. package/lib/providers/authentication/authentication/types.d.ts +47 -0
  115. package/lib/providers/authentication/authentication/types.js +11 -0
  116. package/lib/providers/authentication/authentication/utils.d.ts +12 -0
  117. package/lib/providers/authentication/authentication/utils.js +18 -0
  118. package/lib/providers/authentication/common/types.d.ts +1 -0
  119. package/lib/providers/authentication/common/types.js +1 -0
  120. package/lib/providers/authentication/common/utils.d.ts +6 -0
  121. package/lib/providers/authentication/common/utils.js +11 -0
  122. package/lib/providers/authentication/credentials/actions.d.ts +8 -0
  123. package/lib/providers/authentication/credentials/actions.js +12 -0
  124. package/lib/providers/authentication/credentials/constants.d.ts +2 -0
  125. package/lib/providers/authentication/credentials/constants.js +3 -0
  126. package/lib/providers/authentication/credentials/context.d.ts +2 -0
  127. package/lib/providers/authentication/credentials/context.js +6 -0
  128. package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
  129. package/lib/providers/authentication/credentials/dispatch.js +22 -0
  130. package/lib/providers/authentication/credentials/hook.d.ts +6 -0
  131. package/lib/providers/authentication/credentials/hook.js +9 -0
  132. package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
  133. package/lib/providers/authentication/credentials/reducer.js +22 -0
  134. package/lib/providers/authentication/credentials/types.d.ts +24 -0
  135. package/lib/providers/authentication/credentials/types.js +5 -0
  136. package/lib/providers/authentication/terra/context.d.ts +2 -0
  137. package/lib/providers/authentication/terra/context.js +7 -0
  138. package/lib/providers/authentication/terra/hook.d.ts +6 -0
  139. package/lib/providers/authentication/terra/hook.js +9 -0
  140. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
  141. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
  142. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
  143. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
  144. package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
  145. package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
  146. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
  147. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
  148. package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
  149. package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
  150. package/lib/providers/authentication/terra/hooks/utils.js +19 -0
  151. package/lib/providers/authentication/terra/provider.d.ts +2 -0
  152. package/lib/providers/authentication/terra/provider.js +42 -0
  153. package/lib/providers/authentication/terra/types.d.ts +20 -0
  154. package/lib/providers/authentication/terra/types.js +6 -0
  155. package/lib/providers/authentication/terra/utils.d.ts +19 -0
  156. package/lib/providers/authentication/terra/utils.js +36 -0
  157. package/lib/providers/authentication/token/constants.d.ts +2 -0
  158. package/lib/providers/authentication/token/constants.js +4 -0
  159. package/lib/providers/authentication/token/dispatch.d.ts +12 -0
  160. package/lib/providers/authentication/token/dispatch.js +22 -0
  161. package/lib/providers/authentication/token/reducer.d.ts +8 -0
  162. package/lib/providers/authentication/token/reducer.js +22 -0
  163. package/lib/providers/authentication/token/types.d.ts +28 -0
  164. package/lib/providers/authentication/token/types.js +5 -0
  165. package/lib/providers/exploreState.js +3 -5
  166. package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
  167. package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
  168. package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
  169. package/lib/providers/googleSignInAuthentication/constants.js +12 -0
  170. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
  171. package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
  172. package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
  173. package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
  174. package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
  175. package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
  176. package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
  177. package/lib/providers/googleSignInAuthentication/provider.js +40 -0
  178. package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
  179. package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
  180. package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
  181. package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
  182. package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
  183. package/lib/providers/googleSignInAuthentication/types.js +1 -0
  184. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
  185. package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
  186. package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
  187. package/lib/providers/nextAuthAuthentication/provider.js +30 -0
  188. package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
  189. package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
  190. package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
  191. package/lib/providers/nextAuthAuthentication/types.js +1 -0
  192. package/lib/routes/constants.d.ts +3 -0
  193. package/lib/routes/constants.js +3 -0
  194. package/lib/styles/common/mui/button.d.ts +3 -0
  195. package/lib/styles/common/mui/button.js +17 -0
  196. package/lib/styles/common/mui/paper.d.ts +2 -0
  197. package/lib/styles/common/mui/paper.js +9 -0
  198. package/lib/styles/common/mui/popover.d.ts +3 -0
  199. package/lib/styles/common/mui/popover.js +10 -0
  200. package/lib/theme/common/entities.d.ts +6 -0
  201. package/lib/theme/common/entities.js +1 -0
  202. package/lib/views/LoginView/loginView.d.ts +5 -1
  203. package/lib/views/LoginView/loginView.js +6 -4
  204. package/package.json +3 -2
  205. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
  206. package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
  207. package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
  208. package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
  209. package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
  210. package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
  211. package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
  212. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
  213. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
  214. package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
  215. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
  216. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
  217. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
  218. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
  219. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
  220. package/src/components/Layout/components/Header/header.tsx +1 -1
  221. package/src/components/Login/components/Button/button.styles.ts +12 -0
  222. package/src/components/Login/components/Button/button.tsx +8 -0
  223. package/src/components/Login/components/Button/constants.ts +8 -0
  224. package/src/components/Login/components/Button/types.ts +4 -0
  225. package/src/components/Login/login.tsx +28 -28
  226. package/src/components/Login/types.ts +11 -0
  227. package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
  228. package/src/components/common/CustomIcon/common/entities.ts +1 -4
  229. package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
  230. package/src/config/entities.ts +20 -25
  231. package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
  232. package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
  233. package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
  234. package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
  235. package/src/hooks/authentication/profile/types.ts +9 -0
  236. package/src/hooks/authentication/profile/useProfile.ts +21 -0
  237. package/src/hooks/authentication/providers/types.ts +7 -0
  238. package/src/hooks/authentication/providers/useProviders.ts +23 -0
  239. package/src/hooks/authentication/session/useSessionActive.ts +51 -0
  240. package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
  241. package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
  242. package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
  243. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
  244. package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
  245. package/src/hooks/authentication/token/types.ts +5 -0
  246. package/src/hooks/authentication/token/useToken.ts +9 -0
  247. package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
  248. package/src/hooks/useEntityList.ts +2 -2
  249. package/src/hooks/useFetchEntity.tsx +3 -3
  250. package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
  251. package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
  252. package/src/hooks/useRequestFileLocation.ts +2 -3
  253. package/src/hooks/useRouteHistory.ts +65 -0
  254. package/src/hooks/useRouteRoot.ts +11 -0
  255. package/src/hooks/useSummary.ts +3 -3
  256. package/src/providers/authentication/auth/actions.ts +17 -0
  257. package/src/providers/authentication/auth/constants.ts +6 -0
  258. package/src/providers/authentication/auth/context.ts +9 -0
  259. package/src/providers/authentication/auth/dispatch.ts +58 -0
  260. package/src/providers/authentication/auth/hook.ts +11 -0
  261. package/src/providers/authentication/auth/reducer.ts +25 -0
  262. package/src/providers/authentication/auth/types.ts +63 -0
  263. package/src/providers/authentication/authentication/actions.ts +17 -0
  264. package/src/providers/authentication/authentication/constants.ts +6 -0
  265. package/src/providers/authentication/authentication/context.ts +8 -0
  266. package/src/providers/authentication/authentication/dispatch.ts +55 -0
  267. package/src/providers/authentication/authentication/hook.ts +11 -0
  268. package/src/providers/authentication/authentication/reducer.ts +34 -0
  269. package/src/providers/authentication/authentication/types.ts +64 -0
  270. package/src/providers/authentication/authentication/utils.ts +25 -0
  271. package/src/providers/authentication/common/types.ts +1 -0
  272. package/src/providers/authentication/common/utils.ts +11 -0
  273. package/src/providers/authentication/credentials/actions.ts +17 -0
  274. package/src/providers/authentication/credentials/constants.ts +5 -0
  275. package/src/providers/authentication/credentials/context.ts +8 -0
  276. package/src/providers/authentication/credentials/dispatch.ts +31 -0
  277. package/src/providers/authentication/credentials/hook.ts +11 -0
  278. package/src/providers/authentication/credentials/reducer.ts +30 -0
  279. package/src/providers/authentication/credentials/types.ts +33 -0
  280. package/src/providers/authentication/terra/context.ts +16 -0
  281. package/src/providers/authentication/terra/hook.ts +11 -0
  282. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
  283. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
  284. package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
  285. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
  286. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
  287. package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
  288. package/src/providers/authentication/terra/hooks/utils.ts +29 -0
  289. package/src/providers/authentication/terra/provider.tsx +60 -0
  290. package/src/providers/authentication/terra/types.ts +23 -0
  291. package/src/providers/authentication/terra/utils.ts +49 -0
  292. package/src/providers/authentication/token/constants.ts +6 -0
  293. package/src/providers/authentication/token/dispatch.ts +29 -0
  294. package/src/providers/authentication/token/reducer.ts +26 -0
  295. package/src/providers/authentication/token/types.ts +36 -0
  296. package/src/providers/exploreState.tsx +3 -4
  297. package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
  298. package/src/providers/googleSignInAuthentication/constants.ts +17 -0
  299. package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
  300. package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
  301. package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
  302. package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
  303. package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
  304. package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
  305. package/src/providers/googleSignInAuthentication/types.ts +7 -0
  306. package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
  307. package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
  308. package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
  309. package/src/providers/nextAuthAuthentication/types.ts +9 -0
  310. package/src/routes/constants.ts +3 -0
  311. package/src/styles/common/mui/button.ts +20 -0
  312. package/src/styles/common/mui/paper.ts +11 -0
  313. package/src/styles/common/mui/popover.ts +19 -0
  314. package/src/theme/common/entities.ts +7 -0
  315. package/src/views/LoginView/loginView.tsx +15 -9
  316. package/tests/getProfileStatus.test.ts +290 -0
  317. package/tests/terraProfileProvider.test.tsx +121 -0
  318. package/tests/transformRoute.test.ts +21 -0
  319. package/tests/useRouteHistory.test.ts +97 -0
  320. package/tests/useSessionActive.test.ts +107 -0
  321. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
  322. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
  323. package/lib/components/Login/login.stories.d.ts +0 -6
  324. package/lib/components/Login/login.stories.js +0 -31
  325. package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
  326. package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
  327. package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
  328. package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
  329. package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
  330. package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
  331. package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
  332. package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
  333. package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
  334. package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
  335. package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
  336. package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
  337. package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
  338. package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
  339. package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
  340. package/lib/hooks/useAuthenticationConfig.js +0 -14
  341. package/lib/providers/authentication.d.ts +0 -51
  342. package/lib/providers/authentication.js +0 -110
  343. package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
  344. package/src/components/Login/login.stories.tsx +0 -43
  345. package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
  346. package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
  347. package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
  348. package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
  349. package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
  350. package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
  351. package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
  352. package/src/hooks/useAuthenticationConfig.ts +0 -18
  353. package/src/providers/authentication.tsx +0 -181
  354. package/tests/authentication.test.ts +0 -142
  355. package/tests/useAuthenticationStatus.test.ts +0 -155
  356. /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
  357. /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
  358. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
  359. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
  360. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
  361. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
  362. /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
  363. /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
@@ -1,181 +0,0 @@
1
- import Router, { useRouter } from "next/router";
2
- import React, { createContext, ReactNode, useCallback } from "react";
3
- import { useIdleTimer } from "react-idle-timer";
4
- import { LOGIN_STATUS_NOT_STARTED } from "../hooks/useAuthentication/common/constants";
5
- import {
6
- AUTHENTICATION_STATUS,
7
- LoginStatus,
8
- } from "../hooks/useAuthentication/common/entities";
9
- import { useAuthenticationComplete } from "../hooks/useAuthentication/useAuthenticationComplete";
10
- import { useAuthenticationStatus } from "../hooks/useAuthentication/useAuthenticationStatus";
11
- import {
12
- useFetchGoogleProfile,
13
- UserProfile,
14
- } from "../hooks/useAuthentication/useFetchGoogleProfile";
15
- import {
16
- TerraNIHResponse,
17
- useFetchTerraNIHProfile,
18
- } from "../hooks/useAuthentication/useFetchTerraNIHProfile";
19
- import {
20
- TerraResponse,
21
- useFetchTerraProfile,
22
- } from "../hooks/useAuthentication/useFetchTerraProfile";
23
- import {
24
- TerraTermsOfServiceResponse,
25
- useFetchTerraTermsOfService,
26
- } from "../hooks/useAuthentication/useFetchTerraTermsOfService";
27
- import { useTokenClient } from "../hooks/useAuthentication/useTokenClient";
28
- import { useConfig } from "../hooks/useConfig";
29
- import { INACTIVITY_PARAM } from "../hooks/useSessionTimeout";
30
-
31
- // Template constants
32
- export const ROUTE_LOGIN = "/login";
33
-
34
- type AuthenticateUserFn = () => void;
35
- type RequestAuthenticationFn = () => void;
36
-
37
- /**
38
- * Model of authentication context.
39
- */
40
- export interface AuthContextProps {
41
- authenticateUser: AuthenticateUserFn;
42
- authenticationStatus: AUTHENTICATION_STATUS;
43
- isAuthenticated: boolean;
44
- isEnabled: boolean;
45
- requestAuthentication: RequestAuthenticationFn;
46
- terraNIHProfileLoginStatus: LoginStatus<TerraNIHResponse>;
47
- terraProfileLoginStatus: LoginStatus<TerraResponse>;
48
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>;
49
- token?: string;
50
- userProfile?: UserProfile;
51
- }
52
-
53
- /**
54
- * Auth context for storing and using auth-related state.
55
- */
56
- export const AuthContext = createContext<AuthContextProps>({
57
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
58
- authenticateUser: () => {},
59
- authenticationStatus: AUTHENTICATION_STATUS.INCOMPLETE,
60
- isAuthenticated: false,
61
- isEnabled: false,
62
- // eslint-disable-next-line @typescript-eslint/no-empty-function -- allow dummy function for default state.
63
- requestAuthentication: () => {},
64
- terraNIHProfileLoginStatus:
65
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraNIHResponse>,
66
- terraProfileLoginStatus:
67
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraResponse>,
68
- terraTOSLoginStatus:
69
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraTermsOfServiceResponse>,
70
- token: undefined,
71
- userProfile: undefined,
72
- });
73
-
74
- interface Props {
75
- children: ReactNode | ReactNode[];
76
- sessionTimeout?: number;
77
- }
78
-
79
- /**
80
- * Auth provider for consuming components to subscribe to changes in auth-related state.
81
- * @param props - Component inputs.
82
- * @param props.children - Set of children components that can possibly consume the query provider.
83
- * @param props.sessionTimeout - If provided, will set the value for a session timeout (in milliseconds).
84
- * @returns Provider element to be used by consumers to both update authentication state and subscribe to changes in authentication state.
85
- */
86
- export function AuthProvider({ children, sessionTimeout }: Props): JSX.Element {
87
- const { config } = useConfig();
88
- const { authentication, redirectRootToPath } = config;
89
- const { basePath } = useRouter();
90
- const { token, tokenClient } = useTokenClient();
91
- const terraNIHProfileLoginStatus = useFetchTerraNIHProfile(token);
92
- const terraProfileLoginStatus = useFetchTerraProfile(token);
93
- const terraTOSLoginStatus = useFetchTerraTermsOfService(token);
94
- const userProfileLoginStatus = useFetchGoogleProfile(token);
95
- const isEnabled = Boolean(authentication);
96
- const isAuthenticated = userProfileLoginStatus.isSuccess;
97
- const releaseToken = shouldReleaseToken(
98
- userProfileLoginStatus,
99
- terraProfileLoginStatus,
100
- terraTOSLoginStatus
101
- );
102
- const authenticationStatus = useAuthenticationStatus(
103
- userProfileLoginStatus,
104
- terraProfileLoginStatus,
105
- terraTOSLoginStatus,
106
- terraNIHProfileLoginStatus
107
- );
108
-
109
- // Handle completion of authentication process.
110
- useAuthenticationComplete(authenticationStatus);
111
-
112
- /**
113
- * If sessionTimeout is set and user is authenticated, the app will reload and redirect to
114
- * origin, including base path, root path, and query param.
115
- */
116
- useIdleTimer({
117
- onIdle: () =>
118
- isAuthenticated &&
119
- sessionTimeout &&
120
- (window.location.href =
121
- window.location.origin +
122
- basePath +
123
- redirectRootToPath +
124
- "?" +
125
- `${INACTIVITY_PARAM}=true`),
126
- timeout: sessionTimeout,
127
- });
128
-
129
- /**
130
- * Requests access token and authenticates user.
131
- */
132
- const authenticateUser = useCallback((): void => {
133
- tokenClient.requestAccessToken();
134
- }, [tokenClient]);
135
-
136
- /**
137
- * Navigates to login page.
138
- */
139
- const requestAuthentication = useCallback((): void => {
140
- Router.push(ROUTE_LOGIN);
141
- }, []);
142
-
143
- return (
144
- <AuthContext.Provider
145
- value={{
146
- authenticateUser,
147
- authenticationStatus,
148
- isAuthenticated,
149
- isEnabled,
150
- requestAuthentication,
151
- terraNIHProfileLoginStatus,
152
- terraProfileLoginStatus,
153
- terraTOSLoginStatus,
154
- token: releaseToken ? token : undefined,
155
- userProfile: userProfileLoginStatus.response,
156
- }}
157
- >
158
- {children}
159
- </AuthContext.Provider>
160
- );
161
- }
162
-
163
- /**
164
- * Token is released for the following conditions:
165
- * - Terra endpoint is configured and the terms of service response is successful, or
166
- * - Terra endpoint is not configured and the user profile response is successful.
167
- * @param userProfileLoginStatus - User profile login status.
168
- * @param terraProfileLoginStatus - Terra profile login status.
169
- * @param terraTOSLoginStatus - Terra terms of service login status.
170
- * @returns true if the token should be released.
171
- */
172
- export function shouldReleaseToken(
173
- userProfileLoginStatus: LoginStatus<UserProfile>,
174
- terraProfileLoginStatus: LoginStatus<TerraResponse>,
175
- terraTOSLoginStatus: LoginStatus<TerraTermsOfServiceResponse>
176
- ): boolean {
177
- if (terraProfileLoginStatus.isSupported) {
178
- return terraTOSLoginStatus.isSuccess;
179
- }
180
- return userProfileLoginStatus.isSuccess;
181
- }
@@ -1,142 +0,0 @@
1
- import { jest } from "@jest/globals";
2
- import { LOGIN_STATUS_NOT_STARTED } from "../src/hooks/useAuthentication/common/constants";
3
- import {
4
- LoginStatus,
5
- REQUEST_STATUS,
6
- } from "../src/hooks/useAuthentication/common/entities";
7
- import { GoogleResponse } from "../src/hooks/useAuthentication/useFetchGoogleProfile";
8
- import { TerraResponse } from "../src/hooks/useAuthentication/useFetchTerraProfile";
9
- import { TerraTermsOfServiceResponse } from "../src/hooks/useAuthentication/useFetchTerraTermsOfService";
10
-
11
- jest.unstable_mockModule("react-idle-timer", () => ({
12
- useIdleTimer: jest.fn(),
13
- }));
14
-
15
- const { shouldReleaseToken } = await import("../src/providers/authentication");
16
-
17
- describe("authentication", () => {
18
- // Boolean constants.
19
- const IS_NOT_SUCCESS = false;
20
- const IS_NOT_SUPPORTED = false;
21
- const IS_SUCCESS = true;
22
- const IS_SUPPORTED = true;
23
- // Response objects.
24
- const GOOGLE_RESPONSE = {} as GoogleResponse;
25
- const TERRA_RESPONSE = {} as TerraResponse;
26
- const TERRA_TOS_RESPONSE = {} as TerraTermsOfServiceResponse;
27
- // Login statuses - not started, not supported.
28
- const LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA: LoginStatus<TerraResponse> =
29
- {
30
- isSuccess: IS_NOT_SUCCESS,
31
- isSupported: IS_NOT_SUPPORTED,
32
- requestStatus: REQUEST_STATUS.NOT_STARTED,
33
- response: TERRA_RESPONSE,
34
- };
35
- const LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
36
- {
37
- isSuccess: IS_NOT_SUCCESS,
38
- isSupported: IS_NOT_SUPPORTED,
39
- requestStatus: REQUEST_STATUS.NOT_STARTED,
40
- response: TERRA_TOS_RESPONSE,
41
- };
42
- // Login statuses - not started, supported.
43
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA =
44
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraResponse>;
45
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA_TOS =
46
- LOGIN_STATUS_NOT_STARTED as LoginStatus<TerraTermsOfServiceResponse>;
47
- const LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE =
48
- LOGIN_STATUS_NOT_STARTED as LoginStatus<GoogleResponse>;
49
- // Login statuses - completed, not successful.
50
- const LOGIN_STATUS_COMPLETED_NOT_SUCCESS_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
51
- {
52
- isSuccess: IS_NOT_SUCCESS,
53
- isSupported: IS_SUPPORTED,
54
- requestStatus: REQUEST_STATUS.COMPLETED,
55
- response: TERRA_TOS_RESPONSE,
56
- };
57
- const LOGIN_STATUS_COMPLETED_NOT_SUCCESS_USER_PROFILE: LoginStatus<GoogleResponse> =
58
- {
59
- isSuccess: IS_NOT_SUCCESS,
60
- isSupported: IS_SUPPORTED,
61
- requestStatus: REQUEST_STATUS.COMPLETED,
62
- response: GOOGLE_RESPONSE,
63
- };
64
- // Login statuses - completed, successful.
65
- const LOGIN_STATUS_COMPLETED_SUCCESS_TERRA: LoginStatus<TerraResponse> = {
66
- isSuccess: IS_SUCCESS,
67
- isSupported: IS_SUPPORTED,
68
- requestStatus: REQUEST_STATUS.COMPLETED,
69
- response: TERRA_RESPONSE,
70
- };
71
- const LOGIN_STATUS_COMPLETED_SUCCESS_TERRA_TOS: LoginStatus<TerraTermsOfServiceResponse> =
72
- {
73
- isSuccess: IS_SUCCESS,
74
- isSupported: IS_SUPPORTED,
75
- requestStatus: REQUEST_STATUS.COMPLETED,
76
- response: TERRA_TOS_RESPONSE,
77
- };
78
- const LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE: LoginStatus<GoogleResponse> =
79
- {
80
- isSuccess: IS_SUCCESS,
81
- isSupported: IS_SUPPORTED,
82
- requestStatus: REQUEST_STATUS.COMPLETED,
83
- response: GOOGLE_RESPONSE,
84
- };
85
-
86
- describe("Should Release Token", () => {
87
- describe("shouldReleaseToken", () => {
88
- describe("Terra endpoint is configured", () => {
89
- test("login not started", () => {
90
- const releaseToken = shouldReleaseToken(
91
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE,
92
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA,
93
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_TERRA_TOS
94
- );
95
- expect(releaseToken).toBeFalsy();
96
- });
97
- test("login completed and Terra terms of service is not successful", () => {
98
- const releaseToken = shouldReleaseToken(
99
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
100
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA,
101
- LOGIN_STATUS_COMPLETED_NOT_SUCCESS_TERRA_TOS
102
- );
103
- expect(releaseToken).toBeFalsy();
104
- });
105
- test("login completed and Terra terms of service is successful", () => {
106
- const releaseToken = shouldReleaseToken(
107
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
108
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA,
109
- LOGIN_STATUS_COMPLETED_SUCCESS_TERRA_TOS
110
- );
111
- expect(releaseToken).toBeTruthy();
112
- });
113
- });
114
- describe("Terra endpoint is not configured", () => {
115
- test("login not started", () => {
116
- const releaseToken = shouldReleaseToken(
117
- LOGIN_STATUS_NOT_STARTED_SUPPORTED_USER_PROFILE,
118
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
119
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
120
- );
121
- expect(releaseToken).toBeFalsy();
122
- });
123
- test("user profile is not successful", () => {
124
- const releaseToken = shouldReleaseToken(
125
- LOGIN_STATUS_COMPLETED_NOT_SUCCESS_USER_PROFILE,
126
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
127
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
128
- );
129
- expect(releaseToken).toBeFalsy();
130
- });
131
- test("user profile is successful", () => {
132
- const releaseToken = shouldReleaseToken(
133
- LOGIN_STATUS_COMPLETED_SUCCESS_USER_PROFILE,
134
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA,
135
- LOGIN_STATUS_NOT_STARTED_NOT_SUPPORTED_TERRA_TOS
136
- );
137
- expect(releaseToken).toBeTruthy();
138
- });
139
- });
140
- });
141
- });
142
- });
@@ -1,155 +0,0 @@
1
- import {
2
- LOGIN_STATUS_NOT_STARTED,
3
- LOGIN_STATUS_NOT_SUPPORTED,
4
- } from "../src/hooks/useAuthentication/common/constants";
5
- import {
6
- AUTHENTICATION_STATUS,
7
- LoginResponse,
8
- LoginStatus,
9
- REQUEST_STATUS,
10
- } from "../src/hooks/useAuthentication/common/entities";
11
- import { getAuthenticationStatus } from "../src/hooks/useAuthentication/useAuthenticationStatus";
12
-
13
- const TEST_LOGIN_IS_COMPLETE = "login is complete";
14
- const TEST_LOGIN_NOT_STARTED = "login not started";
15
- const TEST_USER_PROFILE_AND_TERRA_AND_TOS_IS_COMPLETE =
16
- "user profile, terra and terms of service is complete";
17
- const TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE =
18
- "user profile and terra is complete";
19
- const TEST_USER_PROFILE_IS_COMPLETE = "user profile is complete";
20
-
21
- describe("useAuthenticationStatus", () => {
22
- // Login statuses - completed, successful.
23
- const LOGIN_STATUS_COMPLETED_SUCCESS: LoginStatus<LoginResponse> = {
24
- isSuccess: true,
25
- isSupported: true,
26
- requestStatus: REQUEST_STATUS.COMPLETED,
27
- response: {} as LoginResponse,
28
- };
29
-
30
- describe("Calculate Authentication Status", () => {
31
- describe("getAuthenticationStatus", () => {
32
- describe("endpoints are configured", () => {
33
- test(TEST_LOGIN_NOT_STARTED, () => {
34
- const authenticationStatus = getAuthenticationStatus([
35
- LOGIN_STATUS_NOT_STARTED,
36
- LOGIN_STATUS_NOT_STARTED,
37
- LOGIN_STATUS_NOT_STARTED,
38
- LOGIN_STATUS_NOT_STARTED,
39
- ]);
40
- expect(authenticationStatus).toEqual(
41
- AUTHENTICATION_STATUS.INCOMPLETE
42
- );
43
- });
44
- test(TEST_USER_PROFILE_IS_COMPLETE, () => {
45
- const authenticationStatus = getAuthenticationStatus([
46
- LOGIN_STATUS_NOT_STARTED,
47
- LOGIN_STATUS_NOT_STARTED,
48
- LOGIN_STATUS_NOT_STARTED,
49
- LOGIN_STATUS_COMPLETED_SUCCESS,
50
- ]);
51
- expect(authenticationStatus).toEqual(
52
- AUTHENTICATION_STATUS.INCOMPLETE
53
- );
54
- });
55
- test(TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE, () => {
56
- const authenticationStatus = getAuthenticationStatus([
57
- LOGIN_STATUS_NOT_STARTED,
58
- LOGIN_STATUS_COMPLETED_SUCCESS,
59
- LOGIN_STATUS_NOT_STARTED,
60
- LOGIN_STATUS_COMPLETED_SUCCESS,
61
- ]);
62
- expect(authenticationStatus).toEqual(
63
- AUTHENTICATION_STATUS.INCOMPLETE
64
- );
65
- });
66
- test(TEST_USER_PROFILE_AND_TERRA_AND_TOS_IS_COMPLETE, () => {
67
- const authenticationStatus = getAuthenticationStatus([
68
- LOGIN_STATUS_NOT_STARTED,
69
- LOGIN_STATUS_COMPLETED_SUCCESS,
70
- LOGIN_STATUS_COMPLETED_SUCCESS,
71
- LOGIN_STATUS_COMPLETED_SUCCESS,
72
- ]);
73
- expect(authenticationStatus).toEqual(
74
- AUTHENTICATION_STATUS.INCOMPLETE
75
- );
76
- });
77
- test(TEST_LOGIN_IS_COMPLETE, () => {
78
- const authenticationStatus = getAuthenticationStatus([
79
- LOGIN_STATUS_COMPLETED_SUCCESS,
80
- LOGIN_STATUS_COMPLETED_SUCCESS,
81
- LOGIN_STATUS_COMPLETED_SUCCESS,
82
- LOGIN_STATUS_COMPLETED_SUCCESS,
83
- ]);
84
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
85
- });
86
- });
87
- describe("NIH endpoint is not configured", () => {
88
- test(TEST_LOGIN_NOT_STARTED, () => {
89
- const authenticationStatus = getAuthenticationStatus([
90
- LOGIN_STATUS_NOT_SUPPORTED,
91
- LOGIN_STATUS_NOT_STARTED,
92
- LOGIN_STATUS_NOT_STARTED,
93
- LOGIN_STATUS_NOT_STARTED,
94
- ]);
95
- expect(authenticationStatus).toEqual(
96
- AUTHENTICATION_STATUS.INCOMPLETE
97
- );
98
- });
99
- test(TEST_USER_PROFILE_IS_COMPLETE, () => {
100
- const authenticationStatus = getAuthenticationStatus([
101
- LOGIN_STATUS_NOT_SUPPORTED,
102
- LOGIN_STATUS_NOT_STARTED,
103
- LOGIN_STATUS_NOT_STARTED,
104
- LOGIN_STATUS_COMPLETED_SUCCESS,
105
- ]);
106
- expect(authenticationStatus).toEqual(
107
- AUTHENTICATION_STATUS.INCOMPLETE
108
- );
109
- });
110
- test(TEST_USER_PROFILE_AND_TERRA_IS_COMPLETE, () => {
111
- const authenticationStatus = getAuthenticationStatus([
112
- LOGIN_STATUS_NOT_SUPPORTED,
113
- LOGIN_STATUS_COMPLETED_SUCCESS,
114
- LOGIN_STATUS_NOT_STARTED,
115
- LOGIN_STATUS_COMPLETED_SUCCESS,
116
- ]);
117
- expect(authenticationStatus).toEqual(
118
- AUTHENTICATION_STATUS.INCOMPLETE
119
- );
120
- });
121
- test(TEST_LOGIN_IS_COMPLETE, () => {
122
- const authenticationStatus = getAuthenticationStatus([
123
- LOGIN_STATUS_NOT_SUPPORTED,
124
- LOGIN_STATUS_COMPLETED_SUCCESS,
125
- LOGIN_STATUS_COMPLETED_SUCCESS,
126
- LOGIN_STATUS_COMPLETED_SUCCESS,
127
- ]);
128
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
129
- });
130
- });
131
- describe("Terra endpoint is not configured", () => {
132
- test(TEST_LOGIN_NOT_STARTED, () => {
133
- const authenticationStatus = getAuthenticationStatus([
134
- LOGIN_STATUS_NOT_SUPPORTED,
135
- LOGIN_STATUS_NOT_SUPPORTED,
136
- LOGIN_STATUS_NOT_SUPPORTED,
137
- LOGIN_STATUS_NOT_STARTED,
138
- ]);
139
- expect(authenticationStatus).toEqual(
140
- AUTHENTICATION_STATUS.INCOMPLETE
141
- );
142
- });
143
- test(TEST_LOGIN_IS_COMPLETE, () => {
144
- const authenticationStatus = getAuthenticationStatus([
145
- LOGIN_STATUS_NOT_SUPPORTED,
146
- LOGIN_STATUS_NOT_SUPPORTED,
147
- LOGIN_STATUS_NOT_SUPPORTED,
148
- LOGIN_STATUS_COMPLETED_SUCCESS,
149
- ]);
150
- expect(authenticationStatus).toEqual(AUTHENTICATION_STATUS.COMPLETED);
151
- });
152
- });
153
- });
154
- });
155
- });