passbolt-styleguide 4.10.2 → 4.11.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/css/help.min.css +3 -3
- package/build/css/public.min.css +2 -2
- package/build/css/themes/default/api_authentication.min.css +3 -3
- package/build/css/themes/default/api_cloud.min.css +3 -3
- package/build/css/themes/default/api_main.min.css +3 -3
- package/build/css/themes/default/api_reports.min.css +3 -3
- package/build/css/themes/default/api_webinstaller.min.css +3 -3
- package/build/css/themes/default/ext_app.min.css +3 -3
- package/build/css/themes/default/ext_authentication.min.css +3 -3
- package/build/css/themes/default/ext_external.min.css +2 -2
- package/build/css/themes/default/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/default/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/default/ext_quickaccess.min.css +3 -3
- package/build/css/themes/midgar/api_authentication.min.css +3 -3
- package/build/css/themes/midgar/api_main.min.css +3 -3
- package/build/css/themes/midgar/api_reports.min.css +3 -3
- package/build/css/themes/midgar/ext_app.min.css +3 -3
- package/build/css/themes/midgar/ext_authentication.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_cta.min.css +3 -3
- package/build/css/themes/midgar/ext_in_form_menu.min.css +3 -3
- package/build/css/themes/midgar/ext_quickaccess.min.css +3 -3
- package/build/css/themes/solarized_dark/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/api_main.min.css +1 -1
- package/build/css/themes/solarized_dark/api_reports.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_app.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_dark/ext_quickaccess.min.css +1 -1
- package/build/css/themes/solarized_light/api_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/api_main.min.css +1 -1
- package/build/css/themes/solarized_light/api_reports.min.css +1 -1
- package/build/css/themes/solarized_light/ext_app.min.css +1 -1
- package/build/css/themes/solarized_light/ext_authentication.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_cta.min.css +1 -1
- package/build/css/themes/solarized_light/ext_in_form_menu.min.css +1 -1
- package/build/css/themes/solarized_light/ext_quickaccess.min.css +1 -1
- package/build/js/dist/api-app.js +1 -1
- package/build/js/dist/api-app.js.LICENSE.txt +29 -1
- package/build/js/dist/api-vendors.js +1 -1
- package/build/js/dist/api-vendors.js.LICENSE.txt +8 -0
- package/jest.config.json +2 -1
- package/package.json +1 -1
- package/src/react-extension/ApiApp.js +2 -0
- package/src/react-extension/ExtApp.js +7 -8
- package/src/react-extension/ExtBootstrapApp.js +2 -0
- package/src/react-extension/components/Administration/AdministrationWorkspace.js +29 -2
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +66 -0
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +3 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +60 -1
- package/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +24 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration.js +421 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration.test.data.js +77 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration.test.js +337 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration.test.page.js +277 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration.test.stories.js +54 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministrationActions.js +49 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministrationActions.test.data.js +26 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministrationActions.test.js +50 -0
- package/src/react-extension/components/Administration/DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministrationActions.test.page.js +71 -0
- package/src/react-extension/components/Administration/DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration.js +422 -0
- package/src/react-extension/components/Administration/DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration.test.data.js +158 -0
- package/src/react-extension/components/Administration/DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration.test.js +169 -0
- package/src/react-extension/components/Administration/DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration.test.page.js +154 -0
- package/src/react-extension/components/Administration/DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration.test.stories.js +50 -0
- package/src/react-extension/contexts/AdministrationWorkspaceContext.js +14 -3
- package/src/react-extension/contexts/NavigationContext.js +18 -0
- package/src/react-quickaccess/ExtQuickAccess.js +3 -3
- package/src/react-quickaccess/components/ConfirmCreatePage/ConfirmCreatePage.js +1 -1
- package/src/react-quickaccess/components/LoginPage/LoginPage.js +1 -1
- package/src/shared/models/entity/abstract/entityV2.js +144 -8
- package/src/shared/models/entity/abstract/entityV2.test.data.js +30 -11
- package/src/shared/models/entity/abstract/entityV2.test.js +256 -22
- package/src/shared/models/entity/gpgkey/external/externalGpgKeyPairEntity.js +140 -0
- package/src/shared/models/entity/gpgkey/external/externalGpgKeyPairEntity.test.js +57 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyCollection.js +88 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyCollection.test.js +40 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyEntity.js +308 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyEntity.test.data.js +123 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyEntity.test.fixtures.js +112 -0
- package/src/shared/models/entity/gpgkey/externalGpgKeyEntity.test.js +163 -0
- package/src/shared/models/entity/metadata/metadataKeyEntity.js +21 -0
- package/src/shared/models/entity/metadata/metadataKeyEntity.test.data.js +2 -1
- package/src/shared/models/entity/metadata/metadataKeyEntity.test.js +32 -2
- package/src/shared/models/entity/metadata/metadataTypesSettingsEntity.js +61 -8
- package/src/shared/models/entity/metadata/metadataTypesSettingsEntity.test.data.js +10 -0
- package/src/shared/models/entity/metadata/metadataTypesSettingsEntity.test.js +80 -9
- package/src/shared/models/entity/metadata/metadataTypesSettingsFormEntity.js +95 -0
- package/src/shared/models/entity/metadata/metadataTypesSettingsFormEntity.test.js +140 -0
- package/src/shared/models/entity/resourceType/resourceTypesCollection.js +9 -0
- package/src/shared/models/entity/resourceType/resourceTypesCollection.test.js +26 -0
- package/src/shared/services/serviceWorker/crypto/gpgServiceWorkerService.js +53 -0
- package/src/shared/services/serviceWorker/crypto/gpgServiceWorkerService.test.js +64 -0
- package/src/shared/services/serviceWorker/metadata/metadataKeysServiceWorkerService.js +37 -0
- package/src/shared/services/serviceWorker/metadata/metadataKeysServiceWorkerService.test.js +43 -0
- package/src/shared/services/serviceWorker/metadata/metadataSettingsServiceWorkerService.js +64 -0
- package/src/shared/services/serviceWorker/metadata/metadataSettingsServiceWorkerService.test.js +81 -0
- package/test/fixture/pgpKeys/keys.js +11 -0
- package/test/matchers/toThrowEntityValidationError.js +2 -2
|
@@ -1631,6 +1631,10 @@ object-assign
|
|
|
1631
1631
|
!*** ./node_modules/core-js-pure/stable/symbol/index.js ***!
|
|
1632
1632
|
\**********************************************************/
|
|
1633
1633
|
|
|
1634
|
+
/*!**********************************************************!*\
|
|
1635
|
+
!*** ./node_modules/memoize-one/dist/memoize-one.esm.js ***!
|
|
1636
|
+
\**********************************************************/
|
|
1637
|
+
|
|
1634
1638
|
/*!***********************************************************!*\
|
|
1635
1639
|
!*** ./node_modules/core-js-pure/actual/instance/push.js ***!
|
|
1636
1640
|
\***********************************************************/
|
|
@@ -1795,6 +1799,10 @@ object-assign
|
|
|
1795
1799
|
!*** ./node_modules/i18next-http-backend/esm/getFetch.cjs ***!
|
|
1796
1800
|
\************************************************************/
|
|
1797
1801
|
|
|
1802
|
+
/*!************************************************************!*\
|
|
1803
|
+
!*** ./node_modules/validator/es/lib/util/assertString.js ***!
|
|
1804
|
+
\************************************************************/
|
|
1805
|
+
|
|
1798
1806
|
/*!************************************************************!*\
|
|
1799
1807
|
!*** ./node_modules/xregexp/lib/addons/unicode-scripts.js ***!
|
|
1800
1808
|
\************************************************************/
|
package/jest.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "passbolt-styleguide",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.11.0-alpha.2",
|
|
4
4
|
"license": "AGPL-3.0",
|
|
5
5
|
"copyright": "Copyright 2023 Passbolt SA",
|
|
6
6
|
"description": "Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.",
|
|
@@ -89,6 +89,8 @@ class ApiApp extends Component {
|
|
|
89
89
|
"/app/administration/password-policies",
|
|
90
90
|
"/app/administration/user-passphrase-policies",
|
|
91
91
|
"/app/administration/password-expiry",
|
|
92
|
+
"/app/administration/content-types/metadata",
|
|
93
|
+
"/app/administration/content-types/metadata-key",
|
|
92
94
|
]}/>
|
|
93
95
|
<Route path="/app/administration">
|
|
94
96
|
<AdministrationWorkspaceContextProvider>
|
|
@@ -84,11 +84,6 @@ import MetadataTypesSettingsLocalStorageContextProvider from "../shared/context/
|
|
|
84
84
|
* - Most of the user settings MFA screen. Because of duo constraints.
|
|
85
85
|
*/
|
|
86
86
|
class ExtApp extends Component {
|
|
87
|
-
/*
|
|
88
|
-
* =============================================================
|
|
89
|
-
* View
|
|
90
|
-
* =============================================================
|
|
91
|
-
*/
|
|
92
87
|
render() {
|
|
93
88
|
const accountRecoveryUserService = new ExtAppAccountRecoveryUserService(this.props.port);
|
|
94
89
|
return (
|
|
@@ -221,6 +216,8 @@ class ExtApp extends Component {
|
|
|
221
216
|
"/app/administration/password-policies",
|
|
222
217
|
"/app/administration/user-passphrase-policies",
|
|
223
218
|
"/app/administration/password-expiry",
|
|
219
|
+
"/app/administration/content-types/metadata",
|
|
220
|
+
"/app/administration/content-types/metadata-key",
|
|
224
221
|
]}>
|
|
225
222
|
<AdministrationWorkspaceContextProvider>
|
|
226
223
|
<AdminAccountRecoveryContextProvider>
|
|
@@ -229,9 +226,11 @@ class ExtApp extends Component {
|
|
|
229
226
|
<AdminPasswordPoliciesContextProvider>
|
|
230
227
|
<AdministrationUserPassphrasePoliciesContextProvider>
|
|
231
228
|
<AdministrationPasswordExpiryContextProvider>
|
|
232
|
-
<
|
|
233
|
-
|
|
234
|
-
|
|
229
|
+
<ResourceTypesLocalStorageContextProvider>
|
|
230
|
+
<ManageDialogs/>
|
|
231
|
+
<ManageWorkflows/>
|
|
232
|
+
<AdministrationWorkspace/>
|
|
233
|
+
</ResourceTypesLocalStorageContextProvider>
|
|
235
234
|
</AdministrationPasswordExpiryContextProvider>
|
|
236
235
|
</AdministrationUserPassphrasePoliciesContextProvider>
|
|
237
236
|
</AdminPasswordPoliciesContextProvider>
|
|
@@ -111,6 +111,8 @@ class ExtBootstrapApp extends Component {
|
|
|
111
111
|
"/app/administration/password-policies",
|
|
112
112
|
"/app/administration/user-passphrase-policies",
|
|
113
113
|
"/app/administration/password-expiry",
|
|
114
|
+
"/app/administration/content-types/metadata",
|
|
115
|
+
"/app/administration/content-types/metadata-key",
|
|
114
116
|
"/app/folders/view/:filterByFolderId",
|
|
115
117
|
"/app/groups/view/:selectedGroupId",
|
|
116
118
|
"/app/groups/edit/:selectedGroupId",
|
|
@@ -45,6 +45,10 @@ import DisplayAdministrationUserPassphrasePolicies from "./DisplayAdministration
|
|
|
45
45
|
import DisplayAdministrationPasswordExpiry from "./DisplayAdministrationPasswordExpiry/DisplayAdministrationPasswordExpiry";
|
|
46
46
|
import DisplayHttpError from "../Common/Error/DisplayHttpError/DisplayHttpError";
|
|
47
47
|
import DisplayHealthcheckAdministration from "./DisplayHealthcheckAdministration/DisplayHealthcheckAdministration";
|
|
48
|
+
import DisplayContentTypesEncryptedMetadataAdministration
|
|
49
|
+
from "./DisplayContentTypesEncryptedMetadataAdministration/DisplayContentTypesEncryptedMetadataAdministration";
|
|
50
|
+
import DisplayContentTypesMetadataKeyAdministration
|
|
51
|
+
from "./DisplayContentTypesMetadataKeyAdministration/DisplayContentTypesMetadataKeyAdministration";
|
|
48
52
|
|
|
49
53
|
class AdministrationWorkspace extends Component {
|
|
50
54
|
/**
|
|
@@ -159,6 +163,22 @@ class AdministrationWorkspace extends Component {
|
|
|
159
163
|
return AdministrationWorkspaceMenuTypes.PASSWORD_EXPIRY === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
160
164
|
}
|
|
161
165
|
|
|
166
|
+
/**
|
|
167
|
+
* If content types encrypted metadata is selected
|
|
168
|
+
* @returns {boolean}
|
|
169
|
+
*/
|
|
170
|
+
isContentTypesEncryptedMetadataSelected() {
|
|
171
|
+
return AdministrationWorkspaceMenuTypes.CONTENT_TYPES_ENCRYPTED_METADATA === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* If content types metadata key is selected
|
|
176
|
+
* @returns {boolean}
|
|
177
|
+
*/
|
|
178
|
+
isContentTypesMetadataKeySelected() {
|
|
179
|
+
return AdministrationWorkspaceMenuTypes.CONTENT_TYPES_METADATA_KEY === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
180
|
+
}
|
|
181
|
+
|
|
162
182
|
/**
|
|
163
183
|
* If the page access is denied
|
|
164
184
|
* @returns {boolean}
|
|
@@ -194,8 +214,9 @@ class AdministrationWorkspace extends Component {
|
|
|
194
214
|
</div>
|
|
195
215
|
<div className="header third">
|
|
196
216
|
<div className="col1 main-action-wrapper">
|
|
197
|
-
</div>
|
|
198
|
-
<AdministrationWorkspaceAction/>
|
|
217
|
+
</div>{/* Deprecated */}
|
|
218
|
+
<AdministrationWorkspaceAction/>{/* Deprecated */}
|
|
219
|
+
<div id="administration-actions-content-action"></div>
|
|
199
220
|
</div>
|
|
200
221
|
<div className="panel main">
|
|
201
222
|
<div>
|
|
@@ -260,6 +281,12 @@ class AdministrationWorkspace extends Component {
|
|
|
260
281
|
{this.isHealthcheckSelected() &&
|
|
261
282
|
<DisplayHealthcheckAdministration/>
|
|
262
283
|
}
|
|
284
|
+
{this.isContentTypesEncryptedMetadataSelected() &&
|
|
285
|
+
<DisplayContentTypesEncryptedMetadataAdministration/>
|
|
286
|
+
}
|
|
287
|
+
{this.isContentTypesMetadataKeySelected() &&
|
|
288
|
+
<DisplayContentTypesMetadataKeyAdministration/>
|
|
289
|
+
}
|
|
263
290
|
</div>
|
|
264
291
|
</div>
|
|
265
292
|
</div>
|
|
@@ -156,6 +156,14 @@ class DisplayAdministrationMenu extends React.Component {
|
|
|
156
156
|
return this.canIUse('healthcheckUi');
|
|
157
157
|
}
|
|
158
158
|
|
|
159
|
+
/**
|
|
160
|
+
* Can I use the metadata plugin
|
|
161
|
+
* @returns {boolean}
|
|
162
|
+
*/
|
|
163
|
+
get canIUseMetadata() {
|
|
164
|
+
return this.canIUse('metadata');
|
|
165
|
+
}
|
|
166
|
+
|
|
159
167
|
/**
|
|
160
168
|
* Bind callbacks methods
|
|
161
169
|
*/
|
|
@@ -175,6 +183,8 @@ class DisplayAdministrationMenu extends React.Component {
|
|
|
175
183
|
this.handleUserPassphrasePoliciesClick = this.handleUserPassphrasePoliciesClick.bind(this);
|
|
176
184
|
this.handlePasswordExpirySettingsClick = this.handlePasswordExpirySettingsClick.bind(this);
|
|
177
185
|
this.handleHealthcheckClick = this.handleHealthcheckClick.bind(this);
|
|
186
|
+
this.handleContentTypesEncryptedMetadataClick = this.handleContentTypesEncryptedMetadataClick.bind(this);
|
|
187
|
+
this.handleContentTypesMetadataKeyClick = this.handleContentTypesMetadataKeyClick.bind(this);
|
|
178
188
|
}
|
|
179
189
|
|
|
180
190
|
/**
|
|
@@ -282,6 +292,20 @@ class DisplayAdministrationMenu extends React.Component {
|
|
|
282
292
|
this.props.navigationContext.onGoToAdministrationHealthcheckRequested();
|
|
283
293
|
}
|
|
284
294
|
|
|
295
|
+
/**
|
|
296
|
+
* Handle when the user click on the content types encrypted metadata settings menu
|
|
297
|
+
*/
|
|
298
|
+
handleContentTypesEncryptedMetadataClick() {
|
|
299
|
+
this.props.navigationContext.onGoToAdministrationContentTypesEncryptedMetadataRequested();
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Handle when the user click on the content types metadata key settings menu
|
|
304
|
+
*/
|
|
305
|
+
handleContentTypesMetadataKeyClick() {
|
|
306
|
+
this.props.navigationContext.onGoToAdministrationContentTypesMetadataKeyRequested();
|
|
307
|
+
}
|
|
308
|
+
|
|
285
309
|
/**
|
|
286
310
|
* If MFA menu is selected
|
|
287
311
|
* @returns {boolean}
|
|
@@ -402,6 +426,22 @@ class DisplayAdministrationMenu extends React.Component {
|
|
|
402
426
|
return AdministrationWorkspaceMenuTypes.HEALTHCHECK === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
403
427
|
}
|
|
404
428
|
|
|
429
|
+
/**
|
|
430
|
+
* If content types encrypted metadata menu is selected
|
|
431
|
+
* @returns {boolean}
|
|
432
|
+
*/
|
|
433
|
+
isContentTypesEncryptedMetadataSelected() {
|
|
434
|
+
return AdministrationWorkspaceMenuTypes.CONTENT_TYPES_ENCRYPTED_METADATA === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* If content types metadata key menu is selected
|
|
439
|
+
* @returns {boolean}
|
|
440
|
+
*/
|
|
441
|
+
isContentTypesMetadataKeySelected() {
|
|
442
|
+
return AdministrationWorkspaceMenuTypes.CONTENT_TYPES_METADATA_KEY === this.props.administrationWorkspaceContext.selectedAdministration;
|
|
443
|
+
}
|
|
444
|
+
|
|
405
445
|
/**
|
|
406
446
|
* Render the component
|
|
407
447
|
* @returns {JSX}
|
|
@@ -589,6 +629,32 @@ class DisplayAdministrationMenu extends React.Component {
|
|
|
589
629
|
</div>
|
|
590
630
|
</li>
|
|
591
631
|
}
|
|
632
|
+
{this.canIUseMetadata &&
|
|
633
|
+
<li id="encrypted_metadata_menu">
|
|
634
|
+
<div className={`row ${this.isContentTypesEncryptedMetadataSelected() ? "selected" : ""}`}>
|
|
635
|
+
<div className="main-cell-wrapper">
|
|
636
|
+
<div className="main-cell">
|
|
637
|
+
<button className="link no-border" type="button" onClick={this.handleContentTypesEncryptedMetadataClick}>
|
|
638
|
+
<span><Trans>Encrypted metadata</Trans></span>
|
|
639
|
+
</button>
|
|
640
|
+
</div>
|
|
641
|
+
</div>
|
|
642
|
+
</div>
|
|
643
|
+
</li>
|
|
644
|
+
}
|
|
645
|
+
{this.canIUseMetadata &&
|
|
646
|
+
<li id="metadata_key_menu">
|
|
647
|
+
<div className={`row ${this.isContentTypesMetadataKeySelected() ? "selected" : ""}`}>
|
|
648
|
+
<div className="main-cell-wrapper">
|
|
649
|
+
<div className="main-cell">
|
|
650
|
+
<button className="link no-border" type="button" onClick={this.handleContentTypesMetadataKeyClick}>
|
|
651
|
+
<span><Trans>Metadata key</Trans></span>
|
|
652
|
+
</button>
|
|
653
|
+
</div>
|
|
654
|
+
</div>
|
|
655
|
+
</div>
|
|
656
|
+
</li>
|
|
657
|
+
}
|
|
592
658
|
</ul>
|
|
593
659
|
</div>
|
|
594
660
|
);
|
|
@@ -36,7 +36,9 @@ export function defaultProps(data = {}) {
|
|
|
36
36
|
onGoToAdministrationRbacsRequested: jest.fn(),
|
|
37
37
|
onGoToAdministrationUserPassphrasePoliciesRequested: jest.fn(),
|
|
38
38
|
onGoToAdministrationPasswordExpirySettingsRequested: jest.fn(),
|
|
39
|
-
onGoToAdministrationHealthcheckRequested: jest.fn()
|
|
39
|
+
onGoToAdministrationHealthcheckRequested: jest.fn(),
|
|
40
|
+
onGoToAdministrationContentTypesEncryptedMetadataRequested: jest.fn(),
|
|
41
|
+
onGoToAdministrationContentTypesMetadataKeyRequested: jest.fn(),
|
|
40
42
|
}
|
|
41
43
|
}, data);
|
|
42
44
|
}
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
* Unit tests on DisplayAdministrationMenu in regard of specifications
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
-
|
|
20
19
|
import DisplayAdministrationMenuPage from "./DisplayAdministrationMenu.test.page";
|
|
21
20
|
import {AdministrationWorkspaceMenuTypes} from "../../../contexts/AdministrationWorkspaceContext";
|
|
22
21
|
import {defaultAppContext, defaultProps} from "./DisplayAdministrationMenu.test.data";
|
|
@@ -356,4 +355,64 @@ describe("As AD I can see the administration menu", () => {
|
|
|
356
355
|
expect(page.passwordExpirySettings).toBeNull();
|
|
357
356
|
});
|
|
358
357
|
});
|
|
358
|
+
|
|
359
|
+
describe("As a signed-in administrator on the administration workspace, I can see the Content Type Encrypted metadata option in the left-side bar", () => {
|
|
360
|
+
it('If the feature flag is true, the menu should be visible', async() => {
|
|
361
|
+
expect.assertions(4);
|
|
362
|
+
const props = defaultProps({
|
|
363
|
+
administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.CONTENT_TYPES_ENCRYPTED_METADATA}
|
|
364
|
+
}); // The props to pass
|
|
365
|
+
page = new DisplayAdministrationMenuPage(context, props);
|
|
366
|
+
expect(page.exists()).toBeTruthy();
|
|
367
|
+
await page.gotoContentTypesEncryptedMetadata();
|
|
368
|
+
expect(page.contentTypesEncryptedMetadata).toBeTruthy();
|
|
369
|
+
expect(page.menuSelected).toBe('Encrypted metadata');
|
|
370
|
+
expect(props.navigationContext.onGoToAdministrationContentTypesEncryptedMetadataRequested).toHaveBeenCalled();
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
it('If the feature flag is false, the menu should not be visible', async() => {
|
|
374
|
+
expect.assertions(2);
|
|
375
|
+
const props = defaultProps({
|
|
376
|
+
context: {
|
|
377
|
+
siteSettings: {
|
|
378
|
+
canIUse: feature => feature !== "metadata"
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.CONTENT_TYPES_ENCRYPTED_METADATA}
|
|
382
|
+
}); // The props to pass
|
|
383
|
+
page = new DisplayAdministrationMenuPage(context, props);
|
|
384
|
+
expect(page.exists()).toBeTruthy();
|
|
385
|
+
expect(page.contentTypesEncryptedMetadata).toBeNull();
|
|
386
|
+
});
|
|
387
|
+
});
|
|
388
|
+
|
|
389
|
+
describe("As a signed-in administrator on the administration workspace, I can see the Content Type Metadata key option in the left-side bar", () => {
|
|
390
|
+
it('If the feature flag is true, the menu should be visible', async() => {
|
|
391
|
+
expect.assertions(4);
|
|
392
|
+
const props = defaultProps({
|
|
393
|
+
administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.CONTENT_TYPES_METADATA_KEY}
|
|
394
|
+
}); // The props to pass
|
|
395
|
+
page = new DisplayAdministrationMenuPage(context, props);
|
|
396
|
+
expect(page.exists()).toBeTruthy();
|
|
397
|
+
await page.gotoContentTypesMetadataKey();
|
|
398
|
+
expect(page.contentTypesMetadataKey).toBeTruthy();
|
|
399
|
+
expect(page.menuSelected).toBe('Metadata key');
|
|
400
|
+
expect(props.navigationContext.onGoToAdministrationContentTypesMetadataKeyRequested).toHaveBeenCalled();
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
it('If the feature flag is false, the menu should not be visible', async() => {
|
|
404
|
+
expect.assertions(2);
|
|
405
|
+
const props = defaultProps({
|
|
406
|
+
context: {
|
|
407
|
+
siteSettings: {
|
|
408
|
+
canIUse: feature => feature !== "metadata"
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.CONTENT_TYPES_METADATA_KEY}
|
|
412
|
+
}); // The props to pass
|
|
413
|
+
page = new DisplayAdministrationMenuPage(context, props);
|
|
414
|
+
expect(page.exists()).toBeTruthy();
|
|
415
|
+
expect(page.contentTypesMetadataKey).toBeNull();
|
|
416
|
+
});
|
|
417
|
+
});
|
|
359
418
|
});
|
|
@@ -153,6 +153,20 @@ export default class DisplayAdministrationMenuPage {
|
|
|
153
153
|
return this._page.container.querySelector('#password_expiry_menu .row .main-cell-wrapper .main-cell button');
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
/**
|
|
157
|
+
* Returns the Content Types Encrypted Metadata.
|
|
158
|
+
*/
|
|
159
|
+
get contentTypesEncryptedMetadata() {
|
|
160
|
+
return this._page.container.querySelector('#encrypted_metadata_menu .row .main-cell-wrapper .main-cell button');
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Returns the Content Types Encrypted Metadata.
|
|
165
|
+
*/
|
|
166
|
+
get contentTypesMetadataKey() {
|
|
167
|
+
return this._page.container.querySelector('#metadata_key_menu .row .main-cell-wrapper .main-cell button');
|
|
168
|
+
}
|
|
169
|
+
|
|
156
170
|
/**
|
|
157
171
|
* Returns true if the page object exists in the container
|
|
158
172
|
*/
|
|
@@ -237,4 +251,14 @@ export default class DisplayAdministrationMenuPage {
|
|
|
237
251
|
async gotoPasswordExpirySettings() {
|
|
238
252
|
await this.click(this.passwordExpirySettings);
|
|
239
253
|
}
|
|
254
|
+
|
|
255
|
+
/** Click on the Content Types Encrypted Metadata element */
|
|
256
|
+
async gotoContentTypesEncryptedMetadata() {
|
|
257
|
+
await this.click(this.contentTypesEncryptedMetadata);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/** Click on the Content Types Metadata Key element */
|
|
261
|
+
async gotoContentTypesMetadataKey() {
|
|
262
|
+
await this.click(this.contentTypesMetadataKey);
|
|
263
|
+
}
|
|
240
264
|
}
|