passbolt-styleguide 3.5.2 → 3.6.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 (495) hide show
  1. package/build/css/help.min.css +3 -3
  2. package/build/css/public.min.css +4 -4
  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 +4 -4
  6. package/build/css/themes/default/api_reports.min.css +4 -4
  7. package/build/css/themes/default/api_webinstaller.min.css +3 -3
  8. package/build/css/themes/default/ext_app.min.css +4 -4
  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 +4 -4
  16. package/build/css/themes/midgar/api_reports.min.css +4 -4
  17. package/build/css/themes/midgar/ext_app.min.css +4 -4
  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/js/dist/api-account-recovery.js +2 -0
  23. package/build/js/dist/api-account-recovery.js.LICENSE.txt +107 -0
  24. package/build/js/dist/api-app.js +1 -1
  25. package/build/js/dist/api-app.js.LICENSE.txt +73 -1
  26. package/build/js/dist/api-recover.js +1 -1
  27. package/build/js/dist/api-setup.js +1 -1
  28. package/build/js/dist/api-triage.js +1 -1
  29. package/build/js/dist/api-vendors.js +1 -1
  30. package/build/js/dist/api-vendors.js.LICENSE.txt +159 -15
  31. package/jest.config.json +13 -0
  32. package/package.json +26 -21
  33. package/src/locales/en-UK/common.json +140 -4
  34. package/src/react-extension/ApiAccountRecovery.entry.js +25 -0
  35. package/src/react-extension/ApiAccountRecovery.js +233 -0
  36. package/src/react-extension/ApiApp.js +50 -43
  37. package/src/react-extension/ExtApp.js +129 -105
  38. package/src/react-extension/ExtAuthenticationAccountRecovery.js +173 -0
  39. package/src/react-extension/ExtAuthenticationLogin.js +35 -33
  40. package/src/react-extension/ExtAuthenticationRecover.js +23 -35
  41. package/src/react-extension/ExtAuthenticationSetup.js +24 -46
  42. package/src/react-extension/ExtBootstrapAccountRecovery.js +75 -0
  43. package/src/react-extension/ExtBootstrapApp.js +4 -0
  44. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.js +114 -0
  45. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.data.js +27 -0
  46. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.js +72 -0
  47. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.page.js +74 -0
  48. package/src/react-extension/components/AccountRecovery/AccountRecoveryInviteUserSettingPreferenceDialog/AccountRecoveryInviteUserSettingPreferenceDialog.test.stories.js +51 -0
  49. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.js +80 -0
  50. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.data.js +60 -0
  51. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.js +110 -0
  52. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryStatusCheck/HandleAccountRecoveryStatusCheck.test.page.js +40 -0
  53. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.js +96 -0
  54. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.data.js +63 -0
  55. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.js +88 -0
  56. package/src/react-extension/components/AccountRecovery/HandleAccountRecoveryUserSettingsRoute/HandleAccountRecoveryUserSettingsRoute.test.page.js +37 -0
  57. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.js +214 -0
  58. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +49 -0
  59. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.js +98 -0
  60. package/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.page.js +37 -0
  61. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.js +316 -0
  62. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.data.js +55 -0
  63. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.js +132 -0
  64. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.page.js +70 -0
  65. package/src/react-extension/components/AccountRecovery/ManageAccountRecoveryUserSettings/ManageAccountRecoveryUserSettings.test.stories.js +104 -0
  66. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.js +286 -0
  67. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.data.js +51 -0
  68. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.js +77 -0
  69. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.page.js +119 -0
  70. package/src/react-extension/components/AccountRecovery/ReviewAccountRecoveryRequest/ReviewAccountRecoveryRequest.test.stories.js +36 -0
  71. package/src/react-extension/components/Administration/AdministrationWorkspace.js +15 -2
  72. package/src/react-extension/components/Administration/AdministrationWorkspace.test.data.js +5 -1
  73. package/src/react-extension/components/Administration/AdministrationWorkspace.test.js +45 -0
  74. package/src/react-extension/components/Administration/AdministrationWorkspace.test.page.js +23 -3
  75. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.js +254 -0
  76. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.data.js +153 -0
  77. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.js +109 -0
  78. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.page.js +174 -0
  79. package/src/react-extension/components/Administration/ConfirmSaveAccountRecoverySettings/ConfirmSaveAccountRecoverySettings.test.stories.js +43 -0
  80. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +36 -0
  81. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +2 -1
  82. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +9 -0
  83. package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +12 -0
  84. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.js +138 -0
  85. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.data.js +46 -0
  86. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.js +51 -0
  87. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationAccountRecoveryAction/DisplayAdministrationAccountRecoveryActions.test.page.js +93 -0
  88. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +2 -0
  89. package/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.test.js +9 -0
  90. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.js +105 -2
  91. package/src/react-extension/components/Administration/DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration.test.stories.js +104 -0
  92. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.js +2 -4
  93. package/src/react-extension/components/Administration/EditSubscriptionKey/EditSubscriptionKey.test.js +10 -3
  94. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.js +180 -0
  95. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.data.js +47 -0
  96. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.js +64 -0
  97. package/src/react-extension/components/Administration/HandleSaveAccountRecoveryOrganizationPolicyWorkflow/HandleSaveAccountRecoveryOrganizationPolicyWorkflow.test.page.js +35 -0
  98. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.js +435 -0
  99. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.data.js +186 -0
  100. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.js +100 -0
  101. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.page.js +159 -0
  102. package/src/react-extension/components/Administration/ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings.test.stories.js +64 -0
  103. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +535 -0
  104. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.data.js +31 -0
  105. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.js +155 -0
  106. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.page.js +124 -0
  107. package/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.test.stories.js +41 -0
  108. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.js +108 -0
  109. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.js +48 -0
  110. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.page.js +82 -0
  111. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/DownloadOrganizationKey.test.stories.js +51 -0
  112. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.js +471 -0
  113. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/GenerateOrganizationKey.test.js +181 -0
  114. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.js +289 -0
  115. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/ImportOrganizationKey.test.js +188 -0
  116. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.js +121 -0
  117. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.page.js +262 -0
  118. package/src/react-extension/components/Administration/SelectAccountRecoveryOrganizationKey/SelectAccountRecoveryOrganizationKey.test.stories.js +50 -0
  119. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.js +73 -0
  120. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.data.js +41 -0
  121. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.js +48 -0
  122. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.page.js +64 -0
  123. package/src/react-extension/components/Authentication/AskForAuthenticationHelpCredentialLost/AskForAuthenticationHelpCredentialLost.test.stories.js +40 -0
  124. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.js +36 -0
  125. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.js +37 -0
  126. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.page.js +55 -0
  127. package/src/react-extension/components/Authentication/CheckAccountRecoveryEmail/CheckAccountRecoveryEmail.test.stories.js +39 -0
  128. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.js +3 -3
  129. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailBox.test.page.js +0 -1
  130. package/src/react-extension/components/Authentication/CheckMailBox/CheckMailbox.test.stories.js +21 -15
  131. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.js +33 -23
  132. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.data.js +18 -30
  133. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.js +110 -47
  134. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.page.js +33 -10
  135. package/src/react-extension/components/Authentication/CheckPassphrase/CheckPassphrase.test.stories.js +36 -19
  136. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.js +191 -0
  137. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.data.js +90 -0
  138. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.js +92 -0
  139. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.page.js +109 -0
  140. package/src/react-extension/components/Authentication/ChooseAccountRecoveryPreference/ChooseAccountRecoveryPreference.test.stories.js +60 -0
  141. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.js +5 -29
  142. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.data.js +17 -18
  143. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.js +48 -25
  144. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.page.js +16 -9
  145. package/src/react-extension/components/Authentication/ChooseSecurityToken/ChooseSecurityToken.test.stories.js +20 -16
  146. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.js +40 -36
  147. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +18 -14
  148. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +189 -103
  149. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +50 -11
  150. package/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.stories.js +31 -19
  151. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.js +0 -9
  152. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.js +1 -1
  153. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/{DisplayBrowserNotSupportedPage.js → DisplayBrowserNotSupported.test.page.js} +2 -5
  154. package/src/react-extension/components/Authentication/DisplayBrowserNotSupported/DisplayBrowserNotSupported.test.stories.js +21 -15
  155. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.js +0 -9
  156. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  157. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +34 -0
  158. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +49 -0
  159. package/src/react-extension/components/Authentication/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +23 -15
  160. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.js +0 -9
  161. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.js +1 -1
  162. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/{DisplayRequireInvitationErrorPage.js → DisplayRequireInvitationError.test.page.js} +0 -3
  163. package/src/react-extension/components/Authentication/DisplayRequireInvitationError/DisplayRequireInvitationError.test.stories.js +21 -15
  164. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.js +91 -10
  165. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.data.js +56 -0
  166. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.js +46 -0
  167. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.page.js +79 -0
  168. package/src/react-extension/components/Authentication/DisplayUnexpectedError/DisplayUnexpectedError.test.stories.js +48 -15
  169. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.js +12 -53
  170. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.data.js +16 -16
  171. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.js +10 -13
  172. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.page.js +16 -6
  173. package/src/react-extension/components/Authentication/DownloadRecoveryKit/DownloadRecoveryKit.test.stories.js +21 -15
  174. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.data.js +17 -3
  175. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.page.js +0 -1
  176. package/src/react-extension/components/Authentication/EnterNameForm/EnterNameForm.test.stories.js +21 -15
  177. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.data.js +28 -11
  178. package/src/react-extension/components/Authentication/EnterUsernameForm/EnterUsernameForm.test.stories.js +21 -16
  179. package/src/react-extension/components/Authentication/HandleSessionExpired/HandleSessionExpired.test.data.js +17 -3
  180. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.js +56 -19
  181. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.data.js +25 -17
  182. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.js +204 -58
  183. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.page.js +43 -7
  184. package/src/react-extension/components/Authentication/ImportGpgKey/ImportGpgKey.test.stories.js +31 -19
  185. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.js +0 -9
  186. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.data.js +17 -3
  187. package/src/react-extension/components/Authentication/InstallExtension/InstallExtension.test.stories.js +62 -18
  188. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.js → IntroduceExtension/IntroduceExtension.js} +8 -19
  189. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.data.js +24 -0
  190. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.js → IntroduceExtension/IntroduceExtension.test.js} +16 -6
  191. package/src/react-extension/components/Authentication/{IntroduceSetupExtension/IntroduceSetupExtension.test.page.js → IntroduceExtension/IntroduceExtension.test.page.js} +3 -4
  192. package/src/react-extension/components/Authentication/IntroduceExtension/IntroduceExtension.test.stories.js +39 -0
  193. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.data.js +27 -9
  194. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.js +2 -8
  195. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.page.js +4 -9
  196. package/src/react-extension/components/Authentication/NotifyExpiredSession/NotifyExpiredSession.test.stories.js +23 -14
  197. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.js +70 -0
  198. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.data.js +25 -0
  199. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.js +49 -0
  200. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.page.js +74 -0
  201. package/src/react-extension/components/Authentication/RequestAccountRecovery/RequestAccountRecovery.test.stories.js +40 -0
  202. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.js +41 -0
  203. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.data.js +36 -0
  204. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.js +35 -0
  205. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.page.js +50 -0
  206. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayExpiredTokenError/DisplayExpiredTokenError.test.stories.js +41 -0
  207. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.js +42 -0
  208. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.js +43 -0
  209. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.page.js +62 -0
  210. package/src/react-extension/components/AuthenticationAccountRecovery/DisplayRestartFromScratchError/DisplayRestartFromScratchError.test.stories.js +40 -0
  211. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/InsertAccountRecoveryIframe.js +64 -0
  212. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateAccountRecovery/OrchestrateAccountRecovery.js +84 -0
  213. package/src/react-extension/components/AuthenticationAccountRecovery/OrchestrateApiAccountRecovery/OrchestrateApiAccountRecovery.js +66 -0
  214. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.js +8 -22
  215. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.data.js +25 -0
  216. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.js +52 -0
  217. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.page.js +82 -0
  218. package/src/react-extension/components/AuthenticationLogin/AcceptLoginServerKeyChange/AcceptLoginServerKeyChange.test.stories.js +23 -16
  219. package/src/react-extension/components/AuthenticationLogin/Login/Login.js +156 -145
  220. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.data.js +67 -0
  221. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.js +157 -0
  222. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.page.js +155 -0
  223. package/src/react-extension/components/AuthenticationLogin/Login/Login.test.stories.js +32 -27
  224. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxFooter.js +48 -0
  225. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLoginBoxMain.js +90 -0
  226. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.js +12 -3
  227. package/src/react-extension/components/AuthenticationPassphrase/InputPassphrase/InputPassphrase.test.stories.js +1 -1
  228. package/src/react-extension/components/AuthenticationRecover/RecoverAuthentication/RecoverAuthentication.js +90 -82
  229. package/src/react-extension/components/AuthenticationSetup/SetupAuthentication/SetupAuthentication.js +80 -87
  230. package/src/react-extension/components/Common/ActionFeedback/DisplayActionFeedbacks.test.js +8 -3
  231. package/src/react-extension/components/Common/Avatar/UserAvatar.js +6 -1
  232. package/src/react-extension/components/Common/Avatar/UserAvatar.test.data.js +27 -0
  233. package/src/react-extension/components/Common/Avatar/UserAvatar.test.stories.js +47 -0
  234. package/src/react-extension/components/Common/Dialog/ManageDialogs/ManageDialogs.js +7 -2
  235. package/src/react-extension/components/Common/Error/HandleErrorEvents/HandleErrorEvents.js +2 -3
  236. package/src/react-extension/components/Common/Error/NotifyError/NotifyError.js +78 -15
  237. package/src/react-extension/components/Common/Icons/Icon.js +7 -0
  238. package/src/react-extension/components/Common/Internationalisation/TranslationProvider.js +1 -0
  239. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.js +15 -2
  240. package/src/react-extension/components/Common/Loading/LoadingSpinner/LoadingSpinner.test.stories.js +49 -0
  241. package/src/react-extension/components/Common/Route/HandleApplicationFirstLoadRoute.js +77 -0
  242. package/src/react-extension/components/Common/Route/HandleRouteFallback.js +14 -46
  243. package/src/react-extension/components/Common/Tab/Tabs.js +3 -1
  244. package/src/react-extension/components/Common/Workflow/ManageWorkflows/ManageWorkflows.js +72 -0
  245. package/src/react-extension/components/InsertAppIframe.js +12 -6
  246. package/src/react-extension/components/Resource/CreateResource/CreateResource.js +2 -4
  247. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.data.js +2 -2
  248. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.js +17 -2
  249. package/src/react-extension/components/Resource/CreateResource/CreateResource.test.stories.js +19 -3
  250. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.js +2 -4
  251. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.js +20 -6
  252. package/src/react-extension/components/Resource/DeleteResource/DeleteResource.test.stories.js +12 -0
  253. package/src/react-extension/components/Resource/DisplayResourcesList/DisplayResourcesList.test.stories.js +107 -6
  254. package/src/react-extension/components/Resource/EditResource/EditResource.js +2 -4
  255. package/src/react-extension/components/Resource/EditResource/EditResource.test.data.js +2 -2
  256. package/src/react-extension/components/Resource/EditResource/EditResource.test.js +3 -0
  257. package/src/react-extension/components/Resource/EditResource/EditResource.test.stories.js +18 -4
  258. package/src/react-extension/components/Resource/ExportResources/ExportResources.js +5 -7
  259. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.js +9 -2
  260. package/src/react-extension/components/Resource/ExportResources/ExportResources.test.stories.js +4 -2
  261. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.js +5 -7
  262. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.js +8 -2
  263. package/src/react-extension/components/Resource/ExportResources/ExportResourcesCredentials.test.stories.js +4 -2
  264. package/src/react-extension/components/Resource/FilterResourcesByFolders/FilterResourcesByFolders.test.stories.js +24 -8
  265. package/src/react-extension/components/Resource/FilterResourcesByTags/FilterResourcesByTagsList.js +2 -4
  266. package/src/react-extension/components/Resource/ImportResources/ImportResources.js +2 -4
  267. package/src/react-extension/components/Resource/ImportResources/ImportResources.test.js +10 -2
  268. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.js +4 -6
  269. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.js +9 -2
  270. package/src/react-extension/components/Resource/ImportResources/ImportResourcesKeyUnlock.test.stories.js +9 -1
  271. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.js +4 -2
  272. package/src/react-extension/components/Resource/ImportResources/ImportResourcesResult.test.stories.js +19 -1
  273. package/src/react-extension/components/ResourceComment/AddResourceComment/AddResourceComment.test.stories.js +15 -3
  274. package/src/react-extension/components/ResourceComment/ConfirmResourceCommentDeletion/ConfirmResourceCommentDeletion.test.stories.js +8 -3
  275. package/src/react-extension/components/ResourceComment/DisplayResourceCommentList/DisplayResourceCommentList.test.stories.js +9 -8
  276. package/src/react-extension/components/ResourceDescription/EditResourceDescription/EditResourceDescription.test.stories.js +6 -3
  277. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsActivity.test.stories.js +1 -1
  278. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsDescription.test.stories.js +1 -1
  279. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.data.js +11 -0
  280. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsInformation.test.js +11 -4
  281. package/src/react-extension/components/ResourceDetails/DisplayResourceDetails/DisplayResourceDetailsTag.test.stories.js +11 -10
  282. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.js +2 -4
  283. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.js +16 -5
  284. package/src/react-extension/components/ResourceFolder/CreateResourceFolder/CreateResourceFolder.test.stories.js +13 -0
  285. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.js +8 -10
  286. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.js +12 -5
  287. package/src/react-extension/components/ResourceFolder/DefineResourceFolderMoveStrategy/DefineResourceFolderMoveStrategy.test.stories.js +4 -1
  288. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.js +2 -4
  289. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.js +2 -5
  290. package/src/react-extension/components/ResourceFolder/DeleteResourceFolder/DeleteResourceFolder.test.stories.js +6 -2
  291. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.js +2 -4
  292. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.js +15 -4
  293. package/src/react-extension/components/ResourceFolder/RenameResourceFolder/RenameResourceFolder.test.stories.js +10 -2
  294. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsActivity.test.stories.js +4 -2
  295. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.js +2 -3
  296. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsInformation.test.stories.js +3 -1
  297. package/src/react-extension/components/ResourceFolderDetails/DisplayResourceFolderDetails/DisplayResourceFolderDetailsPermissions.test.stories.js +3 -1
  298. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePassphraseGenerator.test.stories.js +2 -1
  299. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.js +1 -1
  300. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/ConfigurePasswordGenerator.test.stories.js +2 -3
  301. package/src/react-extension/components/ResourcePassword/GenerateResourcePassword/GenerateResourcePassword.test.stories.js +7 -3
  302. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.js +2 -4
  303. package/src/react-extension/components/ResourceTag/DeleteResourceTag/DeleteResourceTag.test.stories.js +6 -2
  304. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.js +2 -4
  305. package/src/react-extension/components/ResourceTag/EditResourceTag/EditResourceTag.test.stories.js +6 -2
  306. package/src/react-extension/components/Share/ShareDialog.js +2 -4
  307. package/src/react-extension/components/Share/ShareDialog.test.js +14 -3
  308. package/src/react-extension/components/Share/ShareDialog.test.stories.js +5 -3
  309. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.js +4 -6
  310. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.js +6 -2
  311. package/src/react-extension/components/User/ConfirmDisableUserMFA/ConfirmDisableUserMFA.test.stories.js +5 -0
  312. package/src/react-extension/components/User/CreateUser/CreateUser.js +2 -4
  313. package/src/react-extension/components/User/CreateUser/CreateUser.test.stories.js +14 -3
  314. package/src/react-extension/components/User/DeleteUser/DeleteUser.js +2 -4
  315. package/src/react-extension/components/User/DeleteUser/DeleteUser.test.stories.js +9 -2
  316. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.js +2 -4
  317. package/src/react-extension/components/User/DeleteUser/DeleteUserWithConflicts.test.stories.js +7 -1
  318. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.js +79 -0
  319. package/src/react-extension/components/User/DisplayExpiredAccountRecovery/DisplayExpiredAccountRecovery.test.stories.js +32 -0
  320. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.js +13 -3
  321. package/src/react-extension/components/User/DisplayUserBadgeMenu/DisplayUserBadgeMenu.test.stories.js +7 -9
  322. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.js +5 -1
  323. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.data.js +18 -9
  324. package/src/react-extension/components/User/DisplayUserWorkspace/DisplayUserWorkspace.test.js +2 -2
  325. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.js +48 -6
  326. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.data.js +16 -1
  327. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.js +14 -0
  328. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.page.js +8 -0
  329. package/src/react-extension/components/User/DisplayUserWorkspaceActions/DisplayUserWorkspaceActions.test.stories.js +55 -0
  330. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.js +35 -0
  331. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.data.js +33 -13
  332. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.js +16 -3
  333. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.page.js +19 -6
  334. package/src/react-extension/components/User/DisplayUsers/DisplayUsers.test.stories.js +38 -0
  335. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.js +46 -10
  336. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.data.js +21 -6
  337. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.js +38 -5
  338. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.page.js +10 -0
  339. package/src/react-extension/components/User/DisplayUsersContextualMenu/DisplayUsersContextualMenu.test.stories.js +53 -0
  340. package/src/react-extension/components/User/EditUser/EditUser.js +2 -4
  341. package/src/react-extension/components/User/EditUser/EditUser.test.stories.js +8 -1
  342. package/src/react-extension/components/User/FilterUsersByGroups/DisplayGroupContextualMenu.js +2 -4
  343. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.js +98 -0
  344. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.data.js +56 -0
  345. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.js +54 -0
  346. package/src/react-extension/components/User/HandleReviewAccountRecoveryRequestRoute/HandleReviewAccountRecoveryRequestRoute.test.page.js +37 -0
  347. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.js +36 -3
  348. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.data.js +1 -1
  349. package/src/react-extension/components/UserDetails/DisplayUserDetails/DisplayUserDetails.test.js +1 -1
  350. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.js +234 -0
  351. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.data.js +125 -0
  352. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.js +150 -0
  353. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.page.js +113 -0
  354. package/src/react-extension/components/UserDetails/DisplayUserDetailsAccountRecovery/DisplayUserDetailsAccountRecovery.test.stories.js +142 -0
  355. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.js +467 -0
  356. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.data.js +167 -0
  357. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.js +106 -0
  358. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.page.js +101 -0
  359. package/src/react-extension/components/UserDetails/DisplayUserDetailsActivity/DisplayUserDetailsActivity.test.stories.js +143 -0
  360. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.js +5 -0
  361. package/src/react-extension/components/UserDetails/DisplayUserDetailsGroups/DisplayUserDetailsGroups.test.stories.js +1 -1
  362. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.data.js +1 -1
  363. package/src/react-extension/components/UserDetails/DisplayUserDetailsInformation/DisplayUserDetailsInformation.test.stories.js +1 -1
  364. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.js +1 -1
  365. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.data.js +1 -1
  366. package/src/react-extension/components/UserDetails/DisplayUserDetailsPublicKey/DisplayUserDetailsPublicKey.test.stories.js +1 -1
  367. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.js +2 -4
  368. package/src/react-extension/components/UserGroup/CreateUserGroup/CreateUserGroup.test.stories.js +5 -1
  369. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.js +2 -4
  370. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroup.test.stories.js +8 -1
  371. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.js +2 -4
  372. package/src/react-extension/components/UserGroup/DeleteUserGroup/DeleteUserGroupWithConflicts.test.stories.js +8 -1
  373. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.data.js +1 -1
  374. package/src/react-extension/components/UserGroup/DisplayUserGroupDetails/DisplayUserGroupDetails.test.js +1 -1
  375. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsInformation/DisplayUserGroupDetailsInformation.test.data.js +1 -1
  376. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.data.js +1 -1
  377. package/src/react-extension/components/UserGroup/DisplayUserGroupDetailsMembers/DisplayUserGroupDetailsMembers.test.stories.js +2 -1
  378. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.js +2 -4
  379. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.data.js +1 -1
  380. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.js +13 -2
  381. package/src/react-extension/components/UserGroup/EditUserGroup/EditUserGroup.test.stories.js +1 -1
  382. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.js +1 -1
  383. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/ConfirmPassphrase.test.js +5 -2
  384. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.js +1 -1
  385. package/src/react-extension/components/UserSetting/ChangeUserPassphrase/EnterNewPassphrase.test.js +11 -1
  386. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.js +1 -1
  387. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.js +11 -3
  388. package/src/react-extension/components/UserSetting/ChangeUserSecurityToken/ChangeUserSecurityToken.test.stories.js +5 -1
  389. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.js +240 -0
  390. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.data.js +53 -0
  391. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.js +110 -0
  392. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.page.js +85 -0
  393. package/src/react-extension/components/UserSetting/DisplayUserAccountRecovery/DisplayAccountRecoveryUserSettings.test.stories.js +65 -0
  394. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.js +3 -4
  395. package/src/react-extension/components/UserSetting/DisplayUserGpgInformation/DisplayUserGpgInformation.test.stories.js +1 -1
  396. package/src/react-extension/components/UserSetting/DisplayUserProfile/DisplayUserProfile.test.stories.js +1 -1
  397. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspace/DisplayUserSettingsWorkspace.js +16 -2
  398. package/src/react-extension/components/UserSetting/DisplayUserSettingsWorkspaceBreadcrumb/DisplayUserSettingsWorkspaceBreadcrumb.js +2 -1
  399. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.js +2 -4
  400. package/src/react-extension/components/UserSetting/DisplayUserTheme/DisplayUserTheme.test.stories.js +18 -12
  401. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.js +2 -4
  402. package/src/react-extension/components/UserSetting/EditUserProfile/EditUserProfile.test.stories.js +17 -3
  403. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.js +29 -0
  404. package/src/react-extension/components/UserSetting/NavigateIntoUserSettingsWorkspace/NavigateIntoUserSettingsWorkspace.test.stories.js +5 -0
  405. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.js +2 -4
  406. package/src/react-extension/components/UserSetting/UploadUserProfileAvatar/UploadUserProfileAvatar.test.stories.js +10 -3
  407. package/src/react-extension/contexts/AccountRecoveryUserContext.js +223 -0
  408. package/src/react-extension/contexts/AccountRecoveryUserContext.test.data.js +55 -0
  409. package/src/react-extension/contexts/AccountRecoveryUserContext.test.js +58 -0
  410. package/src/react-extension/contexts/ActionFeedbackContext.test.data.js +28 -0
  411. package/src/react-extension/contexts/AdminAccountRecoveryContext.js +211 -0
  412. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.data.js +66 -0
  413. package/src/react-extension/contexts/AdminAccountRecoveryContext.test.js +229 -0
  414. package/src/react-extension/contexts/AdministrationWorkspaceContext.js +27 -0
  415. package/src/react-extension/contexts/ApiAccountRecoveryContext.js +148 -0
  416. package/src/react-extension/contexts/ApiRecoverContext.js +14 -15
  417. package/src/react-extension/contexts/ApiSetupContext.js +8 -8
  418. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.js +282 -0
  419. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.data.js +51 -0
  420. package/src/react-extension/contexts/Authentication/AuthenticationAccountRecoveryContext.test.js +231 -0
  421. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.js +264 -0
  422. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.data.js +79 -0
  423. package/src/react-extension/contexts/Authentication/AuthenticationLoginContext.test.js +234 -0
  424. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.js +325 -0
  425. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.data.js +63 -0
  426. package/src/react-extension/contexts/Authentication/AuthenticationRecoverContext.test.js +379 -0
  427. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.js +339 -0
  428. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.data.js +63 -0
  429. package/src/react-extension/contexts/Authentication/AuthenticationSetupContext.test.js +364 -0
  430. package/src/react-extension/contexts/DialogContext.test.data.js +27 -0
  431. package/src/react-extension/contexts/ExtAppContext.js +0 -6
  432. package/src/react-extension/contexts/ExtAppContext.test.data.js +50 -0
  433. package/src/react-extension/contexts/NavigationContext.js +26 -2
  434. package/src/react-extension/contexts/ResourceWorkspaceContext.js +9 -2
  435. package/src/react-extension/contexts/ResourceWorkspaceContext.test.page.js +10 -1
  436. package/src/react-extension/contexts/UserSettingsContext.js +1 -2
  437. package/src/react-extension/contexts/UserWorkspaceContext.js +35 -10
  438. package/src/react-extension/contexts/UserWorkspaceContext.test.data.js +13 -0
  439. package/src/react-extension/contexts/UserWorkspaceContext.test.page.js +6 -1
  440. package/src/react-extension/contexts/WorkflowContext.js +89 -0
  441. package/src/react-extension/contexts/WorkflowContext.test.data.js +27 -0
  442. package/src/react-extension/lib/Error/GpgKeyError.js +22 -0
  443. package/src/react-extension/lib/Error/InvalidMasterPasswordError.js +23 -0
  444. package/src/react-extension/lib/Error/ServerKeyChangedError.js +22 -0
  445. package/src/react-extension/test/fixture/Settings/siteSettings.js +4 -0
  446. package/src/react-extension/test/fixture/Settings/userSettings.js +1 -1
  447. package/src/react-extension/test/mock/MockPort.js +2 -2
  448. package/src/react-extension/test/mock/MockStorage.js +0 -2
  449. package/src/react-extension/test/mock/components/Internationalisation/MockTranslationProvider.js +2 -1
  450. package/src/react-extension/test/mock/components/React/mockSetState.js +22 -0
  451. package/src/react-quickaccess/ExtQuickAccess.js +10 -1
  452. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.js +1 -1
  453. package/src/react-quickaccess/components/FilterResourcesByGroupPage/FilterResourcesByGroupPage.test.stories.js +6 -10
  454. package/src/react-quickaccess/components/FilterResourcesByTagPage/FilterResourcesByTagPage.test.stories.js +6 -10
  455. package/src/react-quickaccess/components/LoginPage/LoginPage.js +2 -6
  456. package/src/react-quickaccess/components/LoginPage/LoginPage.test.stories.js +1 -0
  457. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.js +17 -3
  458. package/src/react-quickaccess/components/PassphraseDialog/PassphraseDialog.test.stories.js +5 -3
  459. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.js +31 -2
  460. package/src/react-quickaccess/components/ResourceAutoSave/SaveResource.test.data.js +1 -1
  461. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.js +32 -3
  462. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.data.js +6 -3
  463. package/src/react-quickaccess/components/ResourceCreatePage/ResourceCreatePage.test.js +29 -19
  464. package/src/react-quickaccess/components/ResourceViewPage/ResourceViewPage.test.data.js +2 -0
  465. package/src/react-web-integration/components/AskInFormMenuDisplay/AskInFormMenuDisplay.test.stories.js +12 -9
  466. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.js +1 -1
  467. package/src/react-web-integration/components/DisplayInFormMenu/DisplayInFormMenu.test.stories.js +127 -164
  468. package/src/react-web-integration/lib/Dom/DomUtils.js +23 -1
  469. package/src/react-web-integration/lib/InForm/InFormFieldSelector.js +7 -1
  470. package/src/react-web-integration/lib/InForm/InFormManager.js +24 -14
  471. package/src/react-web-integration/lib/InForm/InformManager.test.data.js +80 -2
  472. package/src/react-web-integration/lib/InForm/InformManager.test.js +147 -7
  473. package/src/react-web-integration/lib/InForm/InformManager.test.page.js +16 -2
  474. package/src/shared/lib/Error/EntityValidationError.js +81 -0
  475. package/src/shared/lib/apiClient/apiClient.test.js +1 -1
  476. package/src/shared/services/accountRecovery/ApiAppAccountRecoveryUserService.js +78 -0
  477. package/src/shared/services/accountRecovery/ExtAppAccountRecoveryUserService.js +24 -0
  478. package/test/jest.setup.js +8 -0
  479. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.js +0 -97
  480. package/src/react-extension/components/Authentication/AskForAuthenticationHelp/AskForAuthenticationHelp.test.stories.js +0 -33
  481. package/src/react-extension/components/Authentication/CheckPassphrase/GenerateKeyOnPassphraseLostSecondaryAction.js +0 -41
  482. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPassphraseLostSecondaryAction.js +0 -41
  483. package/src/react-extension/components/Authentication/CheckPassphrase/HelpOnPrivateKeyLostSecondaryAction.js +0 -41
  484. package/src/react-extension/components/Authentication/ImportGpgKey/GenerateKeySecondaryAction.js +0 -40
  485. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.data.js +0 -11
  486. package/src/react-extension/components/Authentication/IntroduceSetupExtension/IntroduceSetupExtension.test.stories.js +0 -34
  487. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.js +0 -87
  488. package/src/react-extension/components/AuthenticationLogin/DisplayLoginError/DisplayLoginError.test.stories.js +0 -33
  489. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginInProgress.js +0 -49
  490. package/src/react-extension/components/AuthenticationLogin/DisplayLoginInProgress/DisplayLoginProgress.test.stories.js +0 -33
  491. package/src/react-extension/components/AuthenticationLogin/OrchestrateLogin/OrchestrateLogin.js +0 -102
  492. package/src/react-extension/components/Internationalisation/ChangeLocale/ChangeExtAuthenticationLocale.js +0 -63
  493. package/src/react-extension/contexts/AuthenticationContext.js +0 -467
  494. package/src/react-extension/contexts/AuthenticationContext.test.data.js +0 -15
  495. package/src/react-extension/contexts/AuthenticationContext.test.js +0 -252
@@ -36,6 +36,7 @@ describe("Create Folder", () => {
36
36
 
37
37
  describe('As LU I should create a folder', () => {
38
38
  it('As System I should send a create request', async() => {
39
+ expect.assertions(1);
39
40
  const expectedParameters = ["passbolt.folders.create", {folder_parent_id: "some folder parent id", name: "My super folder"}];
40
41
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
41
42
  await page.create({name: 'My super folder'});
@@ -43,6 +44,7 @@ describe("Create Folder", () => {
43
44
  });
44
45
 
45
46
  it('As LU I should see a success message when I successfully created a folder', async() => {
47
+ expect.assertions(1);
46
48
  const expectedMessage = "The folder has been added successfully";
47
49
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
48
50
  jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(jest.fn());
@@ -51,6 +53,7 @@ describe("Create Folder", () => {
51
53
  });
52
54
 
53
55
  it('As LU I should see the newly created folder as selected and scrolled', async() => {
56
+ expect.assertions(1);
54
57
  const folderId = 'some folder id';
55
58
  const expectedParameters = ["passbolt.folders.select-and-scroll-to", folderId];
56
59
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: folderId}));
@@ -60,6 +63,7 @@ describe("Create Folder", () => {
60
63
  });
61
64
 
62
65
  it('As LU I should see the close of the dialog', async() => {
66
+ expect.assertions(1);
63
67
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
64
68
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
65
69
  await page.create({name: 'My super folder'});
@@ -69,11 +73,13 @@ describe("Create Folder", () => {
69
73
 
70
74
  describe('As LU I should input appropriate data to create a folder', () => {
71
75
  it('AS LU I should not fill an empty folder name', async() => {
76
+ expect.assertions(1);
72
77
  await page.create({name: ''});
73
78
  expect(page.hasInvalidName).toBeTruthy();
74
79
  });
75
80
 
76
81
  it('AS LU I should not fill a folder name longer than 64 characters', async() => {
82
+ expect.assertions(1);
77
83
  await page.create({name: '1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111'});
78
84
  expect(page.hasInvalidName).toBeTruthy();
79
85
  });
@@ -81,6 +87,7 @@ describe("Create Folder", () => {
81
87
 
82
88
  describe('As LU I should be informed when the folder creation failed', () => {
83
89
  it('AS LU I should stays on the dialog if the user have not input the passphrase', async() => {
90
+ expect.assertions(1);
84
91
  const error = {name: "UserAbortsOperationError"};
85
92
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject(error));
86
93
  jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(jest.fn());
@@ -89,25 +96,25 @@ describe("Create Folder", () => {
89
96
  });
90
97
 
91
98
  it('AS LU I should see the error message when the folder creation failed', async() => {
92
- const error = {message: "Some error message"};
93
- const dialogErrorProps = {errorDialogProps: {title: "There was an unexpected error...", message: error.message}};
99
+ expect.assertions(1);
100
+ const error = new Error("Some error message");
94
101
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject(error));
95
- jest.spyOn(context, 'setContext').mockImplementationOnce(jest.fn());
96
102
  jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn());
97
103
  await page.create({name: 'My super folder'});
98
- expect(context.setContext).toHaveBeenCalledWith(dialogErrorProps);
99
- expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
104
+ expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
100
105
  });
101
106
  });
102
107
 
103
108
  describe('AS LU I should cancel the operation', () => {
104
109
  it('AS LU I should cancel the operation by closing the dialog', async() => {
110
+ expect.assertions(1);
105
111
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
106
112
  await page.close();
107
113
  expect(props.onClose).toHaveBeenCalled();
108
114
  });
109
115
 
110
116
  it('AS LU I should cancel the operation by explicitely cancelling', async() => {
117
+ expect.assertions(1);
111
118
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
112
119
  await page.cancel();
113
120
  expect(props.onClose).toHaveBeenCalled();
@@ -116,6 +123,7 @@ describe("Create Folder", () => {
116
123
 
117
124
  describe('AS LU I should not perform actions during the folder creation', () => {
118
125
  it('AS LU I should not cancel during the folder creation', async() => {
126
+ expect.assertions(1);
119
127
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
120
128
  const inProgressFn = () => {
121
129
  expect(page.canCancel).toBeFalsy();
@@ -124,6 +132,7 @@ describe("Create Folder", () => {
124
132
  });
125
133
 
126
134
  it('AS LU I should not close during the folder creation', async() => {
135
+ expect.assertions(1);
127
136
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
128
137
  const inProgressFn = () => {
129
138
  expect(page.canClose).toBeFalsy();
@@ -132,6 +141,7 @@ describe("Create Folder", () => {
132
141
  });
133
142
 
134
143
  it('AS LU I should not change data during the folder creation', async() => {
144
+ expect.assertions(1);
135
145
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
136
146
  const inProgressFn = () => {
137
147
  expect(page.canChangeData).toBeFalsy();
@@ -140,6 +150,7 @@ describe("Create Folder", () => {
140
150
  });
141
151
 
142
152
  it('AS LU I should not re-submit during the folder creation', async() => {
153
+ expect.assertions(1);
143
154
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
144
155
  const inProgressFn = () => {
145
156
  expect(page.canSubmit).toBeFalsy();
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import {MemoryRouter, Route} from "react-router-dom";
3
+ import MockPort from "../../../test/mock/MockPort";
3
4
  import CreateResourceFolder from "./CreateResourceFolder";
4
5
 
5
6
 
@@ -13,4 +14,16 @@ const Template = args =>
13
14
  <Route component={routerProps => <CreateResourceFolder {...args} {...routerProps}/>}></Route>
14
15
  </MemoryRouter>;
15
16
 
17
+ const mockedPort = new MockPort();
18
+ mockedPort.addRequestListener("passbolt.folders.create", data => data);
19
+
16
20
  export const Initial = Template.bind({});
21
+ Initial.args = {
22
+ onClose: () => {},
23
+ context: {
24
+ folderCreateDialogProps: {
25
+ folderParentId: "test"
26
+ },
27
+ port: mockedPort
28
+ }
29
+ };
@@ -153,11 +153,9 @@ class DefineResourceFolderMoveStrategy extends Component {
153
153
  */
154
154
  handleError(error) {
155
155
  const errorDialogProps = {
156
- title: this.translate("There was an unexpected error..."),
157
- message: error.message
156
+ error: error
158
157
  };
159
- this.props.context.setContext({errorDialogProps});
160
- this.props.dialogContext.open(NotifyError);
158
+ this.props.dialogContext.open(NotifyError, errorDialogProps);
161
159
  }
162
160
 
163
161
  /**
@@ -285,20 +283,20 @@ class DefineResourceFolderMoveStrategy extends Component {
285
283
  <div className="form-content">
286
284
  <p>{this.getIntroMessage()}</p>
287
285
  <div className="radiolist-alt">
288
- <div className="input radio">
286
+ <div className={`input radio ${this.state.moveOption === "change" ? 'checked' : ''}`}>
289
287
  <input name="moveOption" value="change" id="moveOptionChange" type="radio"
290
288
  onChange={this.handleInputChange} ref={this.moveOptionChangeRef} checked={this.state.moveOption === 'change'} />
291
289
  <label htmlFor="moveOptionChange">
292
- <span className="strategy-name"><Trans>Change permissions</Trans></span>
293
- <span className="strategy-info"><Trans>Remove old inherited permissions and apply the new destination folder permissions recursively.</Trans></span>
290
+ <span className="name"><Trans>Change permissions</Trans></span>
291
+ <span className="info"><Trans>Remove old inherited permissions and apply the new destination folder permissions recursively.</Trans></span>
294
292
  </label>
295
293
  </div>
296
- <div className="input radio last">
294
+ <div className={`input radio last ${this.state.moveOption === "keep" ? 'checked' : ''}`}>
297
295
  <input name="moveOption" value="keep" id="moveOptionKeep" type="radio"
298
296
  onChange={this.handleInputChange} ref={this.moveOptionKeepRef} checked={this.state.moveOption === 'keep'}/>
299
297
  <label htmlFor="moveOptionKeep">
300
- <span className="strategy-name"><Trans>Keep existing permissions</Trans></span>
301
- <span className="strategy-info"><Trans>Keep the original permissions, do not apply the destination folder permissions.</Trans></span>
298
+ <span className="name"><Trans>Keep existing permissions</Trans></span>
299
+ <span className="info"><Trans>Keep the original permissions, do not apply the destination folder permissions.</Trans></span>
302
300
  </label>
303
301
  </div>
304
302
  </div>
@@ -36,6 +36,7 @@ describe("Move Folder", () => {
36
36
 
37
37
  describe('As LU I should move a folder', () => {
38
38
  it('As System I should send a move request with the change permission option by default', async() => {
39
+ expect.assertions(1);
39
40
  const expectedParameters = ["some request id", "SUCCESS", {moveOption: "change"}];
40
41
  jest.spyOn(context.port, 'emit').mockImplementationOnce(() => {});
41
42
  await page.move('change');
@@ -43,6 +44,7 @@ describe("Move Folder", () => {
43
44
  });
44
45
 
45
46
  it('As System I should send a move request with the keep permissions option', async() => {
47
+ expect.assertions(1);
46
48
  const expectedParameters = ["some request id", "SUCCESS", {moveOption: "keep"}];
47
49
  jest.spyOn(context.port, 'emit').mockImplementationOnce(() => {});
48
50
  await page.move('keep');
@@ -50,6 +52,7 @@ describe("Move Folder", () => {
50
52
  });
51
53
 
52
54
  it('As LU I should see the close of the dialog', async() => {
55
+ expect.assertions(1);
53
56
  jest.spyOn(context.port, 'emit').mockImplementationOnce(() => {});
54
57
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
55
58
  await page.move('change');
@@ -59,25 +62,25 @@ describe("Move Folder", () => {
59
62
 
60
63
  describe('As LU I should be informed when the folder move failed', () => {
61
64
  it('AS LU I should see the error message when the folder move failed', async() => {
62
- const error = {message: "Some error message"};
63
- const dialogErrorProps = {errorDialogProps: {title: "There was an unexpected error...", message: error.message}};
65
+ expect.assertions(1);
66
+ const error = new Error("Some error message");
64
67
  jest.spyOn(context.port, 'emit').mockImplementationOnce(() => Promise.reject(error));
65
- jest.spyOn(context, 'setContext').mockImplementationOnce(jest.fn());
66
68
  jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn());
67
69
  await page.move('change');
68
- expect(context.setContext).toHaveBeenCalledWith(dialogErrorProps);
69
- expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
70
+ expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
70
71
  });
71
72
  });
72
73
 
73
74
  describe('AS LU I should cancel the operation', () => {
74
75
  it('AS LU I should cancel the operation by closing the dialog', async() => {
76
+ expect.assertions(1);
75
77
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
76
78
  await page.close();
77
79
  expect(props.onClose).toHaveBeenCalled();
78
80
  });
79
81
 
80
82
  it('AS LU I should cancel the operation by explicitely cancelling', async() => {
83
+ expect.assertions(1);
81
84
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
82
85
  await page.cancel();
83
86
  expect(props.onClose).toHaveBeenCalled();
@@ -86,6 +89,7 @@ describe("Move Folder", () => {
86
89
 
87
90
  describe('AS LU I should not perform actions during the folder creation', () => {
88
91
  it('AS LU I should not cancel during the folder move', async() => {
92
+ expect.assertions(1);
89
93
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
90
94
  const inProgressFn = () => {
91
95
  expect(page.canCancel).toBeFalsy();
@@ -94,6 +98,7 @@ describe("Move Folder", () => {
94
98
  });
95
99
 
96
100
  it('AS LU I should not close during the folder move', async() => {
101
+ expect.assertions(1);
97
102
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
98
103
  const inProgressFn = () => {
99
104
  expect(page.canClose).toBeFalsy();
@@ -102,6 +107,7 @@ describe("Move Folder", () => {
102
107
  });
103
108
 
104
109
  it('AS LU I should not change data during the folder move', async() => {
110
+ expect.assertions(1);
105
111
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
106
112
  const inProgressFn = () => {
107
113
  expect(page.canChangeData).toBeFalsy();
@@ -110,6 +116,7 @@ describe("Move Folder", () => {
110
116
  });
111
117
 
112
118
  it('AS LU I should not re-submit during the folder move', async() => {
119
+ expect.assertions(1);
113
120
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
114
121
  const inProgressFn = () => {
115
122
  expect(page.canSubmit).toBeFalsy();
@@ -3,6 +3,7 @@ import {MemoryRouter, Route} from "react-router-dom";
3
3
  import AppContext from "../../../contexts/AppContext";
4
4
  import PropTypes from "prop-types";
5
5
  import DefineResourceFolderMoveStrategy from "./DefineResourceFolderMoveStrategy";
6
+ import MockPort from "../../../test/mock/MockPort";
6
7
 
7
8
 
8
9
  export default {
@@ -19,6 +20,7 @@ const defaultContext = {
19
20
  {id: 1}
20
21
  ]
21
22
  },
23
+ port: new MockPort(),
22
24
  setContext: () => {}
23
25
  };
24
26
 
@@ -35,7 +37,8 @@ Template.propTypes = {
35
37
 
36
38
  export const Initial = Template.bind({});
37
39
  Initial.args = {
38
- context: defaultContext
40
+ context: defaultContext,
41
+ onClose: () => {}
39
42
  };
40
43
 
41
44
 
@@ -151,11 +151,9 @@ class DeleteResourceFolder extends Component {
151
151
  */
152
152
  handleError(error) {
153
153
  const errorDialogProps = {
154
- title: this.translate("There was an unexpected error..."),
155
- message: error.message
154
+ error: error
156
155
  };
157
- this.props.context.setContext({errorDialogProps});
158
- this.props.dialogContext.open(NotifyError);
156
+ this.props.dialogContext.open(NotifyError, errorDialogProps);
159
157
  }
160
158
 
161
159
  /**
@@ -75,14 +75,11 @@ describe("Delete Folder", () => {
75
75
  });
76
76
 
77
77
  it('AS LU I should see the error message when the folder deletion failed', async() => {
78
- const error = {message: "Some error message"};
79
- const dialogErrorProps = {errorDialogProps: {title: "There was an unexpected error...", message: error.message}};
78
+ const error = new Error("Some error message");
80
79
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject(error));
81
- jest.spyOn(context, 'setContext').mockImplementationOnce(jest.fn());
82
80
  jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn());
83
81
  await page.delete(false);
84
- expect(context.setContext).toHaveBeenCalledWith(dialogErrorProps);
85
- expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
82
+ expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
86
83
  });
87
84
  });
88
85
 
@@ -3,6 +3,7 @@ import {MemoryRouter, Route} from "react-router-dom";
3
3
  import AppContext from "../../../contexts/AppContext";
4
4
  import PropTypes from "prop-types";
5
5
  import DeleteResourceFolder from "./DeleteResourceFolder";
6
+ import MockPort from "../../../test/mock/MockPort";
6
7
 
7
8
 
8
9
  export default {
@@ -14,7 +15,9 @@ const defaultContext = {
14
15
  folders: [
15
16
  {id: 1, name: "My folder"}
16
17
  ],
17
- folder: {id: 1}
18
+ folder: {id: 1},
19
+ port: new MockPort(),
20
+ setContext: () => {}
18
21
  };
19
22
 
20
23
  const Template = ({context, ...args}) =>
@@ -31,7 +34,8 @@ Template.propTypes = {
31
34
 
32
35
  export const Initial = Template.bind({});
33
36
  Initial.args = {
34
- context: defaultContext
37
+ context: defaultContext,
38
+ onClose: () => {}
35
39
  };
36
40
 
37
41
  Initial.argTypes = {
@@ -201,11 +201,9 @@ class RenameResourceFolder extends Component {
201
201
  */
202
202
  handleError(error) {
203
203
  const errorDialogProps = {
204
- title: this.translate("There was an unexpected error..."),
205
- message: error.message
204
+ error: error
206
205
  };
207
- this.props.context.setContext({errorDialogProps});
208
- this.props.dialogContext.open(NotifyError);
206
+ this.props.dialogContext.open(NotifyError, errorDialogProps);
209
207
  }
210
208
 
211
209
  /**
@@ -36,6 +36,7 @@ describe("Rename Folder", () => {
36
36
 
37
37
  describe('As LU I should rename a folder', () => {
38
38
  it('As System I should send a rename request', async() => {
39
+ expect.assertions(1);
39
40
  const expectedParameters = ["passbolt.folders.update", {id: "some folder id", name: "My super folder"}];
40
41
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
41
42
  await page.rename({name: 'My super folder'});
@@ -43,6 +44,7 @@ describe("Rename Folder", () => {
43
44
  });
44
45
 
45
46
  it('As LU I should see a success message when I successfully renamed a folder', async() => {
47
+ expect.assertions(1);
46
48
  const expectedMessage = "The folder was renamed successfully";
47
49
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
48
50
  jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(jest.fn());
@@ -51,6 +53,7 @@ describe("Rename Folder", () => {
51
53
  });
52
54
 
53
55
  it('As LU I should see the renamed folder as selected and scrolled', async() => {
56
+ expect.assertions(1);
54
57
  const folderId = 'some folder id';
55
58
  const expectedParameters = ["passbolt.folders.select-and-scroll-to", folderId];
56
59
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: folderId}));
@@ -60,6 +63,7 @@ describe("Rename Folder", () => {
60
63
  });
61
64
 
62
65
  it('As LU I should see the close of the dialog', async() => {
66
+ expect.assertions(1);
63
67
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
64
68
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
65
69
  await page.rename({name: 'My super folder'});
@@ -69,11 +73,13 @@ describe("Rename Folder", () => {
69
73
 
70
74
  describe('As LU I should input appropriate data to rename a folder', () => {
71
75
  it('AS LU I should not fill an empty folder name', async() => {
76
+ expect.assertions(1);
72
77
  await page.rename({name: ''});
73
78
  expect(page.hasInvalidName).toBeTruthy();
74
79
  });
75
80
 
76
81
  it('AS LU I should not fill a folder name longer than 64 characters', async() => {
82
+ expect.assertions(1);
77
83
  await page.rename({name: '1111111111 1111111111 1111111111 1111111111 1111111111 1111111111 1111'});
78
84
  expect(page.hasInvalidName).toBeTruthy();
79
85
  });
@@ -81,6 +87,7 @@ describe("Rename Folder", () => {
81
87
 
82
88
  describe('As LU I should be informed when the folder rename failed', () => {
83
89
  it('AS LU I should stays on the dialog if the user have not input the passphrase', async() => {
90
+ expect.assertions(1);
84
91
  const error = {name: "UserAbortsOperationError"};
85
92
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject(error));
86
93
  jest.spyOn(props.actionFeedbackContext, 'displaySuccess').mockImplementationOnce(jest.fn());
@@ -89,25 +96,25 @@ describe("Rename Folder", () => {
89
96
  });
90
97
 
91
98
  it('AS LU I should see the error message when the folder rename failed', async() => {
99
+ expect.assertions(1);
92
100
  const error = {message: "Some error message"};
93
- const dialogErrorProps = {errorDialogProps: {title: "There was an unexpected error...", message: error.message}};
94
101
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => Promise.reject(error));
95
- jest.spyOn(context, 'setContext').mockImplementationOnce(jest.fn());
96
102
  jest.spyOn(props.dialogContext, 'open').mockImplementationOnce(jest.fn());
97
103
  await page.rename({name: 'My super folder'});
98
- expect(context.setContext).toHaveBeenCalledWith(dialogErrorProps);
99
- expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError);
104
+ expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: error});
100
105
  });
101
106
  });
102
107
 
103
108
  describe('AS LU I should cancel the operation', () => {
104
109
  it('AS LU I should cancel the operation by closing the dialog', async() => {
110
+ expect.assertions(1);
105
111
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
106
112
  await page.close();
107
113
  expect(props.onClose).toHaveBeenCalled();
108
114
  });
109
115
 
110
116
  it('AS LU I should cancel the operation by explicitely cancelling', async() => {
117
+ expect.assertions(1);
111
118
  jest.spyOn(props, 'onClose').mockImplementationOnce(jest.fn());
112
119
  await page.cancel();
113
120
  expect(props.onClose).toHaveBeenCalled();
@@ -116,6 +123,7 @@ describe("Rename Folder", () => {
116
123
 
117
124
  describe('AS LU I should not perform actions during the folder rename', () => {
118
125
  it('AS LU I should not cancel during the folder rename', async() => {
126
+ expect.assertions(1);
119
127
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
120
128
  const inProgressFn = () => {
121
129
  expect(page.canCancel).toBeFalsy();
@@ -124,6 +132,7 @@ describe("Rename Folder", () => {
124
132
  });
125
133
 
126
134
  it('AS LU I should not close during the folder rename', async() => {
135
+ expect.assertions(1);
127
136
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
128
137
  const inProgressFn = () => {
129
138
  expect(page.canClose).toBeFalsy();
@@ -132,6 +141,7 @@ describe("Rename Folder", () => {
132
141
  });
133
142
 
134
143
  it('AS LU I should not change data during the folder rename', async() => {
144
+ expect.assertions(1);
135
145
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
136
146
  const inProgressFn = () => {
137
147
  expect(page.canChangeData).toBeFalsy();
@@ -140,6 +150,7 @@ describe("Rename Folder", () => {
140
150
  });
141
151
 
142
152
  it('AS LU I should not re-submit during the folder rename', async() => {
153
+ expect.assertions(1);
143
154
  jest.spyOn(context.port, 'request').mockImplementationOnce(() => ({id: 'some folder id'}));
144
155
  const inProgressFn = () => {
145
156
  expect(page.canSubmit).toBeFalsy();
@@ -3,6 +3,7 @@ import {MemoryRouter, Route} from "react-router-dom";
3
3
  import AppContext from "../../../contexts/AppContext";
4
4
  import PropTypes from "prop-types";
5
5
  import RenameResourceFolder from "./RenameResourceFolder";
6
+ import MockPort from "../../../test/mock/MockPort";
6
7
 
7
8
 
8
9
  export default {
@@ -10,11 +11,16 @@ export default {
10
11
  component: RenameResourceFolder
11
12
  };
12
13
 
14
+ const mockedPort = new MockPort();
15
+ mockedPort.addRequestListener("passbolt.folders.update", data => data);
16
+
13
17
  const defaultContext = {
14
18
  folders: [
15
19
  {id: 1, name: "My folder"}
16
20
  ],
17
- folder: {id: 1}
21
+ folder: {id: 1},
22
+ setContext: () => {},
23
+ port: mockedPort
18
24
  };
19
25
 
20
26
  const Template = ({context, ...args}) =>
@@ -26,12 +32,14 @@ const Template = ({context, ...args}) =>
26
32
 
27
33
  Template.propTypes = {
28
34
  context: PropTypes.object,
35
+ onClose: () => {}
29
36
  };
30
37
 
31
38
 
32
39
  export const Initial = Template.bind({});
33
40
  Initial.args = {
34
- context: defaultContext
41
+ context: defaultContext,
42
+ onClose: () => {}
35
43
  };
36
44
 
37
45
  Initial.argTypes = {
@@ -35,7 +35,9 @@ const context = {
35
35
  const Template = args =>
36
36
  <AppContext.Provider value={context}>
37
37
  <MemoryRouter initialEntries={['/']}>
38
- <Route component={routerProps => <DisplayResourceFolderDetailsActivity {...args} {...routerProps}/>}></Route>
38
+ <div className="panel aside">
39
+ <Route component={routerProps => <DisplayResourceFolderDetailsActivity {...args} {...routerProps}/>}></Route>
40
+ </div>
39
41
  </MemoryRouter>
40
42
  </AppContext.Provider>;
41
43
 
@@ -43,7 +45,7 @@ export const Initial = Template.bind({});
43
45
  Initial.args = {
44
46
  resourceWorkspaceContext: {
45
47
  details: {
46
- resource: {
48
+ folder: {
47
49
  "id": "9e03fd73-04c0-5514-95fa-1a6cf2c7c093",
48
50
  "name": "Accounting",
49
51
  "created": "2020-02-01T00:00:00+00:00",
@@ -49,16 +49,16 @@ describe("See information", () => {
49
49
  });
50
50
 
51
51
  it('I should see the information of a resource', async() => {
52
+ expect.assertions(2);
52
53
  expect(page.title.hyperlink.textContent).toBe("Information");
53
-
54
54
  expect(page.displayInformationList.exists()).toBeTruthy();
55
- await page.title.click();
56
55
  });
57
56
 
58
57
  it('I should be able to identify each information name', async() => {
59
58
  mockContextRequest(copyClipboardMockImpl);
60
59
  jest.spyOn(ActionFeedbackContext._currentValue, 'displaySuccess').mockImplementation(() => {});
61
60
 
61
+ expect.assertions(12);
62
62
  expect(page.displayInformationList.usernameLabel).toBe('Name');
63
63
  expect(page.displayInformationList.username.textContent).toBe(props.resourceWorkspaceContext.details.folder.name);
64
64
  expect(page.displayInformationList.modifiedLabel(1)).toBe('Modified');
@@ -71,7 +71,6 @@ describe("See information", () => {
71
71
  expect(page.displayInformationList.modifiedBy(2).textContent).toBe('ada@passbolt.com');
72
72
  expect(page.displayInformationList.locationLabel).toBe('Location');
73
73
  expect(page.displayInformationList.location.textContent).toBe(" /");
74
- await page.displayInformationList.click(page.displayInformationList.location);
75
74
  });
76
75
  });
77
76
  });
@@ -18,7 +18,9 @@ const context = {
18
18
  const Template = args =>
19
19
  <AppContext.Provider value={context}>
20
20
  <MemoryRouter initialEntries={['/']}>
21
- <Route component={routerProps => <DisplayResourceFolderDetailsInformation {...args} {...routerProps}/>}></Route>
21
+ <div className="panel aside">
22
+ <Route component={routerProps => <DisplayResourceFolderDetailsInformation {...args} {...routerProps}/>}></Route>
23
+ </div>
22
24
  </MemoryRouter>
23
25
  </AppContext.Provider>;
24
26
 
@@ -40,7 +40,9 @@ const context = {
40
40
  const Template = args =>
41
41
  <AppContext.Provider value={context}>
42
42
  <MemoryRouter initialEntries={['/']}>
43
- <Route component={routerProps => <DisplayResourceFolderDetailsPermissions {...args} {...routerProps}/>}></Route>
43
+ <div className="panel aside">
44
+ <Route component={routerProps => <DisplayResourceFolderDetailsPermissions {...args} {...routerProps}/>}></Route>
45
+ </div>
44
46
  </MemoryRouter>
45
47
  </AppContext.Provider>;
46
48
 
@@ -26,5 +26,6 @@ Initial.args = {
26
26
  max_word: 40,
27
27
  separator: " "
28
28
  },
29
- }
29
+ },
30
+ onChanged: () => {}
30
31
  };
@@ -153,7 +153,7 @@ class ConfigurePasswordGenerator extends React.Component {
153
153
  this.masks.map(mask => (
154
154
  <button
155
155
  key={mask.name}
156
- className={`button button-toggle ${(mask.active ? 'selected' : '')}`}
156
+ className={`button button-toggle ${(mask.active || mask.required ? 'selected' : '')}`}
157
157
  onClick={event => this.handleMaskToggled(mask.name, event)}>
158
158
  {mask.label}
159
159
  </button>
@@ -49,13 +49,12 @@ Initial.args = {
49
49
  {
50
50
  "name": "lower",
51
51
  "label": "a-z",
52
- "characters": "abcdefghijklmnopqrstuvwxyz",
52
+ "characters": "abcdefghijklmnopqrstuvwxyz"
53
53
  },
54
54
  {
55
55
  "name": "digit",
56
56
  "label": "0-9",
57
- "characters": "0123456789",
58
- "required": true,
57
+ "characters": "0123456789"
59
58
  },
60
59
  {
61
60
  "name": "parenthesis",