passbolt-styleguide 3.8.4 → 3.9.0-alpha2

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 (318) hide show
  1. package/build/css/help.min.css +3 -3
  2. package/build/css/public.min.css +3 -3
  3. package/build/css/themes/default/api_authentication.min.css +3 -3
  4. package/build/css/themes/default/api_cloud.min.css +3 -3
  5. package/build/css/themes/default/api_main.min.css +3 -3
  6. package/build/css/themes/default/api_reports.min.css +3 -3
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +3 -3
  9. package/build/css/themes/default/ext_authentication.min.css +3 -3
  10. package/build/css/themes/default/ext_external.min.css +2 -2
  11. package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
  12. package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
  13. package/build/css/themes/default/ext_quickaccess.min.css +3 -3
  14. package/build/css/themes/midgar/api_authentication.min.css +3 -3
  15. package/build/css/themes/midgar/api_main.min.css +3 -3
  16. package/build/css/themes/midgar/api_reports.min.css +3 -3
  17. package/build/css/themes/midgar/ext_app.min.css +3 -3
  18. package/build/css/themes/midgar/ext_authentication.min.css +3 -3
  19. package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
  20. package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
  21. package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
  22. package/build/css/themes/solarized_dark/api_authentication.min.css +1 -1
  23. package/build/css/themes/solarized_dark/api_main.min.css +1 -1
  24. package/build/css/themes/solarized_dark/api_reports.min.css +1 -1
  25. package/build/css/themes/solarized_dark/ext_app.min.css +1 -1
  26. package/build/css/themes/solarized_dark/ext_authentication.min.css +1 -1
  27. package/build/css/themes/solarized_dark/ext_in_form_cta.min.css +1 -1
  28. package/build/css/themes/solarized_dark/ext_in_form_menu.min.css +1 -1
  29. package/build/css/themes/solarized_dark/ext_quickaccess.min.css +1 -1
  30. package/build/css/themes/solarized_light/api_authentication.min.css +1 -1
  31. package/build/css/themes/solarized_light/api_main.min.css +1 -1
  32. package/build/css/themes/solarized_light/api_reports.min.css +1 -1
  33. package/build/css/themes/solarized_light/ext_app.min.css +1 -1
  34. package/build/css/themes/solarized_light/ext_authentication.min.css +1 -1
  35. package/build/css/themes/solarized_light/ext_in_form_cta.min.css +1 -1
  36. package/build/css/themes/solarized_light/ext_in_form_menu.min.css +1 -1
  37. package/build/css/themes/solarized_light/ext_quickaccess.min.css +1 -1
  38. package/build/js/dist/api-account-recovery.js +1 -1
  39. package/build/js/dist/api-app.js +1 -1
  40. package/build/js/dist/api-app.js.LICENSE.txt +75 -5
  41. package/build/js/dist/api-feedback.js +2 -0
  42. package/build/js/dist/api-feedback.js.LICENSE.txt +45 -0
  43. package/build/js/dist/api-recover.js +1 -1
  44. package/build/js/dist/api-setup.js +1 -1
  45. package/build/js/dist/api-triage.js +1 -1
  46. package/build/js/dist/api-vendors.js +1 -1
  47. package/build/js/dist/api-vendors.js.LICENSE.txt +19 -9
  48. package/build/js/dist/src/locales/de-DE/common.json +995 -0
  49. package/build/js/dist/src/locales/en-UK/common.json +1061 -0
  50. package/build/js/dist/src/locales/es-ES/common.json +995 -0
  51. package/build/js/dist/src/locales/fr-FR/common.json +995 -0
  52. package/build/js/dist/src/locales/ja-JP/common.json +980 -0
  53. package/build/js/dist/src/locales/lt-LT/common.json +1025 -0
  54. package/build/js/dist/src/locales/nl-NL/common.json +995 -0
  55. package/build/js/dist/src/locales/pl-PL/common.json +1025 -0
  56. package/build/js/dist/src/locales/sv-SE/common.json +995 -0
  57. package/package.json +18 -1
  58. package/src/img/controls/attention.svg +1 -0
  59. package/src/locales/en-UK/common.json +80 -16
  60. package/src/react-extension/ApiApp.js +17 -5
  61. package/src/react-extension/ApiFeedback.entry.js +24 -0
  62. package/src/react-extension/ExtApp.js +12 -5
  63. package/src/react-extension/ExtAuthenticationLogin.js +17 -15
  64. package/src/react-extension/ExtAuthenticationLogin.test.stories.js +59 -0
  65. package/src/react-extension/ExtBootstrapApp.js +1 -0
  66. package/src/react-extension/components/Administration/AdministrationWorkspace.js +24 -0
  67. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +3 -3
  68. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +13 -1
  69. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +7 -0
  70. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.js +101 -0
  71. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.data.js +23 -0
  72. package/src/react-extension/components/Administration/ConfirmDeleteSsoSettingsDialog/ConfirmDeleteSsoSettingsDialog.test.stories.js +27 -0
  73. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +1 -1
  74. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +78 -2
  75. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +3 -1
  76. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +60 -0
  77. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +23 -4
  78. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationInternationalisationActions/DisplayAdministrationInternationalisationActions.js +125 -0
  79. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationMfaActions/DisplayAdministrationMfaActions.js +131 -0
  80. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSelfRegistrationActions/DisplayAdministrationSelfRegistrationActions.js +103 -0
  81. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSsoActions/DisplayAdministrationSsoActions.js +91 -0
  82. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationSubscriptionActions/DisplayAdministrationSubscriptionActions.js +85 -0
  83. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserDirectoryActions/DisplayAdministrationUserDirectoryActions.js +228 -0
  84. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +4 -0
  85. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  86. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +3 -3
  87. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.data.js +14 -0
  88. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.page.js +0 -17
  89. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.js +18 -115
  90. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.data.js +11 -13
  91. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.js +38 -43
  92. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.page.js +47 -10
  93. package/src/react-extension/components/Administration/DisplayInternationalizationAdministration/DisplayInternationalizationAdministration.test.stories.js +10 -43
  94. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +82 -367
  95. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.data.js +128 -42
  96. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js +75 -121
  97. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +46 -16
  98. package/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.stories.js +18 -14
  99. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.js +103 -0
  100. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.js +53 -0
  101. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.page.js +81 -0
  102. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmDeletionSelfRegistrationSettings/ConfirmDeletionSelfRegistrationSettings.test.stories.js +34 -0
  103. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.js +125 -0
  104. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.data.js +63 -0
  105. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.js +54 -0
  106. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.page.js +88 -0
  107. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/ConfirmSaveSelfRegistrationSettings/ConfirmSaveSelfRegistrationSettings.test.stories.js +35 -0
  108. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.js +381 -0
  109. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.data.js +69 -0
  110. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.js +332 -0
  111. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.page.js +247 -0
  112. package/src/react-extension/components/Administration/DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration.test.stories.js +72 -0
  113. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.js +19 -19
  114. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.data.js +1717 -1729
  115. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.js +11 -3
  116. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.page.js +4 -1
  117. package/src/react-extension/components/Administration/DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
  118. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.js +41 -140
  119. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.data.js +15 -3
  120. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.js +22 -49
  121. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.page.js +19 -11
  122. package/src/react-extension/components/Administration/DisplaySubscriptionKey/DisplaySubscriptionKey.test.stories.js +9 -3
  123. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.js +5 -6
  124. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.data.js +1717 -1728
  125. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.js +11 -3
  126. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.page.js +4 -1
  127. package/src/react-extension/components/Administration/DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration.test.stories.js +11 -1784
  128. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.js +362 -835
  129. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data.js +427 -418
  130. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.js +134 -175
  131. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.page.js +108 -11
  132. package/src/react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.stories.js +17 -25
  133. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +4 -2
  134. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +3 -3
  135. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +1 -1
  136. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.js +32 -7
  137. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.data.js +0 -3
  138. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.js +145 -1
  139. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.page.js +52 -1
  140. package/src/react-extension/components/Administration/ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.test.stories.js +15 -0
  141. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.js +340 -0
  142. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.data.js +56 -0
  143. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.js +223 -0
  144. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.page.js +235 -0
  145. package/src/react-extension/components/Administration/ManageSsoSettings/ManageSsoSettings.test.stories.js +55 -0
  146. package/src/react-extension/components/Administration/ManageSsoSettings/SsoProviders.data.js +34 -0
  147. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +12 -3
  148. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +27 -0
  149. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +8 -0
  150. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.js +197 -0
  151. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.data.js +37 -0
  152. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.js +187 -0
  153. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.page.js +120 -0
  154. package/src/react-extension/components/Administration/TestSsoSettingsDialog/TestSsoSettingsDialog.test.stories.js +31 -0
  155. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +9 -5
  156. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +4 -0
  157. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +11 -42
  158. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +1 -0
  159. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +9 -5
  160. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +4 -0
  161. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +16 -2
  162. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +17 -1
  163. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +159 -61
  164. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +14 -11
  165. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +79 -0
  166. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +16 -0
  167. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +2 -0
  168. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +4 -0
  169. package/src/react-extension/components/Common/Error/ApiError/ApiError.js +119 -0
  170. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.js +43 -0
  171. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.page.js +108 -0
  172. package/src/react-extension/components/Common/Error/ApiError/ApiError.test.stories.js +39 -0
  173. package/src/react-extension/components/Common/Inputs/Autocomplete/Autocomplete.test.js +12 -0
  174. package/src/react-extension/components/Common/Inputs/Autocomplete/AutocompleteItem.js +2 -2
  175. package/src/react-extension/components/Common/Legacy/HandleLegacyAppjs.js +1 -1
  176. package/src/react-extension/components/Common/Navigation/Header/Logo.js +13 -1
  177. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +103 -30
  178. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +44 -10
  179. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.page.js +35 -7
  180. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.js +3 -3
  181. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesListContextualMenu.js +6 -5
  182. package/src/react-extension/components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspaceMenu.js +5 -4
  183. package/src/react-extension/components/Resource/EditResource/EditResource.js +95 -23
  184. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +45 -13
  185. package/src/react-extension/components/Resource/EditResource/EditResource.test.page.js +35 -2
  186. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetails.js +2 -1
  187. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.js +3 -2
  188. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +23 -2
  189. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +8 -0
  190. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.page.js +26 -2
  191. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +22 -1
  192. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +8 -0
  193. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.page.js +25 -2
  194. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetails.js +2 -1
  195. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.js +2 -1
  196. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +14 -1
  197. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.js +8 -0
  198. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.page.js +12 -0
  199. package/src/react-extension/components/User/CreateUser/CreateUser.js +42 -3
  200. package/src/react-extension/components/User/CreateUser/CreateUser.test.js +16 -0
  201. package/src/react-extension/components/User/CreateUser/CreateUser.test.page.js +26 -0
  202. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +2 -1
  203. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +5 -5
  204. package/src/react-extension/components/User/EditUser/EditUser.js +29 -2
  205. package/src/react-extension/components/User/EditUser/EditUser.test.js +12 -0
  206. package/src/react-extension/components/User/EditUser/EditUser.test.page.js +26 -0
  207. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +2 -1
  208. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1332 -1331
  209. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +2 -1
  210. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +19 -1
  211. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.js +9 -0
  212. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.page.js +12 -0
  213. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.js +2 -1
  214. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +16 -1
  215. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +8 -0
  216. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.page.js +26 -1
  217. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  218. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +6 -4
  219. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.data.js +4 -1
  220. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +21 -11
  221. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.page.js +10 -1
  222. package/src/react-extension/contexts/AdminSmtpSettingsContext.js +2 -0
  223. package/src/react-extension/contexts/AdminSmtpSettingsContext.test.data.js +13 -0
  224. package/src/react-extension/contexts/AdminSmtpSettingsContext.test.js +3 -1
  225. package/src/react-extension/contexts/AdminSsoContext.js +558 -0
  226. package/src/react-extension/contexts/AdminSsoContext.test.data.js +51 -0
  227. package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.js +194 -0
  228. package/src/react-extension/contexts/Administration/AdministrationInternationalizationContext/AdministrationInternationalizationContext.test.js +111 -0
  229. package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.js +265 -0
  230. package/src/react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext.test.js +178 -0
  231. package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.js +453 -0
  232. package/src/react-extension/contexts/Administration/AdministrationSelfRegistration/AdministrationSelfRegistrationContext.test.js +218 -0
  233. package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.js +168 -0
  234. package/src/react-extension/contexts/Administration/AdministrationSubscription/AdministrationSubscription.test.js +73 -0
  235. package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.js +353 -0
  236. package/src/react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext.test.js +220 -0
  237. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +17 -178
  238. package/src/react-extension/contexts/AdministrationWorkspaceContext.test.js +0 -26
  239. package/src/react-extension/contexts/ApiAppContext.test.data.js +4 -2
  240. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +54 -4
  241. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +10 -1
  242. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +92 -14
  243. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +1 -0
  244. package/src/react-extension/contexts/NavigationContext.js +34 -0
  245. package/src/react-extension/contexts/SsoContext.js +151 -0
  246. package/src/react-extension/contexts/SsoContext.test.data.js +36 -0
  247. package/src/react-extension/contexts/SsoContext.test.js +104 -0
  248. package/src/react-extension/lib/Domain/DomainUtil.js +70 -0
  249. package/src/react-extension/lib/Domain/DomainUtil.test.js +129 -0
  250. package/src/react-extension/lib/Domain/Domains.js +6113 -0
  251. package/src/react-extension/lib/Error/InputValidator.js +24 -0
  252. package/src/react-extension/lib/Map/DynamicRef.js +49 -0
  253. package/src/react-extension/lib/Map/DynamicRef.test.js +56 -0
  254. package/src/react-extension/lib/Map/MapObject.js +48 -0
  255. package/src/react-extension/lib/Map/MapObject.test.js +43 -0
  256. package/src/react-quickaccess/ExtQuickAccess.js +7 -4
  257. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.js +3 -1
  258. package/src/react-quickaccess/components/GeneratePasswordPage/GeneratePasswordPage.test.data.js +4 -0
  259. package/src/react-quickaccess/components/LoginPage/LoginPage.js +115 -4
  260. package/src/react-quickaccess/components/LoginPage/LoginPage.test.data.js +10 -0
  261. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +30 -3
  262. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +33 -1
  263. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +25 -0
  264. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.js +60 -0
  265. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.page.js +60 -0
  266. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +33 -1
  267. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +36 -7
  268. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.js +3 -2
  269. package/src/react-quickaccess/contexts/SsoContext.js +150 -0
  270. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +5 -0
  271. package/src/shared/constants/inputs.const.js +30 -0
  272. package/src/shared/lib/Browser/clipBoard.js +45 -0
  273. package/src/shared/lib/Browser/clipBoard.test.js +59 -0
  274. package/src/shared/models/Mfa/Duo.js +36 -0
  275. package/src/shared/models/Mfa/Duo.test.js +59 -0
  276. package/src/shared/models/Mfa/MfaDTO.js +51 -0
  277. package/src/shared/models/Mfa/MfaDTO.test.js +48 -0
  278. package/src/shared/models/Mfa/MfaEnumeration.js +17 -0
  279. package/src/shared/models/Mfa/MfaModel.js +48 -0
  280. package/src/shared/models/Mfa/MfaModel.test.js +37 -0
  281. package/src/shared/models/Mfa/Yubikey.js +35 -0
  282. package/src/shared/models/Mfa/Yubikey.test.js +47 -0
  283. package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.js +55 -0
  284. package/src/shared/models/selfRegistration/SelfRegistrationDomainsViewModel.test.js +37 -0
  285. package/src/shared/models/selfRegistration/SelfRegistrationDto.js +42 -0
  286. package/src/shared/models/selfRegistration/SelfRegistrationDto.test.js +48 -0
  287. package/src/shared/models/selfRegistration/SelfRegistrationEnumeration.js +17 -0
  288. package/src/shared/models/subscription/SubscriptionDto.js +34 -0
  289. package/src/shared/models/subscription/SubscriptionDto.test.js +31 -0
  290. package/src/shared/models/subscription/SubscriptionModel.js +33 -0
  291. package/src/shared/models/subscription/SubscriptionModel.test.js +48 -0
  292. package/src/shared/models/user/UserModel.js +37 -0
  293. package/src/shared/models/userDirectory/UserDirectoryDTO.js +57 -0
  294. package/src/shared/models/userDirectory/UserDirectoryDTO.test.js +40 -0
  295. package/src/shared/models/userDirectory/UserDirectoryEnum.js +22 -0
  296. package/src/shared/models/userDirectory/UserDirectoryModel.js +64 -0
  297. package/src/shared/models/userDirectory/UserDirectoryModel.test.js +37 -0
  298. package/src/shared/services/actions/subscription/SubscriptionActionService.js +69 -0
  299. package/src/shared/services/actions/subscription/SubscriptionActionService.test.js +73 -0
  300. package/src/shared/services/api/Internationalisation/InternationalisationService.js +46 -0
  301. package/src/shared/services/api/Mfa/MfaService.js +54 -0
  302. package/src/shared/services/{accountRecovery → api/accountRecovery}/ApiAppAccountRecoveryUserService.js +2 -2
  303. package/src/shared/services/{accountRecovery → api/accountRecovery}/ExtAppAccountRecoveryUserService.js +0 -0
  304. package/src/shared/services/api/secrets/pownedService.js +64 -0
  305. package/src/shared/services/api/secrets/pownedService.test.js +63 -0
  306. package/src/shared/services/api/selfRegistration/selfRegistrationService.js +64 -0
  307. package/src/shared/services/api/user/UserService.js +45 -0
  308. package/src/shared/services/api/userDirectory/UserDirectoryService.js +108 -0
  309. package/src/shared/services/forms/Mfa/MfaFormService.js +195 -0
  310. package/src/shared/services/forms/Mfa/MfaFormService.test.js +341 -0
  311. package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.js +92 -0
  312. package/src/shared/services/forms/selfRegistration/SelfRegistrationFormService.test.js +101 -0
  313. package/src/shared/services/forms/userDirectory/UserDirectoryFormService.js +118 -0
  314. package/src/shared/services/forms/userDirectory/UserDirectoryFormService.test.js +128 -0
  315. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.js +0 -205
  316. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.data.js +0 -37
  317. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.js +0 -197
  318. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationWorkspaceActions.test.page.js +0 -133
@@ -0,0 +1,128 @@
1
+ /**
2
+ *import { userDirectoryContext } from '../../../../react-extension/contexts/Administration/AdministrationMfa/AdministrationMfaContext';
3
+ * Passbolt ~ Open source password manager for teams
4
+ * Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
5
+ *
6
+ * Licensed under GNU Affero General Public License version 3 of the or any later version.
7
+ * For full copyright and license information, please see the LICENSE.txt
8
+ * Redistributions of files must retain the above copyright notice.
9
+ *
10
+ * @copyright Copyright (c) 2022 Passbolt SA (https://www.passbolt.com)
11
+ * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
12
+ * @link https://www.passbolt.com Passbolt(tm)
13
+ * @since 3.8.0
14
+ */
15
+
16
+ import {defaultProps} from "../../../../react-extension/components/Administration/DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration.test.data";
17
+ import {enableFetchMocks} from 'jest-fetch-mock';
18
+ import {AdminUserDirectoryContextProvider} from "../../../../react-extension/contexts/Administration/AdministrationUserDirectory/AdministrationUserDirectoryContext";
19
+ import UserDirectoryFormService from '../userDirectory/UserDirectoryFormService';
20
+
21
+ beforeEach(() => {
22
+ jest.resetModules();
23
+ });
24
+
25
+ describe("UserDirectoryFormService", () => {
26
+ let userDirectoryContext, // The userDirectoryContext to test
27
+ userDirectoryFormService;
28
+ const translation = message => message;
29
+ const props = defaultProps(); // The props to pass
30
+
31
+ beforeEach(() => {
32
+ jest.resetAllMocks();
33
+ userDirectoryContext = new AdminUserDirectoryContextProvider(props);
34
+ const setStateMock = state => userDirectoryContext.state = Object.assign(userDirectoryContext.state, state);
35
+ jest.spyOn(userDirectoryContext, "setState").mockImplementation(setStateMock);
36
+ UserDirectoryFormService.killInstance();
37
+ userDirectoryFormService = UserDirectoryFormService.getInstance(userDirectoryContext, translation);
38
+ enableFetchMocks();
39
+ });
40
+
41
+ describe("UserDirectoryFormService::getInstance", () => {
42
+ it("should be a singleton", () => {
43
+ expect.assertions(1);
44
+ expect(userDirectoryFormService).toBeDefined();
45
+ });
46
+
47
+ it("should not create a new instance -", () => {
48
+ const newInstance = UserDirectoryFormService.getInstance();
49
+ expect.assertions(1);
50
+ expect(userDirectoryFormService).toEqual(newInstance);
51
+ });
52
+ });
53
+
54
+
55
+ describe("UserDirectoryFormService::killInstance", () => {
56
+ it("should kill the instance and create a new one", () => {
57
+ UserDirectoryFormService.killInstance();
58
+ userDirectoryFormService = UserDirectoryFormService.getInstance(null, null);
59
+ expect.assertions(1);
60
+ expect(userDirectoryFormService).toEqual({"context": null, "translate": null});
61
+ });
62
+ });
63
+
64
+ describe("UserDirectoryFormService::validateHostInput", () => {
65
+ it("should return required message", () => {
66
+ userDirectoryContext.setSettings("host", "");
67
+ const requiredMessage = {"hostError": "A host is required."};
68
+ const result = userDirectoryFormService.validateHostInput();
69
+ expect.assertions(2);
70
+ expect(result).toEqual(requiredMessage);
71
+ expect(userDirectoryContext.getErrors().hostError).toEqual(requiredMessage.hostError);
72
+ });
73
+ it("should not return message", () => {
74
+ userDirectoryContext.setSettings("host", "192.0.0.0");
75
+ const result = userDirectoryFormService.validateHostInput();
76
+ expect.assertions(2);
77
+ expect(result.hostError).toEqual(null);
78
+ expect(userDirectoryContext.getErrors().hostError).toEqual(null);
79
+ });
80
+ });
81
+
82
+ describe("UserDirectoryFormService::validatePortInput", () => {
83
+ it("should return required message", () => {
84
+ userDirectoryContext.setSettings("port", "");
85
+ const requiredMessage = {"portError": "A port is required."};
86
+ const result = userDirectoryFormService.validatePortInput();
87
+ expect.assertions(2);
88
+ expect(result).toEqual(requiredMessage);
89
+ expect(userDirectoryContext.getErrors().portError).toEqual(requiredMessage.portError);
90
+ });
91
+ it("should return regex message", () => {
92
+ //Only numbers are allowed
93
+ userDirectoryContext.setSettings("port", "ABC");
94
+ const regExMessage = {"portError": "Only numeric characters allowed."};
95
+ const result = userDirectoryFormService.validatePortInput();
96
+ expect.assertions(2);
97
+ expect(result).toEqual(regExMessage);
98
+ expect(userDirectoryContext.getErrors().portError).toEqual(regExMessage.portError);
99
+ });
100
+ it("should not return message", () => {
101
+ userDirectoryContext.setSettings("port", "389");
102
+ const result = userDirectoryFormService.validatePortInput();
103
+ expect.assertions(2);
104
+ expect(result.portError).toEqual(null);
105
+ expect(userDirectoryContext.getErrors().portError).toEqual(null);
106
+ });
107
+ });
108
+
109
+ describe("UserDirectoryFormService::validateDomainInput", () => {
110
+ it("should return required message", () => {
111
+ userDirectoryContext.setSettings("domain", "");
112
+ const requiredMessage = {"domainError": "A domain name is required."};
113
+ const result = userDirectoryFormService.validateDomainInput();
114
+ expect.assertions(2);
115
+ expect(result).toEqual(requiredMessage);
116
+ expect(userDirectoryContext.getErrors().domainError).toEqual(requiredMessage.domainError);
117
+ });
118
+ it("should not return message", () => {
119
+ userDirectoryContext.setSettings("domain", "passbolt.com");
120
+ const result = userDirectoryFormService.validateDomainInput();
121
+ expect.assertions(2);
122
+ expect(result.domainError).toEqual(null);
123
+ expect(userDirectoryContext.getErrors().domainError).toEqual(null);
124
+ });
125
+ });
126
+ });
127
+
128
+
@@ -1,205 +0,0 @@
1
- /**
2
- * Passbolt ~ Open source password manager for teams
3
- * Copyright (c) Passbolt SA (https://www.passbolt.com)
4
- *
5
- * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
- * For full copyright and license information, please see the LICENSE.txt
7
- * Redistributions of files must retain the above copyright notice.
8
- *
9
- * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com)
10
- * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
- * @link https://www.passbolt.com Passbolt(tm)
12
- * @since 2.13.0
13
- */
14
-
15
- import React from "react";
16
- import PropTypes from "prop-types";
17
- import Icon from "../../../../shared/components/Icons/Icon";
18
- import {
19
- AdministrationWorkspaceMenuTypes,
20
- withAdministrationWorkspace
21
- } from "../../../contexts/AdministrationWorkspaceContext";
22
- import DisplaySimulateSynchronizeUserDirectoryAdministration
23
- from "../DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration";
24
- import {withDialog} from "../../../contexts/DialogContext";
25
- import DisplaySynchronizeUserDirectoryAdministration
26
- from "../DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration";
27
- import {Trans, withTranslation} from "react-i18next";
28
-
29
- /**
30
- * This component is a container of multiple actions applicable on setting
31
- */
32
- class DisplayAdministrationWorkspaceActions extends React.Component {
33
- /**
34
- * Constructor
35
- * @param {Object} props
36
- */
37
- constructor(props) {
38
- super(props);
39
- this.bindCallbacks();
40
- }
41
-
42
- /**
43
- * Bind callbacks methods
44
- */
45
- bindCallbacks() {
46
- this.handleSaveClick = this.handleSaveClick.bind(this);
47
- this.handleTestClick = this.handleTestClick.bind(this);
48
- this.handleSimulateSynchronizeClick = this.handleSimulateSynchronizeClick.bind(this);
49
- this.handleSynchronizeClick = this.handleSynchronizeClick.bind(this);
50
- this.handleEditSubscriptionClick = this.handleEditSubscriptionClick.bind(this);
51
- }
52
-
53
- /**
54
- * Whenever the component has updated in terms of props or state
55
- * @param prevProps
56
- */
57
- async componentDidUpdate(prevProps) {
58
- await this.handleMustSynchronize(prevProps.administrationWorkspaceContext.must.synchronize);
59
- }
60
-
61
- /**
62
- * Handle must synchronize settings
63
- */
64
- handleMustSynchronize(previousMustSynchronizeSettings) {
65
- const hasMustSynchronizeChanged = this.props.administrationWorkspaceContext.must.synchronize !== previousMustSynchronizeSettings;
66
- if (hasMustSynchronizeChanged && this.props.administrationWorkspaceContext.must.synchronize) {
67
- this.handleSynchronizeClick();
68
- this.props.administrationWorkspaceContext.onResetActionsSettings();
69
- }
70
- }
71
-
72
- /**
73
- * Handle save settings
74
- */
75
- handleSaveClick() {
76
- this.props.administrationWorkspaceContext.onMustSaveSettings();
77
- }
78
-
79
- /**
80
- * Handle test settings
81
- */
82
- handleTestClick() {
83
- this.props.administrationWorkspaceContext.onMustTestSettings();
84
- }
85
-
86
- /**
87
- * Handle simulate synchronize settings
88
- */
89
- handleSimulateSynchronizeClick() {
90
- this.props.dialogContext.open(DisplaySimulateSynchronizeUserDirectoryAdministration);
91
- }
92
-
93
- /**
94
- * Handle synchronize settings
95
- */
96
- handleSynchronizeClick() {
97
- this.props.dialogContext.open(DisplaySynchronizeUserDirectoryAdministration);
98
- }
99
-
100
- /**
101
- * Handle edit subscription key
102
- */
103
- handleEditSubscriptionClick() {
104
- this.props.administrationWorkspaceContext.onMustEditSubscriptionKey();
105
- }
106
-
107
- /**
108
- * Is save button enable
109
- */
110
- isSaveEnabled() {
111
- return this.props.administrationWorkspaceContext.can.save;
112
- }
113
-
114
- /**
115
- * Is test button enable
116
- */
117
- isTestEnabled() {
118
- return this.props.administrationWorkspaceContext.can.test;
119
- }
120
-
121
- /**
122
- * Is save button enable
123
- */
124
- isSynchronizeEnabled() {
125
- return this.props.administrationWorkspaceContext.can.synchronize;
126
- }
127
-
128
- /**
129
- * If User Directory menu is selected
130
- * @returns {boolean}
131
- */
132
- isUserDirectorySelected() {
133
- return AdministrationWorkspaceMenuTypes.USER_DIRECTORY === this.props.administrationWorkspaceContext.selectedAdministration;
134
- }
135
-
136
- /**
137
- * If subscription menu is selected
138
- * @returns {boolean}
139
- */
140
- isSubscriptionSelected() {
141
- return AdministrationWorkspaceMenuTypes.SUBSCRIPTION === this.props.administrationWorkspaceContext.selectedAdministration;
142
- }
143
-
144
- /**
145
- * Render the component
146
- * @returns {JSX}
147
- */
148
- render() {
149
- return (
150
- <div className="col2_3 actions-wrapper">
151
- <div className="actions">
152
- {!this.isSubscriptionSelected() &&
153
- <div>
154
- <li>
155
- <a className={`button ${this.isSaveEnabled() ? "" : "disabled"}`} onClick={this.handleSaveClick}>
156
- <Icon name="save"/>
157
- <span><Trans>Save settings</Trans></span>
158
- </a>
159
- </li>
160
- {this.isUserDirectorySelected() &&
161
- <div>
162
- <li>
163
- <a className={`button ${this.isTestEnabled() ? "" : "disabled"}`} onClick={this.handleTestClick}>
164
- <Icon name="plug"/>
165
- <span><Trans>Test settings</Trans></span>
166
- </a>
167
- </li>
168
- <li>
169
- <a className={`button ${this.isSynchronizeEnabled() ? "" : "disabled"}`} onClick={this.handleSimulateSynchronizeClick}>
170
- <Icon name="magic-wand"/>
171
- <span><Trans>Simulate synchronize</Trans></span>
172
- </a>
173
- </li>
174
- <li>
175
- <a className={`button ${this.isSynchronizeEnabled() ? "" : "disabled"}`} onClick={this.handleSynchronizeClick}>
176
- <Icon name="refresh"/>
177
- <span><Trans>Synchronize</Trans></span>
178
- </a>
179
- </li>
180
- </div>
181
- }
182
- </div>
183
- }
184
- {this.isSubscriptionSelected() &&
185
- <div>
186
- <li>
187
- <a className="button" onClick={this.handleEditSubscriptionClick}>
188
- <Icon name="edit"/>
189
- <span><Trans>Update key</Trans></span>
190
- </a>
191
- </li>
192
- </div>
193
- }
194
- </div>
195
- </div>
196
- );
197
- }
198
- }
199
-
200
- DisplayAdministrationWorkspaceActions.propTypes = {
201
- administrationWorkspaceContext: PropTypes.object, // The administration workspace context
202
- dialogContext: PropTypes.any, // The dialog context
203
- };
204
-
205
- export default withDialog(withAdministrationWorkspace(withTranslation("common")(DisplayAdministrationWorkspaceActions)));
@@ -1,37 +0,0 @@
1
- /**
2
- * Returns the default app context for the unit test
3
- * @param appContext An existing app context
4
- * @returns {any}
5
- */
6
- export function defaultAppContext(appContext) {
7
- const defaultAppContext = {
8
- trustedDomain: "http://localhost:3000",
9
- };
10
- return Object.assign(defaultAppContext, appContext || {});
11
- }
12
-
13
- /**
14
- * Default props
15
- * @returns {{resource: {id: string, name: string}}}
16
- */
17
- export function defaultProps(selectedAdministration) {
18
- return {
19
- administrationWorkspaceContext: {
20
- selectedAdministration,
21
- can: {
22
- save: false,
23
- test: false,
24
- synchronize: false
25
- },
26
- must: {
27
- synchronize: false
28
- },
29
- onResetActionsSettings: jest.fn(),
30
- onMustSaveSettings: jest.fn(),
31
- onMustTestSettings: jest.fn(),
32
- },
33
- dialogContext: {
34
- open: jest.fn()
35
- }
36
- };
37
- }
@@ -1,197 +0,0 @@
1
- /**
2
- * Passbolt ~ Open source password manager for teams
3
- * Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
4
- *
5
- * Licensed under GNU Affero General Public License version 3 of the or any later version.
6
- * For full copyright and license information, please see the LICENSE.txt
7
- * Redistributions of files must retain the above copyright notice.
8
- *
9
- * @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
10
- * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
11
- * @link https://www.passbolt.com Passbolt(tm)
12
- * @since 2.11.0
13
- */
14
-
15
- /**
16
- * Unit tests on DisplayUserWorkspaceActions in regard of specifications
17
- */
18
-
19
-
20
- import DisplayUserWorkspaceActionsPage from "./DisplayAdministrationWorkspaceActions.test.page";
21
- import {AdministrationWorkspaceMenuTypes} from "../../../contexts/AdministrationWorkspaceContext";
22
- import {defaultAppContext, defaultProps} from "./DisplayAdministrationWorkspaceActions.test.data";
23
- import DisplaySimulateSynchronizeUserDirectoryAdministration
24
- from "../DisplaySimulateSynchronizeUserDirectoryAdministration/DisplaySimulateSynchronizeUserDirectoryAdministration";
25
- import DisplaySynchronizeUserDirectoryAdministration
26
- from "../DisplaySynchronizeUserDirectoryAdministration/DisplaySynchronizeUserDirectoryAdministration";
27
-
28
- beforeEach(() => {
29
- jest.resetModules();
30
- });
31
-
32
- describe("As AD I can see the administration menu", () => {
33
- /**
34
- * As AD I should see the breadcrumb
35
- * And I should be able to identify each item
36
- */
37
- let page; // The page to test against
38
- const context = defaultAppContext(); // The applicative context
39
-
40
- it('As AD I should see only the save button for the mfa', async() => {
41
- const props = defaultProps(AdministrationWorkspaceMenuTypes.MFA);
42
- page = new DisplayUserWorkspaceActionsPage(context, props);
43
- expect(page.exists()).toBeTruthy();
44
- expect(page.count).toBe(1);
45
- expect(Boolean(page.saveButton)).toBeTruthy();
46
- expect(Boolean(page.testButton)).toBeFalsy();
47
- expect(Boolean(page.simulateSynchronizeButton)).toBeFalsy();
48
- expect(Boolean(page.synchronizeButton)).toBeFalsy();
49
- });
50
-
51
- it('As AD I should see only the save button for the email notifications', async() => {
52
- const props = defaultProps(AdministrationWorkspaceMenuTypes.EMAIL_NOTIFICATION);
53
- page = new DisplayUserWorkspaceActionsPage(context, props);
54
- expect(page.exists()).toBeTruthy();
55
- expect(page.count).toBe(1);
56
- expect(Boolean(page.saveButton)).toBeTruthy();
57
- expect(Boolean(page.testButton)).toBeFalsy();
58
- expect(Boolean(page.simulateSynchronizeButton)).toBeFalsy();
59
- expect(Boolean(page.synchronizeButton)).toBeFalsy();
60
- });
61
-
62
- it('As AD I should see all buttons for the user directory', async() => {
63
- const props = defaultProps(AdministrationWorkspaceMenuTypes.USER_DIRECTORY);
64
- page = new DisplayUserWorkspaceActionsPage(context, props);
65
- expect(page.exists()).toBeTruthy();
66
- expect(page.count).toBe(4);
67
- expect(Boolean(page.saveButton)).toBeTruthy();
68
- expect(Boolean(page.testButton)).toBeTruthy();
69
- expect(Boolean(page.simulateSynchronizeButton)).toBeTruthy();
70
- expect(Boolean(page.synchronizeButton)).toBeTruthy();
71
- });
72
-
73
- it('As AD I should see all button disabled', async() => {
74
- const props = defaultProps(AdministrationWorkspaceMenuTypes.USER_DIRECTORY);
75
- page = new DisplayUserWorkspaceActionsPage(context, props);
76
- expect(page.saveButton.className).toBe('button disabled');
77
- expect(page.testButton.className).toBe('button disabled');
78
- expect(page.simulateSynchronizeButton.className).toBe('button disabled');
79
- expect(page.synchronizeButton.className).toBe('button disabled');
80
- });
81
-
82
- it('As AD I should see all button enabled', async() => {
83
- const props = {
84
- administrationWorkspaceContext: {
85
- selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
86
- can: {
87
- save: true,
88
- test: true,
89
- synchronize: true
90
- }
91
- }
92
- };
93
- page = new DisplayUserWorkspaceActionsPage(context, props);
94
- expect(page.saveButton.className).toBe('button ');
95
- expect(page.testButton.className).toBe('button ');
96
- expect(page.simulateSynchronizeButton.className).toBe('button ');
97
- expect(page.synchronizeButton.className).toBe('button ');
98
- });
99
-
100
- it('As AD I can save', async() => {
101
- const props = {
102
- administrationWorkspaceContext: {
103
- selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
104
- can: {
105
- save: true,
106
- test: false,
107
- synchronize: false
108
- },
109
- mustSynchronizeSettings: false,
110
- onMustSaveSettings: jest.fn(),
111
- },
112
- };
113
- page = new DisplayUserWorkspaceActionsPage(context, props);
114
- await page.save();
115
- expect(props.administrationWorkspaceContext.onMustSaveSettings).toHaveBeenCalled();
116
- });
117
-
118
- it('As AD I can test a user directory', async() => {
119
- const props = {
120
- administrationWorkspaceContext: {
121
- selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
122
- can: {
123
- save: true,
124
- test: true,
125
- synchronize: false
126
- },
127
- onMustTestSettings: jest.fn(),
128
- },
129
- dialogContext: {
130
- open: jest.fn()
131
- }
132
- };
133
- page = new DisplayUserWorkspaceActionsPage(context, props);
134
- await page.test();
135
- expect(props.administrationWorkspaceContext.onMustTestSettings).toHaveBeenCalled();
136
- });
137
-
138
- it('As AD I can simulate synchronize a user directory', async() => {
139
- const props = {
140
- administrationWorkspaceContext: {
141
- selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
142
- can: {
143
- save: true,
144
- test: true,
145
- synchronize: true
146
- },
147
- onMustTestSettings: jest.fn(),
148
- },
149
- dialogContext: {
150
- open: jest.fn()
151
- }
152
- };
153
- page = new DisplayUserWorkspaceActionsPage(context, props);
154
- await page.simulateSynchronize();
155
- expect(props.dialogContext.open).toHaveBeenCalledWith(DisplaySimulateSynchronizeUserDirectoryAdministration);
156
- });
157
-
158
- it('As AD I can synchronize a user directory', async() => {
159
- const props = {
160
- administrationWorkspaceContext: {
161
- selectedAdministration: AdministrationWorkspaceMenuTypes.USER_DIRECTORY,
162
- can: {
163
- save: true,
164
- test: true,
165
- synchronize: true
166
- },
167
- onMustTestSettings: jest.fn(),
168
- },
169
- dialogContext: {
170
- open: jest.fn()
171
- }
172
- };
173
- page = new DisplayUserWorkspaceActionsPage(context, props);
174
- await page.synchronize();
175
- expect(props.dialogContext.open).toHaveBeenCalledWith(DisplaySynchronizeUserDirectoryAdministration);
176
- });
177
-
178
- it('As AD I can edit a subscription key', async() => {
179
- const props = {
180
- administrationWorkspaceContext: {
181
- selectedAdministration: AdministrationWorkspaceMenuTypes.SUBSCRIPTION,
182
- can: {
183
- save: false,
184
- test: false,
185
- synchronize: false
186
- },
187
- onMustEditSubscriptionKey: jest.fn(),
188
- },
189
- dialogContext: {
190
- open: jest.fn()
191
- }
192
- };
193
- page = new DisplayUserWorkspaceActionsPage(context, props);
194
- await page.editSubscriptionKey();
195
- expect(props.administrationWorkspaceContext.onMustEditSubscriptionKey).toHaveBeenCalled();
196
- });
197
- });
@@ -1,133 +0,0 @@
1
-
2
- /**
3
- * Passbolt ~ Open source password manager for teams
4
- * Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
5
- *
6
- * Licensed under GNU Affero General Public License version 3 of the or any later version.
7
- * For full copyright and license information, please see the LICENSE.txt
8
- * Redistributions of files must retain the above copyright notice.
9
- *
10
- * @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com)
11
- * @license https://opensource.org/licenses/AGPL-3.0 AGPL License
12
- * @link https://www.passbolt.com Passbolt(tm)
13
- * @since 2.11.0
14
- */
15
- import {fireEvent, render, waitFor} from "@testing-library/react";
16
- import AppContext from "../../../contexts/AppContext";
17
- import React from "react";
18
- import DisplayUserWorkspaceActions from "./DisplayAdministrationWorkspaceActions";
19
- import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider";
20
-
21
- /**
22
- * The DisplayUserWorkspaceActions component represented as a page
23
- */
24
- export default class DisplayUserWorkspaceActionsPage {
25
- /**
26
- * Default constructor
27
- * @param appContext An app context
28
- * @param props Props to attach
29
- */
30
- constructor(appContext, props) {
31
- this._page = render(
32
- <MockTranslationProvider>
33
- <AppContext.Provider value={appContext}>
34
- <DisplayUserWorkspaceActions {...props}/>
35
- </AppContext.Provider>
36
- </MockTranslationProvider>
37
- );
38
- }
39
-
40
- /**
41
- * Returns the workspace action
42
- */
43
- get workspaceAction() {
44
- return this._page.container.querySelector('.actions');
45
- }
46
-
47
- /**
48
- * Returns the number of actions
49
- */
50
- get count() {
51
- return this._page.container.querySelectorAll('li').length;
52
- }
53
-
54
- /**
55
- * Returns the save button
56
- */
57
- get saveButton() {
58
- return this._page.container.querySelectorAll('li a')[0];
59
- }
60
-
61
- /**
62
- * Returns the test button
63
- */
64
- get testButton() {
65
- return this._page.container.querySelectorAll('li a')[1];
66
- }
67
-
68
- /**
69
- * Returns the save button
70
- */
71
- get simulateSynchronizeButton() {
72
- return this._page.container.querySelectorAll('li a')[2];
73
- }
74
-
75
- /**
76
- * Returns the save button
77
- */
78
- get synchronizeButton() {
79
- return this._page.container.querySelectorAll('li a')[3];
80
- }
81
-
82
- /**
83
- * Returns the edit subscription key button
84
- */
85
- get editSubscriptionKeyButton() {
86
- return this._page.container.querySelector('li a');
87
- }
88
-
89
- /**
90
- * Returns true if the page object exists in the container
91
- */
92
- exists() {
93
- return this.workspaceAction !== null;
94
- }
95
-
96
- /** Click on the element */
97
- async click(element) {
98
- const leftClick = {button: 0};
99
- fireEvent.click(element, leftClick);
100
- await waitFor(() => {
101
- });
102
- }
103
-
104
- /** Click on the save element */
105
- async save() {
106
- await this.click(this.saveButton);
107
- }
108
-
109
- /** Click on the test element */
110
- async test() {
111
- await this.click(this.testButton);
112
- }
113
-
114
- /** Click on the simulate synchronize element */
115
- async simulateSynchronize() {
116
- await this.click(this.simulateSynchronizeButton);
117
- }
118
-
119
- /** Click on the synchronize element */
120
- async synchronize() {
121
- await this.click(this.synchronizeButton);
122
- }
123
-
124
- /** Click on the edit subscription key element */
125
- async editSubscriptionKey() {
126
- await this.click(this.editSubscriptionKeyButton);
127
- }
128
- }
129
-
130
-
131
-
132
-
133
-