@truedat/dd 8.11.0 → 8.11.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/package.json +3 -3
- package/src/api/queries.js +4 -0
- package/src/components/GrantRequest.js +74 -8
- package/src/components/GrantRequestCancel.js +3 -0
- package/src/components/GrantRequestHeader.js +45 -14
- package/src/components/GrantRequestsDownloadButton.js +9 -1
- package/src/components/GrantRequestsTable.js +4 -1
- package/src/components/StructureGrantCartCheckout.js +9 -4
- package/src/components/StructureGrantCartUserSelector.js +19 -4
- package/src/components/StructureGrantDropdown.js +29 -3
- package/src/components/StructureGrantListButton.js +3 -1
- package/src/components/StructureGrantSummaryButton.js +8 -4
- package/src/components/__tests__/GrantRequest.spec.js +437 -0
- package/src/components/__tests__/GrantRequestHeader.spec.js +89 -2
- package/src/components/__tests__/GrantRequestsDownloadButton.spec.js +52 -0
- package/src/components/__tests__/GrantRequestsTable.spec.js +18 -0
- package/src/components/__tests__/StructureGrantCartCheckout.spec.js +41 -0
- package/src/components/__tests__/StructureGrantCartUserSelector.spec.js +105 -0
- package/src/components/__tests__/StructureGrantDropdown.spec.js +126 -0
- package/src/components/__tests__/StructureGrantListButton.spec.js +36 -1
- package/src/components/__tests__/StructureGrantSummaryButton.spec.js +89 -1
- package/src/components/__tests__/__snapshots__/GrantRequest.spec.js.snap +28 -0
- package/src/components/__tests__/__snapshots__/GrantRequestHeader.spec.js.snap +5 -0
- package/src/messages/en.js +5 -0
- package/src/messages/es.js +5 -0
- package/src/reducers/__tests__/grantRequestsCart.spec.js +12 -0
- package/src/reducers/grantRequestsCart.js +12 -0
- package/src/sagas/__tests__/createGrantRequestStatus.spec.js +67 -1
- package/src/sagas/__tests__/fetchGrantRequest.spec.js +26 -0
- package/src/sagas/createGrantRequestStatus.js +5 -0
- package/src/sagas/fetchGrantRequest.js +1 -1
- package/src/selectors/__tests__/getGrantRequestsSearchColumns.spec.js +82 -0
- package/src/selectors/getGrantRequestsSearchColumns.js +51 -8
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _ from "lodash/fp";
|
|
2
|
+
import { render } from "@truedat/test/render";
|
|
2
3
|
import {
|
|
3
4
|
defaultGrantRequestsSearchTableColumns,
|
|
4
5
|
getGrantRequestsSearchColumns,
|
|
@@ -27,4 +28,85 @@ describe("selectors: getGrantRequestsSearchColumns", () => {
|
|
|
27
28
|
});
|
|
28
29
|
expect(columns).toStrictEqual(grantRequestsSearchColumns);
|
|
29
30
|
});
|
|
31
|
+
|
|
32
|
+
it("shows user group alias and users icon when hit is for a group", () => {
|
|
33
|
+
const userColumn = _.find({ name: "user" })(
|
|
34
|
+
defaultGrantRequestsSearchTableColumns,
|
|
35
|
+
);
|
|
36
|
+
const grantRequest = {
|
|
37
|
+
user_group: { id: 10, name: "finance", alias: "Fin" },
|
|
38
|
+
};
|
|
39
|
+
const FieldDecorator = userColumn.fieldDecorator;
|
|
40
|
+
const rendered = render(
|
|
41
|
+
<FieldDecorator {...userColumn.fieldSelector(grantRequest)} />,
|
|
42
|
+
);
|
|
43
|
+
expect(rendered.getByText(/fin/i)).toBeInTheDocument();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("shows user group name when alias is empty", () => {
|
|
47
|
+
const userColumn = _.find({ name: "user" })(
|
|
48
|
+
defaultGrantRequestsSearchTableColumns,
|
|
49
|
+
);
|
|
50
|
+
const grantRequest = {
|
|
51
|
+
user_group: { id: 11, name: "legal", alias: "" },
|
|
52
|
+
};
|
|
53
|
+
const FieldDecorator = userColumn.fieldDecorator;
|
|
54
|
+
const rendered = render(
|
|
55
|
+
<FieldDecorator {...userColumn.fieldSelector(grantRequest)} />,
|
|
56
|
+
);
|
|
57
|
+
expect(rendered.getByText(/legal/i)).toBeInTheDocument();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("shows Deleted user when the hit user has empty names", () => {
|
|
61
|
+
const userColumn = _.find({ name: "user" })(
|
|
62
|
+
defaultGrantRequestsSearchTableColumns,
|
|
63
|
+
);
|
|
64
|
+
const grantRequest = {
|
|
65
|
+
user_id: 7,
|
|
66
|
+
user: { email: "", full_name: "", user_name: "" },
|
|
67
|
+
};
|
|
68
|
+
const FieldDecorator = userColumn.fieldDecorator;
|
|
69
|
+
const rendered = render(
|
|
70
|
+
<FieldDecorator {...userColumn.fieldSelector(grantRequest)} />,
|
|
71
|
+
{
|
|
72
|
+
messages: {
|
|
73
|
+
en: {
|
|
74
|
+
"grantRequest.header.user": "User",
|
|
75
|
+
"grantRequest.header.group": "User group",
|
|
76
|
+
"grantRequest.deleted.user": "Deleted user",
|
|
77
|
+
"grantRequest.deleted.group": "Deleted group",
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
);
|
|
82
|
+
expect(rendered.getByText(/^deleted user$/i)).toBeInTheDocument();
|
|
83
|
+
expect(rendered.queryByText(/^deleted group$/i)).not.toBeInTheDocument();
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it("shows Deleted group when the hit has user_group_id and no user_group", () => {
|
|
87
|
+
const userColumn = _.find({ name: "user" })(
|
|
88
|
+
defaultGrantRequestsSearchTableColumns,
|
|
89
|
+
);
|
|
90
|
+
const grantRequest = {
|
|
91
|
+
user_group_id: 10,
|
|
92
|
+
user_group: null,
|
|
93
|
+
user: { email: "", full_name: "", user_name: "" },
|
|
94
|
+
};
|
|
95
|
+
const FieldDecorator = userColumn.fieldDecorator;
|
|
96
|
+
const rendered = render(
|
|
97
|
+
<FieldDecorator {...userColumn.fieldSelector(grantRequest)} />,
|
|
98
|
+
{
|
|
99
|
+
messages: {
|
|
100
|
+
en: {
|
|
101
|
+
"grantRequest.header.user": "User",
|
|
102
|
+
"grantRequest.header.group": "User group",
|
|
103
|
+
"grantRequest.deleted.user": "Deleted user",
|
|
104
|
+
"grantRequest.deleted.group": "Deleted group",
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
);
|
|
109
|
+
expect(rendered.getByText(/^deleted group$/i)).toBeInTheDocument();
|
|
110
|
+
expect(rendered.queryByText(/^deleted user$/i)).not.toBeInTheDocument();
|
|
111
|
+
});
|
|
30
112
|
});
|
|
@@ -7,18 +7,58 @@ import { useIntl } from "react-intl";
|
|
|
7
7
|
import PropTypes from "prop-types";
|
|
8
8
|
import Moment from "react-moment";
|
|
9
9
|
|
|
10
|
-
export const UserDecorator = ({ user }) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
export const UserDecorator = ({ user, user_group, user_id, user_group_id }) => {
|
|
11
|
+
const { formatMessage } = useIntl();
|
|
12
|
+
const userGroupText = user_group
|
|
13
|
+
? _.isEmpty(user_group.alias)
|
|
14
|
+
? user_group.name
|
|
15
|
+
: user_group.alias
|
|
16
|
+
: undefined;
|
|
17
|
+
|
|
18
|
+
if (userGroupText) {
|
|
19
|
+
return (
|
|
20
|
+
<Header as="h4">
|
|
21
|
+
<Header.Content>{userGroupText}</Header.Content>
|
|
22
|
+
</Header>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (user_group_id) {
|
|
27
|
+
return (
|
|
28
|
+
<Header as="h4">
|
|
29
|
+
<Header.Content>
|
|
30
|
+
{formatMessage({ id: "grantRequest.deleted.group" })}
|
|
31
|
+
</Header.Content>
|
|
32
|
+
</Header>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!_.isEmpty(user?.full_name)) {
|
|
37
|
+
return (
|
|
38
|
+
<Header as="h4">
|
|
39
|
+
<Header.Content>{user.full_name}</Header.Content>
|
|
40
|
+
</Header>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (user_id || user) {
|
|
45
|
+
return (
|
|
46
|
+
<Header as="h4">
|
|
47
|
+
<Header.Content>
|
|
48
|
+
{formatMessage({ id: "grantRequest.deleted.user" })}
|
|
49
|
+
</Header.Content>
|
|
50
|
+
</Header>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return "null";
|
|
18
55
|
};
|
|
19
56
|
|
|
20
57
|
UserDecorator.propTypes = {
|
|
21
58
|
user: PropTypes.object,
|
|
59
|
+
user_group: PropTypes.object,
|
|
60
|
+
user_id: PropTypes.number,
|
|
61
|
+
user_group_id: PropTypes.number,
|
|
22
62
|
};
|
|
23
63
|
|
|
24
64
|
export const PathDecorator = ({ data_structure_version }) => {
|
|
@@ -102,6 +142,9 @@ export const defaultGrantRequestsSearchTableColumns = [
|
|
|
102
142
|
sort: { name: "user.user_name" },
|
|
103
143
|
fieldSelector: (grantRequest) => ({
|
|
104
144
|
user: grantRequest?.user,
|
|
145
|
+
user_group: grantRequest?.user_group,
|
|
146
|
+
user_id: grantRequest?.user_id,
|
|
147
|
+
user_group_id: grantRequest?.user_group_id,
|
|
105
148
|
}),
|
|
106
149
|
fieldDecorator: UserDecorator,
|
|
107
150
|
},
|