@truedat/core 6.13.7 → 6.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/components/AdminMenu.js +7 -1
- package/src/components/AiMenu.js +7 -6
- package/src/components/CatalogMenu.js +5 -1
- package/src/components/DashboardMenu.js +7 -1
- package/src/components/GlossaryMenu.js +7 -1
- package/src/components/GrantMenu.js +9 -1
- package/src/components/IngestMenu.js +7 -1
- package/src/components/LineageMenu.js +7 -1
- package/src/components/MembersMenu.js +7 -1
- package/src/components/QualityMenu.js +7 -1
- package/src/components/QxMenu.js +7 -1
- package/src/components/SearchMenu.js +9 -3
- package/src/components/TaxonomyMenu.js +7 -1
- package/src/components/__tests__/GrantMenu.spec.js +5 -4
- package/src/components/__tests__/IngestMenu.spec.js +5 -4
- package/src/components/__tests__/LineageMenu.spec.js +7 -6
- package/src/components/__tests__/MembersMenu.spec.js +5 -4
- package/src/components/__tests__/SearchMenu.spec.js +5 -4
- package/src/components/__tests__/TaxonomyMenu.spec.js +6 -5
- package/src/components/__tests__/__snapshots__/GrantMenu.spec.js.snap +112 -62
- package/src/components/__tests__/__snapshots__/IngestMenu.spec.js.snap +39 -14
- package/src/components/__tests__/__snapshots__/LineageMenu.spec.js.snap +60 -20
- package/src/components/__tests__/__snapshots__/MembersMenu.spec.js.snap +60 -21
- package/src/components/__tests__/__snapshots__/SearchMenu.spec.js.snap +39 -14
- package/src/components/__tests__/__snapshots__/TaxonomyMenu.spec.js.snap +39 -14
- package/src/i18n/components/Messages.js +7 -1
- package/src/i18n/components/NewMessage.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truedat/core",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.1",
|
|
4
4
|
"description": "Truedat Web Core",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"jsnext:main": "src/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@testing-library/react": "^12.0.0",
|
|
37
37
|
"@testing-library/react-hooks": "^8.0.1",
|
|
38
38
|
"@testing-library/user-event": "^13.2.1",
|
|
39
|
-
"@truedat/test": "6.
|
|
39
|
+
"@truedat/test": "6.14.1",
|
|
40
40
|
"babel-jest": "^28.1.0",
|
|
41
41
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
|
42
42
|
"babel-plugin-lodash": "^3.3.4",
|
|
@@ -118,5 +118,5 @@
|
|
|
118
118
|
"react-dom": ">= 16.8.6 < 17",
|
|
119
119
|
"semantic-ui-react": ">= 2.0.3 < 2.2"
|
|
120
120
|
},
|
|
121
|
-
"gitHead": "
|
|
121
|
+
"gitHead": "13f8e92c333acf539f9978ea94db03174130cfb0"
|
|
122
122
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import {
|
|
4
5
|
CONFIGURATIONS,
|
|
@@ -28,9 +29,14 @@ const items = [
|
|
|
28
29
|
];
|
|
29
30
|
|
|
30
31
|
export const AdminMenu = () => {
|
|
32
|
+
const { formatMessage } = useIntl();
|
|
33
|
+
const iconAdmin = formatMessage({
|
|
34
|
+
id: "sidemenu.admin.icon",
|
|
35
|
+
defaultMessage: "setting",
|
|
36
|
+
});
|
|
31
37
|
const authorized = useAuthorized();
|
|
32
38
|
return authorized ? (
|
|
33
|
-
<Submenu items={items} icon=
|
|
39
|
+
<Submenu items={items} icon={iconAdmin} name="admin" />
|
|
34
40
|
) : null;
|
|
35
41
|
};
|
|
36
42
|
|
package/src/components/AiMenu.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import {
|
|
4
5
|
ACTIONS,
|
|
@@ -18,13 +19,13 @@ export const ITEMS = [
|
|
|
18
19
|
];
|
|
19
20
|
|
|
20
21
|
export default function AiMenu() {
|
|
22
|
+
const { formatMessage } = useIntl();
|
|
23
|
+
const iconAi = formatMessage({
|
|
24
|
+
id: "sidemenu.ai.icon",
|
|
25
|
+
defaultMessage: "lightbulb outline",
|
|
26
|
+
});
|
|
21
27
|
const authorized = useAuthorized("manage_ai");
|
|
22
|
-
|
|
23
28
|
return authorized ? (
|
|
24
|
-
<Submenu
|
|
25
|
-
items={ITEMS}
|
|
26
|
-
icon="lightbulb outline"
|
|
27
|
-
name="artificial_intelligence"
|
|
28
|
-
/>
|
|
29
|
+
<Submenu items={ITEMS} icon={iconAi} name="artificial_intelligence" />
|
|
29
30
|
) : null;
|
|
30
31
|
}
|
|
@@ -53,6 +53,10 @@ export const CatalogMenu = ({ catalogViewConfigs }) => {
|
|
|
53
53
|
"data_dictionary_structure_notes"
|
|
54
54
|
);
|
|
55
55
|
const { formatMessage } = useIntl();
|
|
56
|
+
const iconCatalog = formatMessage({
|
|
57
|
+
id: "sidemenu.catalog.icon",
|
|
58
|
+
defaultMessage: "block layout",
|
|
59
|
+
});
|
|
56
60
|
const submenuItems = [
|
|
57
61
|
{ name: "structures", routes: [STRUCTURES, SYSTEMS] },
|
|
58
62
|
...catalogViewConfigItems(formatMessage)(catalogViewConfigs),
|
|
@@ -63,7 +67,7 @@ export const CatalogMenu = ({ catalogViewConfigs }) => {
|
|
|
63
67
|
|
|
64
68
|
const authorized = useAuthorized("data_dictionary");
|
|
65
69
|
return authorized ? (
|
|
66
|
-
<Submenu items={submenuItems} icon=
|
|
70
|
+
<Submenu items={submenuItems} icon={iconCatalog} name="catalog" />
|
|
67
71
|
) : null;
|
|
68
72
|
};
|
|
69
73
|
|
|
@@ -2,6 +2,7 @@ import _ from "lodash/fp";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import PropTypes from "prop-types";
|
|
4
4
|
import { connect } from "react-redux";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
5
6
|
import { DASHBOARD } from "@truedat/core/routes";
|
|
6
7
|
import { getDashboardConfig } from "../selectors";
|
|
7
8
|
import { useAuthorized } from "../hooks";
|
|
@@ -10,10 +11,15 @@ import Submenu from "./Submenu";
|
|
|
10
11
|
const items = [{ name: "dashboard", routes: [DASHBOARD] }];
|
|
11
12
|
|
|
12
13
|
export const DashboardMenu = ({ dashboardConfig }) => {
|
|
14
|
+
const { formatMessage } = useIntl();
|
|
15
|
+
const iconDashboards = formatMessage({
|
|
16
|
+
id: "sidemenu.dashboards.icon",
|
|
17
|
+
defaultMessage: "chart line",
|
|
18
|
+
});
|
|
13
19
|
const authorized = useAuthorized("dashboards");
|
|
14
20
|
|
|
15
21
|
return authorized && !_.isEmpty(dashboardConfig) ? (
|
|
16
|
-
<Submenu items={items} icon=
|
|
22
|
+
<Submenu items={items} icon={iconDashboards} name="dashboard" />
|
|
17
23
|
) : (
|
|
18
24
|
false
|
|
19
25
|
);
|
|
@@ -5,6 +5,7 @@ import { connect } from "react-redux";
|
|
|
5
5
|
import PropTypes from "prop-types";
|
|
6
6
|
import { makeGetSubscopes } from "@truedat/df/selectors/subscopedTemplates";
|
|
7
7
|
import { linkTo } from "@truedat/core/routes";
|
|
8
|
+
import { useIntl } from "react-intl";
|
|
8
9
|
import { useAuthorized } from "../hooks";
|
|
9
10
|
import {
|
|
10
11
|
CONCEPTS,
|
|
@@ -54,6 +55,11 @@ const subscopeItems = _.flow(
|
|
|
54
55
|
);
|
|
55
56
|
|
|
56
57
|
export const GlossaryMenu = ({ bgSubscopes }) => {
|
|
58
|
+
const { formatMessage } = useIntl();
|
|
59
|
+
const iconGlossary = formatMessage({
|
|
60
|
+
id: "sidemenu.glossary.icon",
|
|
61
|
+
defaultMessage: "tags",
|
|
62
|
+
});
|
|
57
63
|
const authorized = useAuthorized([
|
|
58
64
|
"business_glossary_view",
|
|
59
65
|
"business_glossary_management",
|
|
@@ -68,7 +74,7 @@ export const GlossaryMenu = ({ bgSubscopes }) => {
|
|
|
68
74
|
<TemplatesLoader />
|
|
69
75
|
<Submenu
|
|
70
76
|
items={items(subscopeItems(bgSubscopes))}
|
|
71
|
-
icon=
|
|
77
|
+
icon={iconGlossary}
|
|
72
78
|
name="glossary"
|
|
73
79
|
/>
|
|
74
80
|
</>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import {
|
|
4
5
|
GRANT_REQUESTS,
|
|
@@ -36,12 +37,19 @@ const items = [
|
|
|
36
37
|
];
|
|
37
38
|
|
|
38
39
|
export const GrantMenu = () => {
|
|
40
|
+
const { formatMessage } = useIntl();
|
|
41
|
+
const iconGrants = formatMessage({
|
|
42
|
+
id: "sidemenu.grants.icon",
|
|
43
|
+
defaultMessage: "key",
|
|
44
|
+
});
|
|
39
45
|
const authorized = useAuthorized([
|
|
40
46
|
"grants",
|
|
41
47
|
"grants_management",
|
|
42
48
|
"grants_visualization",
|
|
43
49
|
]);
|
|
44
|
-
return authorized ?
|
|
50
|
+
return authorized ? (
|
|
51
|
+
<Submenu items={items} icon={iconGrants} name="grants" />
|
|
52
|
+
) : null;
|
|
45
53
|
};
|
|
46
54
|
|
|
47
55
|
export default GrantMenu;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import { INGESTS } from "../routes";
|
|
4
5
|
import Submenu from "./Submenu";
|
|
@@ -6,9 +7,14 @@ import Submenu from "./Submenu";
|
|
|
6
7
|
const items = [{ name: "ingests", routes: [INGESTS] }];
|
|
7
8
|
|
|
8
9
|
export const IngestMenu = () => {
|
|
10
|
+
const { formatMessage } = useIntl();
|
|
11
|
+
const iconIngest = formatMessage({
|
|
12
|
+
id: "sidemenu.ingest.icon",
|
|
13
|
+
defaultMessage: "hdd outline",
|
|
14
|
+
});
|
|
9
15
|
const authorized = useAuthorized("ingests");
|
|
10
16
|
return authorized ? (
|
|
11
|
-
<Submenu items={items} icon=
|
|
17
|
+
<Submenu items={items} icon={iconIngest} name="ingests" />
|
|
12
18
|
) : (
|
|
13
19
|
false
|
|
14
20
|
);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import { GRAPHS, LINEAGE_EVENTS } from "../routes";
|
|
4
5
|
import Submenu from "./Submenu";
|
|
@@ -9,9 +10,14 @@ const items = [
|
|
|
9
10
|
];
|
|
10
11
|
|
|
11
12
|
export const LineageMenu = () => {
|
|
13
|
+
const { formatMessage } = useIntl();
|
|
14
|
+
const iconLineage = formatMessage({
|
|
15
|
+
id: "sidemenu.lineage.icon",
|
|
16
|
+
defaultMessage: "shuffle",
|
|
17
|
+
});
|
|
12
18
|
const authorized = useAuthorized("lineage");
|
|
13
19
|
return authorized ? (
|
|
14
|
-
<Submenu items={items} icon=
|
|
20
|
+
<Submenu items={items} icon={iconLineage} name="lineage" />
|
|
15
21
|
) : (
|
|
16
22
|
false
|
|
17
23
|
);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import { GROUPS, ROLES, USERS } from "../routes";
|
|
4
5
|
import Submenu from "./Submenu";
|
|
@@ -9,9 +10,14 @@ const items = [
|
|
|
9
10
|
];
|
|
10
11
|
|
|
11
12
|
export const MembersMenu = () => {
|
|
13
|
+
const { formatMessage } = useIntl();
|
|
14
|
+
const iconMembers = formatMessage({
|
|
15
|
+
id: "sidemenu.members.icon",
|
|
16
|
+
defaultMessage: "users",
|
|
17
|
+
});
|
|
12
18
|
const authorized = useAuthorized();
|
|
13
19
|
return authorized ? (
|
|
14
|
-
<Submenu items={items} icon=
|
|
20
|
+
<Submenu items={items} icon={iconMembers} name="members" />
|
|
15
21
|
) : null;
|
|
16
22
|
};
|
|
17
23
|
|
|
@@ -2,6 +2,7 @@ import _ from "lodash/fp";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import PropTypes from "prop-types";
|
|
4
4
|
import { connect } from "react-redux";
|
|
5
|
+
import { useIntl } from "react-intl";
|
|
5
6
|
import { useAuthorized } from "../hooks";
|
|
6
7
|
import {
|
|
7
8
|
EXECUTION_GROUPS,
|
|
@@ -40,6 +41,11 @@ export const ITEMS = [
|
|
|
40
41
|
];
|
|
41
42
|
|
|
42
43
|
export const QualityMenu = ({ dashboardConfig }) => {
|
|
44
|
+
const { formatMessage } = useIntl();
|
|
45
|
+
const iconQuality = formatMessage({
|
|
46
|
+
id: "sidemenu.quality.icon",
|
|
47
|
+
defaultMessage: "check square",
|
|
48
|
+
});
|
|
43
49
|
const authorized = useAuthorized(
|
|
44
50
|
"quality",
|
|
45
51
|
"quality_implementation_workflow_management",
|
|
@@ -51,7 +57,7 @@ export const QualityMenu = ({ dashboardConfig }) => {
|
|
|
51
57
|
)(ITEMS);
|
|
52
58
|
|
|
53
59
|
return authorized ? (
|
|
54
|
-
<Submenu items={filteredItems} icon=
|
|
60
|
+
<Submenu items={filteredItems} icon={iconQuality} name="quality" />
|
|
55
61
|
) : null;
|
|
56
62
|
};
|
|
57
63
|
|
package/src/components/QxMenu.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import {
|
|
4
5
|
DATA_VIEWS,
|
|
@@ -26,9 +27,14 @@ export const ITEMS = [
|
|
|
26
27
|
];
|
|
27
28
|
|
|
28
29
|
export default function QxMenu() {
|
|
30
|
+
const { formatMessage } = useIntl();
|
|
31
|
+
const iconQx = formatMessage({
|
|
32
|
+
id: "sidemenu.qx.icon",
|
|
33
|
+
defaultMessage: "weight",
|
|
34
|
+
});
|
|
29
35
|
const authorized = useAuthorized("quality_control");
|
|
30
36
|
|
|
31
37
|
return authorized ? (
|
|
32
|
-
<Submenu items={ITEMS} icon=
|
|
38
|
+
<Submenu items={ITEMS} icon={iconQx} name="quality_experience" />
|
|
33
39
|
) : null;
|
|
34
40
|
}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { SEARCH } from "../routes";
|
|
3
4
|
import Submenu from "./Submenu";
|
|
4
5
|
|
|
5
6
|
const items = [{ name: "search", routes: [SEARCH] }];
|
|
6
7
|
|
|
7
|
-
export const SearchMenu = () =>
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
export const SearchMenu = () => {
|
|
9
|
+
const { formatMessage } = useIntl();
|
|
10
|
+
const iconSearch = formatMessage({
|
|
11
|
+
id: "sidemenu.search.icon",
|
|
12
|
+
defaultMessage: "search",
|
|
13
|
+
});
|
|
14
|
+
return <Submenu items={items} icon={iconSearch} name="search" />;
|
|
15
|
+
};
|
|
10
16
|
|
|
11
17
|
export default SearchMenu;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { useIntl } from "react-intl";
|
|
2
3
|
import { useAuthorized } from "../hooks";
|
|
3
4
|
import { DOMAINS } from "../routes";
|
|
4
5
|
import Submenu from "./Submenu";
|
|
@@ -6,9 +7,14 @@ import Submenu from "./Submenu";
|
|
|
6
7
|
const items = [{ name: "taxonomy", routes: [DOMAINS] }];
|
|
7
8
|
|
|
8
9
|
export const TaxonomyMenu = () => {
|
|
10
|
+
const { formatMessage } = useIntl();
|
|
11
|
+
const iconTaxonomy = formatMessage({
|
|
12
|
+
id: "sidemenu.taxonomy.icon",
|
|
13
|
+
defaultMessage: "sitemap",
|
|
14
|
+
});
|
|
9
15
|
const authorized = useAuthorized(["taxonomy", "taxonomy_membership"]);
|
|
10
16
|
return authorized ? (
|
|
11
|
-
<Submenu items={items} icon=
|
|
17
|
+
<Submenu items={items} icon={iconTaxonomy} name="taxonomy" />
|
|
12
18
|
) : (
|
|
13
19
|
false
|
|
14
20
|
);
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import GrantMenu from "../GrantMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
7
|
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<GrantMenu />", () => {
|
|
11
12
|
it("matches the latest snapshot", () => {
|
|
12
|
-
const
|
|
13
|
-
expect(
|
|
13
|
+
const { container } = render(<GrantMenu />);
|
|
14
|
+
expect(container).toMatchSnapshot();
|
|
14
15
|
});
|
|
15
16
|
});
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
3
|
import { IngestMenu } from "../IngestMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
|
-
useAuthorized: jest.fn(() => true)
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<IngestMenu />", () => {
|
|
@@ -12,7 +13,7 @@ describe("<IngestMenu />", () => {
|
|
|
12
13
|
const props = { location };
|
|
13
14
|
|
|
14
15
|
it("matches the latest snapshot", () => {
|
|
15
|
-
const
|
|
16
|
-
expect(
|
|
16
|
+
const { container } = render(<IngestMenu {...props} />);
|
|
17
|
+
expect(container).toMatchSnapshot();
|
|
17
18
|
});
|
|
18
19
|
});
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import LineageMenu from "../LineageMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
|
-
useAuthorized: jest.fn(() => true)
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<LineageMenu />", () => {
|
|
11
12
|
const props = {
|
|
12
|
-
nested: false
|
|
13
|
+
nested: false,
|
|
13
14
|
};
|
|
14
15
|
it("matches the latest snapshot", () => {
|
|
15
|
-
const
|
|
16
|
-
expect(
|
|
16
|
+
const { container } = render(<LineageMenu {...props} />);
|
|
17
|
+
expect(container).toMatchSnapshot();
|
|
17
18
|
});
|
|
18
19
|
});
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
3
|
import { MembersMenu } from "../MembersMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
|
-
useAuthorized: jest.fn(() => true)
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<MembersMenu />", () => {
|
|
11
12
|
it("matches the latest snapshot", () => {
|
|
12
|
-
const
|
|
13
|
-
expect(
|
|
13
|
+
const { container } = render(<MembersMenu />);
|
|
14
|
+
expect(container).toMatchSnapshot();
|
|
14
15
|
});
|
|
15
16
|
});
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
3
|
import { SearchMenu } from "../SearchMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
|
-
useAuthorized: jest.fn(() => true)
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<SearchMenu />", () => {
|
|
11
12
|
it("matches the latest snapshot", () => {
|
|
12
13
|
const props = { nested: false };
|
|
13
|
-
const
|
|
14
|
-
expect(
|
|
14
|
+
const { container } = render(<SearchMenu {...props} />);
|
|
15
|
+
expect(container).toMatchSnapshot();
|
|
15
16
|
});
|
|
16
17
|
});
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
3
|
+
import TaxonomyMenu from "../TaxonomyMenu";
|
|
4
4
|
|
|
5
5
|
jest.mock("../../hooks", () => ({
|
|
6
6
|
useActiveRoutes: jest.fn(() => true),
|
|
7
|
-
useAuthorized: jest.fn(() => true)
|
|
7
|
+
useAuthorized: jest.fn(() => true),
|
|
8
|
+
useAuthorizedItems: jest.fn((items) => items),
|
|
8
9
|
}));
|
|
9
10
|
|
|
10
11
|
describe("<TaxonomyMenu />", () => {
|
|
11
12
|
it("matches the latest snapshot", () => {
|
|
12
|
-
const
|
|
13
|
-
expect(
|
|
13
|
+
const { container } = render(<TaxonomyMenu />);
|
|
14
|
+
expect(container).toMatchSnapshot();
|
|
14
15
|
});
|
|
15
16
|
});
|
|
@@ -1,66 +1,116 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<GrantMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"/
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/myGrants"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="key large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<div
|
|
27
|
+
class="header selectable"
|
|
28
|
+
>
|
|
29
|
+
Grants
|
|
30
|
+
</div>
|
|
31
|
+
<div
|
|
32
|
+
class="divider"
|
|
33
|
+
/>
|
|
34
|
+
<a
|
|
35
|
+
aria-checked="false"
|
|
36
|
+
class="item"
|
|
37
|
+
href="/myGrants"
|
|
38
|
+
name="my_grants"
|
|
39
|
+
role="option"
|
|
40
|
+
>
|
|
41
|
+
<span
|
|
42
|
+
class="text"
|
|
43
|
+
>
|
|
44
|
+
My Grants
|
|
45
|
+
</span>
|
|
46
|
+
</a>
|
|
47
|
+
<a
|
|
48
|
+
aria-checked="false"
|
|
49
|
+
class="item"
|
|
50
|
+
href="/grants"
|
|
51
|
+
name="grants"
|
|
52
|
+
role="option"
|
|
53
|
+
>
|
|
54
|
+
<span
|
|
55
|
+
class="text"
|
|
56
|
+
>
|
|
57
|
+
Grants
|
|
58
|
+
</span>
|
|
59
|
+
</a>
|
|
60
|
+
<a
|
|
61
|
+
aria-checked="false"
|
|
62
|
+
class="item"
|
|
63
|
+
href="/structuresGrantRequests"
|
|
64
|
+
name="structures_grant_requests"
|
|
65
|
+
role="option"
|
|
66
|
+
>
|
|
67
|
+
<span
|
|
68
|
+
class="text"
|
|
69
|
+
>
|
|
70
|
+
Structures grant requests
|
|
71
|
+
</span>
|
|
72
|
+
</a>
|
|
73
|
+
<a
|
|
74
|
+
aria-checked="false"
|
|
75
|
+
class="item"
|
|
76
|
+
href="/myGrantRequests"
|
|
77
|
+
name="my_grant_requests"
|
|
78
|
+
role="option"
|
|
79
|
+
>
|
|
80
|
+
<span
|
|
81
|
+
class="text"
|
|
82
|
+
>
|
|
83
|
+
My Grant Requests
|
|
84
|
+
</span>
|
|
85
|
+
</a>
|
|
86
|
+
<a
|
|
87
|
+
aria-checked="false"
|
|
88
|
+
class="item"
|
|
89
|
+
href="/grantRequests"
|
|
90
|
+
name="grant_request_approvals"
|
|
91
|
+
role="option"
|
|
92
|
+
>
|
|
93
|
+
<span
|
|
94
|
+
class="text"
|
|
95
|
+
>
|
|
96
|
+
Approve Grant Requests
|
|
97
|
+
</span>
|
|
98
|
+
</a>
|
|
99
|
+
<a
|
|
100
|
+
aria-checked="false"
|
|
101
|
+
class="item"
|
|
102
|
+
href="/grantApprovalRules"
|
|
103
|
+
name="grant_approval_rules"
|
|
104
|
+
role="option"
|
|
105
|
+
>
|
|
106
|
+
<span
|
|
107
|
+
class="text"
|
|
108
|
+
>
|
|
109
|
+
Approval Rules
|
|
110
|
+
</span>
|
|
111
|
+
</a>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
</div>
|
|
66
116
|
`;
|
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<IngestMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/ingests"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="hdd outline large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<a
|
|
27
|
+
aria-checked="false"
|
|
28
|
+
class="item"
|
|
29
|
+
href="/ingests"
|
|
30
|
+
name="ingests"
|
|
31
|
+
role="option"
|
|
32
|
+
>
|
|
33
|
+
<span
|
|
34
|
+
class="text"
|
|
35
|
+
>
|
|
36
|
+
Data Requests
|
|
37
|
+
</span>
|
|
38
|
+
</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
18
43
|
`;
|
|
@@ -1,24 +1,64 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<LineageMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/graphs"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="shuffle large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<div
|
|
27
|
+
class="header selectable"
|
|
28
|
+
>
|
|
29
|
+
Lineage Analysis
|
|
30
|
+
</div>
|
|
31
|
+
<div
|
|
32
|
+
class="divider"
|
|
33
|
+
/>
|
|
34
|
+
<a
|
|
35
|
+
aria-checked="false"
|
|
36
|
+
class="item"
|
|
37
|
+
href="/graphs"
|
|
38
|
+
name="lineage"
|
|
39
|
+
role="option"
|
|
40
|
+
>
|
|
41
|
+
<span
|
|
42
|
+
class="text"
|
|
43
|
+
>
|
|
44
|
+
Lineage Analysis
|
|
45
|
+
</span>
|
|
46
|
+
</a>
|
|
47
|
+
<a
|
|
48
|
+
aria-checked="false"
|
|
49
|
+
class="item"
|
|
50
|
+
href="/lineageEvents"
|
|
51
|
+
name="lineage_events"
|
|
52
|
+
role="option"
|
|
53
|
+
>
|
|
54
|
+
<span
|
|
55
|
+
class="text"
|
|
56
|
+
>
|
|
57
|
+
My graphs
|
|
58
|
+
</span>
|
|
59
|
+
</a>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
24
64
|
`;
|
|
@@ -1,25 +1,64 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<MembersMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/users"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="users large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<div
|
|
27
|
+
class="header selectable"
|
|
28
|
+
>
|
|
29
|
+
Members
|
|
30
|
+
</div>
|
|
31
|
+
<div
|
|
32
|
+
class="divider"
|
|
33
|
+
/>
|
|
34
|
+
<a
|
|
35
|
+
aria-checked="false"
|
|
36
|
+
class="item"
|
|
37
|
+
href="/users"
|
|
38
|
+
name="users"
|
|
39
|
+
role="option"
|
|
40
|
+
>
|
|
41
|
+
<span
|
|
42
|
+
class="text"
|
|
43
|
+
>
|
|
44
|
+
Users
|
|
45
|
+
</span>
|
|
46
|
+
</a>
|
|
47
|
+
<a
|
|
48
|
+
aria-checked="false"
|
|
49
|
+
class="item"
|
|
50
|
+
href="/roles"
|
|
51
|
+
name="roles"
|
|
52
|
+
role="option"
|
|
53
|
+
>
|
|
54
|
+
<span
|
|
55
|
+
class="text"
|
|
56
|
+
>
|
|
57
|
+
Roles
|
|
58
|
+
</span>
|
|
59
|
+
</a>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
25
64
|
`;
|
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<SearchMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/search"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="search large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<a
|
|
27
|
+
aria-checked="false"
|
|
28
|
+
class="item"
|
|
29
|
+
href="/search"
|
|
30
|
+
name="search"
|
|
31
|
+
role="option"
|
|
32
|
+
>
|
|
33
|
+
<span
|
|
34
|
+
class="text"
|
|
35
|
+
>
|
|
36
|
+
Search
|
|
37
|
+
</span>
|
|
38
|
+
</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
18
43
|
`;
|
|
@@ -1,18 +1,43 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
3
|
exports[`<TaxonomyMenu /> matches the latest snapshot 1`] = `
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
<div>
|
|
5
|
+
<div
|
|
6
|
+
class="active"
|
|
7
|
+
>
|
|
8
|
+
<div
|
|
9
|
+
aria-expanded="false"
|
|
10
|
+
class="ui item dropdown active"
|
|
11
|
+
role="listbox"
|
|
12
|
+
tabindex="0"
|
|
13
|
+
>
|
|
14
|
+
<a
|
|
15
|
+
class="ui"
|
|
16
|
+
href="/domains"
|
|
17
|
+
>
|
|
18
|
+
<i
|
|
19
|
+
aria-hidden="true"
|
|
20
|
+
class="sitemap large icon"
|
|
21
|
+
/>
|
|
22
|
+
</a>
|
|
23
|
+
<div
|
|
24
|
+
class="menu transition"
|
|
25
|
+
>
|
|
26
|
+
<a
|
|
27
|
+
aria-checked="false"
|
|
28
|
+
class="item"
|
|
29
|
+
href="/domains"
|
|
30
|
+
name="taxonomy"
|
|
31
|
+
role="option"
|
|
32
|
+
>
|
|
33
|
+
<span
|
|
34
|
+
class="text"
|
|
35
|
+
>
|
|
36
|
+
Taxonomy
|
|
37
|
+
</span>
|
|
38
|
+
</a>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
18
43
|
`;
|
|
@@ -142,7 +142,13 @@ export default function Messages() {
|
|
|
142
142
|
return (
|
|
143
143
|
<Segment>
|
|
144
144
|
<Header as="h2">
|
|
145
|
-
<Icon
|
|
145
|
+
<Icon
|
|
146
|
+
circular
|
|
147
|
+
name={formatMessage({
|
|
148
|
+
id: "i18n.header.icon",
|
|
149
|
+
defaultMessage: "language",
|
|
150
|
+
})}
|
|
151
|
+
/>
|
|
146
152
|
<Header.Content>
|
|
147
153
|
<FormattedMessage id={"i18n.messages.header"} />
|
|
148
154
|
<Header.Subheader>
|
|
@@ -31,7 +31,7 @@ const NewMessage = () => {
|
|
|
31
31
|
<Container text as={Segment}>
|
|
32
32
|
<Header
|
|
33
33
|
as="h2"
|
|
34
|
-
icon="language"
|
|
34
|
+
icon={formatMessage({id: "i18n.header.icon",defaultMessage: "language" })}
|
|
35
35
|
content={formatMessage({ id: "i18n.actions.createMessage" })}
|
|
36
36
|
/>
|
|
37
37
|
<MessageForm onSubmit={onSubmit} />
|