@truedat/dd 5.16.2 → 5.16.4

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 (87) hide show
  1. package/package.json +5 -5
  2. package/src/api.js +6 -0
  3. package/src/components/GrantRequestApprovalResults.js +40 -0
  4. package/src/components/GrantRequestBulkActions.js +136 -0
  5. package/src/components/GrantRequestBulkApprovalForm.js +69 -0
  6. package/src/components/GrantRequestBulkApprovalPopup.js +43 -0
  7. package/src/components/GrantRequestBulkRoleSelector.js +41 -0
  8. package/src/components/GrantRequestRow.js +62 -0
  9. package/src/components/GrantRequestSearchFilters.js +22 -0
  10. package/src/components/GrantRequestsFiltersLoader.js +33 -0
  11. package/src/components/GrantRequestsLabelResults.js +52 -0
  12. package/src/components/GrantRequestsSearch.js +35 -0
  13. package/src/components/GrantRequestsSearchLoader.js +47 -0
  14. package/src/components/GrantRequestsSearchResults.js +156 -0
  15. package/src/components/GrantRequestsSelectedFilters.js +54 -0
  16. package/src/components/GrantRequestsTable.js +131 -0
  17. package/src/components/GrantRoutes.js +34 -16
  18. package/src/components/Grants.js +1 -0
  19. package/src/components/__tests__/GrantRequestApprovalResults.spec.js +30 -0
  20. package/src/components/__tests__/GrantRequestBulkActions.spec.js +31 -0
  21. package/src/components/__tests__/GrantRequestBulkApprovalForm.spec.js +54 -0
  22. package/src/components/__tests__/GrantRequestBulkApprovalPopup.spec.js +17 -0
  23. package/src/components/__tests__/GrantRequestBulkRoleSelector.spec.js +48 -0
  24. package/src/components/__tests__/GrantRequestFiltersLoader.spec.js +20 -0
  25. package/src/components/__tests__/GrantRequestRow.spec.js +95 -0
  26. package/src/components/__tests__/GrantRequestSearchFilters.spec.js +19 -0
  27. package/src/components/__tests__/GrantRequestsLabelResults.spec.js +45 -0
  28. package/src/components/__tests__/GrantRequestsSearch.spec.js +23 -0
  29. package/src/components/__tests__/GrantRequestsSearchLoader.spec.js +15 -0
  30. package/src/components/__tests__/GrantRequestsSearchResults.spec.js +59 -0
  31. package/src/components/__tests__/GrantRequestsTable.spec.js +35 -0
  32. package/src/components/__tests__/__snapshots__/GrantRequestApprovalResults.spec.js.snap +69 -0
  33. package/src/components/__tests__/__snapshots__/GrantRequestBulkActions.spec.js.snap +51 -0
  34. package/src/components/__tests__/__snapshots__/GrantRequestBulkApprovalForm.spec.js.snap +41 -0
  35. package/src/components/__tests__/__snapshots__/GrantRequestBulkApprovalPopup.spec.js.snap +11 -0
  36. package/src/components/__tests__/__snapshots__/GrantRequestBulkRoleSelector.spec.js.snap +56 -0
  37. package/src/components/__tests__/__snapshots__/GrantRequestRow.spec.js.snap +55 -0
  38. package/src/components/__tests__/__snapshots__/GrantRequestSearchFilters.spec.js.snap +47 -0
  39. package/src/components/__tests__/__snapshots__/GrantRequestsLabelResults.spec.js.snap +36 -0
  40. package/src/components/__tests__/__snapshots__/GrantRequestsSearch.spec.js.snap +50 -0
  41. package/src/components/__tests__/__snapshots__/GrantRequestsSearchLoader.spec.js.snap +3 -0
  42. package/src/components/__tests__/__snapshots__/GrantRequestsSearchResults.spec.js.snap +247 -0
  43. package/src/components/__tests__/__snapshots__/GrantRequestsTable.spec.js.snap +19 -0
  44. package/src/components/__tests__/__snapshots__/GrantRoutes.spec.js.snap +0 -4
  45. package/src/components/index.js +8 -0
  46. package/src/hooks/useGrantRequest.js +9 -0
  47. package/src/reducers/__tests__/grantRequestCount.spec.js +38 -0
  48. package/src/reducers/__tests__/grantRequestPermissions.spec.js +66 -0
  49. package/src/reducers/__tests__/grantRequestsActiveFilters.spec.js +90 -0
  50. package/src/reducers/__tests__/grantRequestsFiltersLoading.spec.js +34 -0
  51. package/src/reducers/__tests__/grantRequestsSearch.spec.js +38 -0
  52. package/src/reducers/__tests__/grantRequestsSearchLoading.spec.js +36 -0
  53. package/src/reducers/__tests__/grantRequestsSearchQuery.spec.js +96 -0
  54. package/src/reducers/__tests__/grantRequestsSelectedFilter.spec.js +72 -0
  55. package/src/reducers/grantRequestCount.js +23 -0
  56. package/src/reducers/grantRequestPermissions.js +36 -0
  57. package/src/reducers/grantRequestSearchQuery.js +55 -0
  58. package/src/reducers/grantRequestsActiveFilters.js +56 -0
  59. package/src/reducers/grantRequestsFilters.js +23 -0
  60. package/src/reducers/grantRequestsFiltersLoading.js +14 -0
  61. package/src/reducers/grantRequestsSearch.js +19 -0
  62. package/src/reducers/grantRequestsSearchLoading.js +14 -0
  63. package/src/reducers/grantRequestsSelectedFilter.js +34 -0
  64. package/src/reducers/index.js +22 -0
  65. package/src/reducers/structureRedirect.js +2 -3
  66. package/src/routines.js +13 -0
  67. package/src/sagas/__tests__/fetchGrantRequestsFilters.spec.js +91 -0
  68. package/src/sagas/__tests__/fetchGrantRequestsSearch.spec.js +92 -0
  69. package/src/sagas/fetchGrantRequestsFilters.js +32 -0
  70. package/src/sagas/fetchGrantRequestsSearch.js +30 -0
  71. package/src/sagas/index.js +6 -0
  72. package/src/selectors/__tests__/getGrantRequestsAvailableFilters.spec.js +15 -0
  73. package/src/selectors/__tests__/getGrantRequestsFilterTypes.spec.js +19 -0
  74. package/src/selectors/__tests__/getGrantRequestsSearchColumns.spec.js +30 -0
  75. package/src/selectors/__tests__/getGrantRequestsSearchQuery.spec.js +24 -0
  76. package/src/selectors/__tests__/getGrantRequestsSelectedFilterActiveValues.spec.js +15 -0
  77. package/src/selectors/__tests__/getGrantRequestsSelectedFilterValues.spec.js +15 -0
  78. package/src/selectors/__tests__/getGrantRequestsSelectedFilters.spec.js +13 -0
  79. package/src/selectors/getGrantRequestsAvailableFilters.js +17 -0
  80. package/src/selectors/getGrantRequestsFilterTypes.js +7 -0
  81. package/src/selectors/getGrantRequestsSearchColumns.js +119 -0
  82. package/src/selectors/getGrantRequestsSearchQuery.js +19 -0
  83. package/src/selectors/getGrantRequestsSelectedFilterActiveValues.js +8 -0
  84. package/src/selectors/getGrantRequestsSelectedFilterValues.js +12 -0
  85. package/src/selectors/getGrantRequestsSelectedFilters.js +8 -0
  86. package/src/selectors/index.js +10 -0
  87. package/src/components/GrantRequestApprovals.js +0 -41
@@ -0,0 +1,50 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<GrantRequestsSearch /> matches the latest snapshot 1`] = `
4
+ <div>
5
+ <div
6
+ class="ui action left icon input"
7
+ >
8
+ <input
9
+ placeholder="placeholder"
10
+ type="text"
11
+ value=""
12
+ />
13
+ <i
14
+ aria-hidden="true"
15
+ class="search link icon"
16
+ />
17
+ <div
18
+ aria-expanded="false"
19
+ class="ui button floating labeled scrolling dropdown icon"
20
+ role="listbox"
21
+ tabindex="0"
22
+ >
23
+ <div
24
+ aria-atomic="true"
25
+ aria-live="polite"
26
+ class="divider text"
27
+ role="alert"
28
+ >
29
+ Filters
30
+ </div>
31
+ <i
32
+ aria-hidden="true"
33
+ class="filter icon"
34
+ />
35
+ <div
36
+ class="menu transition"
37
+ >
38
+ <div
39
+ class="item"
40
+ role="option"
41
+ >
42
+ <em>
43
+ (reset filters)
44
+ </em>
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ `;
@@ -0,0 +1,3 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<GrantRequestsSearchLoader /> matches the latest snapshot 1`] = `<div />`;
@@ -0,0 +1,247 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<GrantRequestsSearchResults /> matches the latest snapshot 1`] = `
4
+ <div>
5
+ <div
6
+ class="ui segment"
7
+ >
8
+ <h2
9
+ class="ui header"
10
+ >
11
+ <i
12
+ aria-hidden="true"
13
+ class="key circular icon"
14
+ />
15
+ <div
16
+ class="content"
17
+ >
18
+ header approve
19
+ <div
20
+ class="sub header"
21
+ >
22
+ subheader approve
23
+ </div>
24
+ </div>
25
+ </h2>
26
+ <div
27
+ class="ui bottom attached segment"
28
+ >
29
+ <div
30
+ class="grant-requests-bulk-actions"
31
+ >
32
+ <div
33
+ class="right aligned four wide column"
34
+ >
35
+ <div
36
+ aria-disabled="false"
37
+ aria-expanded="false"
38
+ class="ui selection dropdown grant-requests-bulk-role-selector"
39
+ role="listbox"
40
+ tabindex="0"
41
+ >
42
+ <div
43
+ aria-atomic="true"
44
+ aria-live="polite"
45
+ class="divider default text"
46
+ role="alert"
47
+ >
48
+ select
49
+ </div>
50
+ <i
51
+ aria-hidden="true"
52
+ class="dropdown icon"
53
+ />
54
+ <div
55
+ class="menu transition"
56
+ >
57
+ <div
58
+ aria-checked="false"
59
+ aria-selected="true"
60
+ class="selected item"
61
+ role="option"
62
+ style="pointer-events: all;"
63
+ >
64
+ <span
65
+ class="text"
66
+ >
67
+ bar
68
+ </span>
69
+ </div>
70
+ <div
71
+ aria-checked="false"
72
+ aria-selected="false"
73
+ class="item"
74
+ role="option"
75
+ style="pointer-events: all;"
76
+ >
77
+ <span
78
+ class="text"
79
+ >
80
+ foo
81
+ </span>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <button
86
+ class="ui primary disabled button button icon group-actions"
87
+ disabled=""
88
+ tabindex="-1"
89
+ >
90
+ approve
91
+ </button>
92
+ <button
93
+ class="ui secondary disabled button button icon group-actions"
94
+ disabled=""
95
+ tabindex="-1"
96
+ >
97
+ reject
98
+ </button>
99
+ </div>
100
+ </div>
101
+ <div
102
+ class="ui action left icon input"
103
+ >
104
+ <input
105
+ placeholder="placeholder"
106
+ type="text"
107
+ value=""
108
+ />
109
+ <i
110
+ aria-hidden="true"
111
+ class="search link icon"
112
+ />
113
+ <div
114
+ aria-expanded="false"
115
+ class="ui button floating labeled scrolling dropdown icon"
116
+ role="listbox"
117
+ tabindex="0"
118
+ >
119
+ <div
120
+ aria-atomic="true"
121
+ aria-live="polite"
122
+ class="divider text"
123
+ role="alert"
124
+ >
125
+ Filters
126
+ </div>
127
+ <i
128
+ aria-hidden="true"
129
+ class="filter icon"
130
+ />
131
+ <div
132
+ class="menu transition"
133
+ >
134
+ <div
135
+ class="item"
136
+ role="option"
137
+ >
138
+ <em>
139
+ (reset filters)
140
+ </em>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ <div
146
+ class="selectedFilters"
147
+ />
148
+ <div
149
+ class="dimmable"
150
+ >
151
+ <div
152
+ class="ui inverted dimmer"
153
+ >
154
+ <div
155
+ class="content"
156
+ >
157
+ <div
158
+ class="ui loader"
159
+ />
160
+ </div>
161
+ </div>
162
+ <div
163
+ class="ui label grant-requests-bulk-label-results"
164
+ >
165
+ results
166
+ </div>
167
+ <table
168
+ class="ui sortable table"
169
+ >
170
+ <thead
171
+ class=""
172
+ >
173
+ <tr
174
+ class=""
175
+ >
176
+ <th
177
+ class=""
178
+ >
179
+ user
180
+ </th>
181
+ <th
182
+ class=""
183
+ >
184
+ data_structure
185
+ </th>
186
+ <th
187
+ class="ascending sorted disabled"
188
+ >
189
+ path
190
+ </th>
191
+ <th
192
+ class="two wide"
193
+ >
194
+ inserted_at
195
+ </th>
196
+ </tr>
197
+ </thead>
198
+ <tbody
199
+ class=""
200
+ >
201
+ <tr
202
+ class=""
203
+ >
204
+ <td
205
+ class=""
206
+ >
207
+ null
208
+ </td>
209
+ <td
210
+ class=""
211
+ />
212
+ <td
213
+ class=""
214
+ >
215
+
216
+ </td>
217
+ <td
218
+ class="center aligned"
219
+ />
220
+ </tr>
221
+ <tr
222
+ class=""
223
+ >
224
+ <td
225
+ class=""
226
+ >
227
+ null
228
+ </td>
229
+ <td
230
+ class=""
231
+ />
232
+ <td
233
+ class=""
234
+ >
235
+
236
+ </td>
237
+ <td
238
+ class="center aligned"
239
+ />
240
+ </tr>
241
+ </tbody>
242
+ </table>
243
+ </div>
244
+ </div>
245
+ </div>
246
+ </div>
247
+ `;
@@ -0,0 +1,19 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`<GrantRequestsTable /> matches the latest snapshot 1`] = `
4
+ <div>
5
+ <h4
6
+ class="ui header"
7
+ >
8
+ <i
9
+ aria-hidden="true"
10
+ class="search icon"
11
+ />
12
+ <div
13
+ class="content"
14
+ >
15
+ No grant requests found
16
+ </div>
17
+ </h4>
18
+ </div>
19
+ `;
@@ -22,10 +22,6 @@ exports[`<GrantRoutes /> matches the latest snapshot 1`] = `
22
22
  path="/myGrants"
23
23
  render={[Function]}
24
24
  />
25
- <Route
26
- path="/grantRequestApprovals"
27
- render={[Function]}
28
- />
29
25
  <Route
30
26
  path="/myGrantRequests"
31
27
  render={[Function]}
@@ -2,7 +2,11 @@ import CatalogCustomViewCards from "./CatalogCustomViewCards";
2
2
  import DictionaryRoutes from "./DictionaryRoutes";
3
3
  import FilteredNav from "./FilteredNav";
4
4
  import GrantRoutes from "./GrantRoutes";
5
+ import GrantRequestBulkActions from "./GrantRequestBulkActions";
6
+ import GrantRequestsTable from "./GrantRequestsTable";
7
+ import GrantRequestRow from "./GrantRequestRow";
5
8
  import GrantSelectedFilters from "./GrantSelectedFilters";
9
+ import GrantRequestsSelectedFilters from "./GrantRequestsSelectedFilters";
6
10
  import GrantsTable from "./GrantsTable";
7
11
  import LineageDefs from "./LineageDefs";
8
12
  import LineageDownloadButton from "./LineageDownloadButton";
@@ -56,6 +60,10 @@ export {
56
60
  CatalogCustomViewCards,
57
61
  DictionaryRoutes,
58
62
  FilteredNav,
63
+ GrantRequestBulkActions,
64
+ GrantRequestsTable,
65
+ GrantRequestRow,
66
+ GrantRequestsSelectedFilters,
59
67
  GrantRoutes,
60
68
  GrantSelectedFilters,
61
69
  GrantsTable,
@@ -0,0 +1,9 @@
1
+ import useSWRMutations from "swr/mutation";
2
+ import { apiJsonPost } from "@truedat/core/services/api";
3
+ import { API_GRANT_REQUEST_BULK_APPROVAL } from "../api";
4
+
5
+ export const useGrantRequestBulkApproval = () => {
6
+ return useSWRMutations(API_GRANT_REQUEST_BULK_APPROVAL, (url, { arg }) =>
7
+ apiJsonPost(url, arg)
8
+ );
9
+ };
@@ -0,0 +1,38 @@
1
+ import {
2
+ clearGrantRequestsSearch,
3
+ fetchGrantRequestsSearch,
4
+ } from "../../routines";
5
+ import { grantRequestCount } from "..";
6
+
7
+ const fooState = { foo: "bar" };
8
+
9
+ describe("reducers: grantRequestCount", () => {
10
+ const initialState = 0;
11
+
12
+ it("should provide the initial state", () => {
13
+ expect(grantRequestCount(undefined, {})).toEqual(initialState);
14
+ });
15
+
16
+ it("should handle the clearGrantRequestsSearch.TRIGGER action", () => {
17
+ expect(
18
+ grantRequestCount(fooState, {
19
+ type: clearGrantRequestsSearch.TRIGGER,
20
+ })
21
+ ).toEqual(initialState);
22
+ });
23
+
24
+ it("should handle the fetchGrantRequestsSearch.SUCCESS action", () => {
25
+ const count = 123;
26
+ const headers = { "x-total-count": `${count}` };
27
+ expect(
28
+ grantRequestCount(fooState, {
29
+ type: fetchGrantRequestsSearch.SUCCESS,
30
+ payload: { headers },
31
+ })
32
+ ).toEqual(count);
33
+ });
34
+
35
+ it("should ignore unknown actions", () => {
36
+ expect(grantRequestCount(fooState, { type: "FOO" })).toBe(fooState);
37
+ });
38
+ });
@@ -0,0 +1,66 @@
1
+ import {
2
+ clearGrantRequestsSearch,
3
+ fetchGrantRequestsSearch,
4
+ } from "../../routines";
5
+ import { grantRequestPermissions, grantRequestPermissionsLoading } from "..";
6
+
7
+ const fooState = { foo: "bar" };
8
+
9
+ describe("reducers: grantRequestPermissions", () => {
10
+ const initialState = {};
11
+
12
+ it("should provide the initial state", () => {
13
+ expect(grantRequestPermissions(undefined, {})).toEqual(initialState);
14
+ });
15
+
16
+ it("should handle the clearGrantRequestsSearch.TRIGGER action", () => {
17
+ expect(
18
+ grantRequestPermissions(fooState, {
19
+ type: clearGrantRequestsSearch.TRIGGER,
20
+ })
21
+ ).toEqual(initialState);
22
+ });
23
+
24
+ it("should handle the fetchGrantRequestsSearch.SUCCESS action", () => {
25
+ expect(
26
+ grantRequestPermissions(fooState, {
27
+ type: fetchGrantRequestsSearch.SUCCESS,
28
+ payload: { data: { _permissions: ["foo", "bar"] } },
29
+ })
30
+ ).toMatchObject(["foo", "bar"]);
31
+ });
32
+
33
+ it("should ignore unknown actions", () => {
34
+ expect(grantRequestPermissions(fooState, { type: "FOO" })).toBe(fooState);
35
+ });
36
+ });
37
+
38
+ describe("reducers: grantRequestPermissionsLoading", () => {
39
+ const initialState = false;
40
+
41
+ it("should provide the initial state", () => {
42
+ expect(grantRequestPermissionsLoading(undefined, {})).toEqual(initialState);
43
+ });
44
+
45
+ it("should handle the clearGrantRequestsSearch.TRIGGER action", () => {
46
+ expect(
47
+ grantRequestPermissionsLoading(fooState, {
48
+ type: fetchGrantRequestsSearch.TRIGGER,
49
+ })
50
+ ).toEqual(true);
51
+ });
52
+
53
+ it("should handle the fetchGrantRequestsSearch.FULFILL action", () => {
54
+ expect(
55
+ grantRequestPermissionsLoading(fooState, {
56
+ type: fetchGrantRequestsSearch.FULFILL,
57
+ })
58
+ ).toEqual(false);
59
+ });
60
+
61
+ it("should ignore unknown actions", () => {
62
+ expect(grantRequestPermissionsLoading(fooState, { type: "FOO" })).toBe(
63
+ fooState
64
+ );
65
+ });
66
+ });
@@ -0,0 +1,90 @@
1
+ import { initialState } from "../grantRequestsActiveFilters";
2
+ import {
3
+ addGrantRequestsFilter,
4
+ clearGrantRequestsFilters,
5
+ closeGrantRequestsFilter,
6
+ removeGrantRequestsFilter,
7
+ resetGrantRequestsFilters,
8
+ toggleGrantRequestsFilterValue,
9
+ } from "../../routines";
10
+ import { grantRequestsActiveFilters } from "..";
11
+
12
+ const fooState = { foo: "bar" };
13
+
14
+ describe("reducers: grantRequestsActiveFilters", () => {
15
+ it("should provide the initial state", () => {
16
+ expect(grantRequestsActiveFilters(undefined, {})).toEqual(initialState);
17
+ });
18
+
19
+ it("should handle the clearGrantRequestsFilters.TRIGGER action", () => {
20
+ expect(
21
+ grantRequestsActiveFilters(fooState, {
22
+ type: clearGrantRequestsFilters.TRIGGER,
23
+ })
24
+ ).toEqual(initialState);
25
+ });
26
+
27
+ it("should handle the addGrantRequestsFilter.TRIGGER action", () => {
28
+ const filter = "baz";
29
+ const payload = { filter };
30
+ expect(
31
+ grantRequestsActiveFilters(fooState, {
32
+ type: addGrantRequestsFilter.TRIGGER,
33
+ payload,
34
+ })
35
+ ).toEqual({ ...fooState, baz: [] });
36
+ });
37
+
38
+ it("should handle the closeGrantRequestsFilter.TRIGGER action", () => {
39
+ const foo = ["foo1"];
40
+ const bar = [];
41
+ const state = { foo, bar };
42
+ const payload = { filter: "bar" };
43
+ expect(
44
+ grantRequestsActiveFilters(state, {
45
+ type: closeGrantRequestsFilter.TRIGGER,
46
+ payload,
47
+ })
48
+ ).toEqual({ foo });
49
+ });
50
+
51
+ it("should handle the removeGrantRequestsFilter.TRIGGER action", () => {
52
+ const foo = ["foo1"];
53
+ const bar = [];
54
+ const state = { foo, bar };
55
+ const payload = { filter: "foo" };
56
+ expect(
57
+ grantRequestsActiveFilters(state, {
58
+ type: removeGrantRequestsFilter.TRIGGER,
59
+ payload,
60
+ })
61
+ ).toEqual({ bar });
62
+ });
63
+
64
+ it("should handle the resetGrantRequestsFilters.TRIGGER action", () => {
65
+ expect(
66
+ grantRequestsActiveFilters(fooState, {
67
+ type: resetGrantRequestsFilters.TRIGGER,
68
+ })
69
+ ).toEqual(initialState);
70
+ });
71
+
72
+ it("should handle the toggleGrantRequestsFilterValue.TRIGGER action", () => {
73
+ const foo = ["foo1", "foo2", "foo3"];
74
+ const bar = [];
75
+ const state = { foo, bar };
76
+ const payload = { filter: "foo", value: "foo2" };
77
+ expect(
78
+ grantRequestsActiveFilters(state, {
79
+ type: toggleGrantRequestsFilterValue.TRIGGER,
80
+ payload,
81
+ })
82
+ ).toEqual({ foo: ["foo1", "foo3"], bar });
83
+ });
84
+
85
+ it("should ignore unknown actions", () => {
86
+ expect(grantRequestsActiveFilters(fooState, { type: "FOO" })).toBe(
87
+ fooState
88
+ );
89
+ });
90
+ });
@@ -0,0 +1,34 @@
1
+ import { fetchGrantRequestsFilters } from "../../routines";
2
+ import { grantRequestsFiltersLoading } from "..";
3
+
4
+ const fooState = { foo: "bar" };
5
+
6
+ describe("reducers: grantRequestsFiltersLoading", () => {
7
+ const initialState = false;
8
+
9
+ it("should provide the initial state", () => {
10
+ expect(grantRequestsFiltersLoading(undefined, {})).toEqual(initialState);
11
+ });
12
+
13
+ it("should handle the fetchGrantRequestsFilters.REQUEST action", () => {
14
+ expect(
15
+ grantRequestsFiltersLoading(fooState, {
16
+ type: fetchGrantRequestsFilters.REQUEST,
17
+ })
18
+ ).toEqual(true);
19
+ });
20
+
21
+ it("should handle the fetchGrantRequestsFilters.FULFILL action", () => {
22
+ expect(
23
+ grantRequestsFiltersLoading(fooState, {
24
+ type: fetchGrantRequestsFilters.FULFILL,
25
+ })
26
+ ).toEqual(false);
27
+ });
28
+
29
+ it("should ignore unknown actions", () => {
30
+ expect(grantRequestsFiltersLoading(fooState, { type: "FOO" })).toBe(
31
+ fooState
32
+ );
33
+ });
34
+ });
@@ -0,0 +1,38 @@
1
+ import {
2
+ clearGrantRequestsSearch,
3
+ fetchGrantRequestsSearch,
4
+ } from "../../routines";
5
+ import { grantRequestsSearch } from "..";
6
+
7
+ const fooState = { foo: "bar" };
8
+
9
+ describe("reducers: grantRequestsSearch", () => {
10
+ const initialState = [];
11
+
12
+ it("should provide the initial state", () => {
13
+ expect(grantRequestsSearch(undefined, {})).toEqual(initialState);
14
+ });
15
+
16
+ it("should handle the clearGrantRequestsSearch.TRIGGER action", () => {
17
+ expect(
18
+ grantRequestsSearch(fooState, { type: clearGrantRequestsSearch.TRIGGER })
19
+ ).toEqual(initialState);
20
+ });
21
+
22
+ it("should handle the SUCCESS action", () => {
23
+ const grantRequests = [{ id: 1 }, { id: 2 }];
24
+
25
+ const data = { data: grantRequests };
26
+
27
+ expect(
28
+ grantRequestsSearch(fooState, {
29
+ type: fetchGrantRequestsSearch.SUCCESS,
30
+ payload: { data },
31
+ })
32
+ ).toMatchObject(grantRequests);
33
+ });
34
+
35
+ it("should ignore unknown actions", () => {
36
+ expect(grantRequestsSearch(fooState, { type: "FOO" })).toBe(fooState);
37
+ });
38
+ });
@@ -0,0 +1,36 @@
1
+ import { fetchGrantRequestsSearch } from "../../routines";
2
+ import { grantRequestsSearchLoading } from "..";
3
+
4
+ const fooState = { foo: "bar" };
5
+
6
+ describe("reducers: grantRequestsSearchLoading", () => {
7
+ const initialState = false;
8
+
9
+ it("should provide the initialState", () => {
10
+ expect(grantRequestsSearchLoading(undefined, {})).toEqual(initialState);
11
+ });
12
+
13
+ it("should handle the fetchGrantRequestsSearch.REQUEST action", () => {
14
+ expect(
15
+ grantRequestsSearchLoading(fooState, {
16
+ type: fetchGrantRequestsSearch.REQUEST,
17
+ })
18
+ ).toEqual(fooState);
19
+ });
20
+
21
+ it("should handle the fetchGrantRequestsSearch.SUCCESS action", () => {
22
+ expect(
23
+ grantRequestsSearchLoading(fooState, {
24
+ type: fetchGrantRequestsSearch.SUCCESS,
25
+ })
26
+ ).toEqual(fooState);
27
+ });
28
+
29
+ it("should handle the fetchGrantRequestsSearch.FAILURE action", () => {
30
+ expect(
31
+ grantRequestsSearchLoading(fooState, {
32
+ type: fetchGrantRequestsSearch.FAILURE,
33
+ })
34
+ ).toEqual(fooState);
35
+ });
36
+ });