@truedat/bg 8.13.4 → 8.13.6

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 (26) hide show
  1. package/package.json +3 -3
  2. package/src/concepts/api.js +5 -9
  3. package/src/concepts/components/ConceptEdit.js +23 -1
  4. package/src/concepts/components/ConceptForm.js +28 -1
  5. package/src/concepts/components/ConceptRoutes.js +10 -13
  6. package/src/concepts/components/ConceptsUploadButton.js +14 -5
  7. package/src/concepts/components/__tests__/ConceptEdit.dateRestrictions.spec.js +84 -0
  8. package/src/concepts/components/__tests__/ConceptEdit.spec.js +29 -0
  9. package/src/concepts/components/__tests__/ConceptEditLoader.spec.js +159 -0
  10. package/src/concepts/components/__tests__/ConceptForm.spec.js +97 -1
  11. package/src/concepts/components/__tests__/ConceptRoutes.spec.js +11 -6
  12. package/src/concepts/components/__tests__/__snapshots__/ConceptRoutes.spec.js.snap +8 -11
  13. package/src/concepts/hooks/useConcepts.js +9 -4
  14. package/src/concepts/sagas/__tests__/downloadConcepts.spec.js +3 -3
  15. package/src/concepts/sagas/downloadConcepts.js +2 -2
  16. package/src/concepts/selectors/__tests__/messages.spec.js +63 -0
  17. package/src/concepts/selectors/index.js +0 -4
  18. package/src/concepts/selectors/messages.js +20 -3
  19. package/src/concepts/components/ConceptsUploadEvents.js +0 -31
  20. package/src/concepts/components/ConceptsUploadEventsTable.js +0 -183
  21. package/src/concepts/components/__tests__/ConceptsUploadEventsTable.spec.js +0 -100
  22. package/src/concepts/components/__tests__/__snapshots__/ConceptsUploadEventsTable.spec.js.snap +0 -115
  23. package/src/concepts/hooks/useUploadEvents.js +0 -11
  24. package/src/concepts/selectors/__tests__/getConceptUploadEventColumns.spec.js +0 -20
  25. package/src/concepts/selectors/getConceptUploadEventColumns.js +0 -66
  26. package/src/concepts/styles/ConceptsUploadEventColumns.less +0 -24
@@ -1,100 +0,0 @@
1
- import userEvent from "@testing-library/user-event";
2
- import { render, waitForLoad } from "@truedat/test/render";
3
- import ConceptsUploadEventsTable from "../ConceptsUploadEventsTable";
4
-
5
- const events = [
6
- {
7
- file_hash: "99E400B91D164F8F0A39F400CA323C8F",
8
- inserted_at: "2022-04-23T15:53:24.638484Z",
9
- message: null,
10
- response: {
11
- errors: [],
12
- created: [4825521, 4825561, 4825593],
13
- updated: [4825522, 4825562, 4825594],
14
- },
15
- status: "COMPLETED",
16
- task_reference: "0.3225053307.1609564164.100549",
17
- user_id: 467,
18
- },
19
- {
20
- file_hash: "47D90FDF1AD967BD7DBBDAE28664278E",
21
- inserted_at: "2022-04-23T15:14:48.770275Z",
22
- message: null,
23
- response: {
24
- errors: [
25
- {
26
- error_type: "test_field_error",
27
- body: {
28
- message: "concepts.upload.failed.invalid_field_value",
29
- context: {
30
- field: "gdpr",
31
- type: "grpd_template",
32
- row: 4,
33
- error: "Missing value",
34
- },
35
- },
36
- },
37
- {
38
- error_type: "test_forbidden_update",
39
- body: {
40
- message: "concepts.upload.failed.forbidden_update",
41
- context: {
42
- type: "test_template",
43
- row: 2,
44
- domain: "forbidden_domain",
45
- },
46
- },
47
- },
48
- {
49
- error_type: "test_name_not_available",
50
- body: {
51
- message: "concepts.upload.failed.name_not_available",
52
- context: {
53
- type: "test_template",
54
- row: 7,
55
- name: "test_name_not_available",
56
- },
57
- },
58
- },
59
- ],
60
- created: [],
61
- updated: [],
62
- },
63
- status: "COMPLETED",
64
- task_reference: "0.3225053307.1609564162.101463",
65
- user_id: 467,
66
- },
67
- ];
68
-
69
- jest.mock("../../hooks/useUploadEvents.js", () => {
70
- const originalModule = jest.requireActual("../../hooks/useUploadEvents.js");
71
-
72
- return {
73
- __esModule: true,
74
- ...originalModule,
75
- useUploadEvents: jest.fn(() => ({
76
- data: {
77
- data: events,
78
- },
79
- loading: false,
80
- })),
81
- };
82
- });
83
-
84
- describe("<ConceptsUploadEventsTable />", () => {
85
- it("matches the latest snapshot", async () => {
86
- const rendered = render(<ConceptsUploadEventsTable />);
87
- await waitForLoad(rendered);
88
- expect(rendered.container).toMatchSnapshot();
89
- });
90
-
91
- it("toggles row horizontal view when row is clicked", async () => {
92
- const user = userEvent.setup({ delay: null });
93
- const rendered = render(<ConceptsUploadEventsTable />);
94
- await waitForLoad(rendered);
95
- const dataRow = rendered.getAllByRole("row")[1];
96
- expect(dataRow).toHaveClass("contracted");
97
- await user.click(dataRow);
98
- expect(dataRow).toHaveClass("expanded");
99
- });
100
- });
@@ -1,115 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`<ConceptsUploadEventsTable /> matches the latest snapshot 1`] = `
4
- <div>
5
- <table
6
- class="ui selectable sortable table"
7
- >
8
- <thead
9
- class=""
10
- >
11
- <tr
12
- class=""
13
- >
14
- <th
15
- class="two wide"
16
- >
17
- status
18
- </th>
19
- <th
20
- class="two wide"
21
- >
22
- response
23
- </th>
24
- <th
25
- class="two wide"
26
- >
27
- inserted_at
28
- </th>
29
- </tr>
30
- </thead>
31
- <tbody
32
- class=""
33
- >
34
- <tr
35
- class="contracted"
36
- >
37
- <td
38
- class=""
39
- >
40
- concepts.upload.status.completed
41
- </td>
42
- <td
43
- class=""
44
- >
45
- <p>
46
- concepts.upload.success.header
47
- </p>
48
- <ul
49
- class="bulk-upload-error"
50
- />
51
- </td>
52
- <td
53
- class="center aligned"
54
- >
55
- <time
56
- datetime="1650729204638"
57
- >
58
- 2022-04-23 15:53
59
- </time>
60
- </td>
61
- </tr>
62
- <tr
63
- class="contracted"
64
- >
65
- <td
66
- class=""
67
- >
68
- concepts.upload.status.completed
69
- </td>
70
- <td
71
- class=""
72
- >
73
- <p>
74
- concepts.upload.success.header_with_errors
75
- </p>
76
- <ul
77
- class="bulk-upload-error"
78
- >
79
- <li>
80
- concepts.upload.failed.invalid_field_value
81
- </li>
82
- <li>
83
- concepts.upload.failed.forbidden_update
84
- </li>
85
- <li>
86
- concepts.upload.failed.name_not_available
87
- </li>
88
- </ul>
89
- <a
90
- class="alert-exporter-in-table"
91
- download="errors.csv"
92
- href="data:text/csv;charset=utf-8,"RENDEREDMESSAGE","ERROR_TYPE","BODY.MESSAGE","BODY.CONTEXT.FIELD","BODY.CONTEXT.TYPE","BODY.CONTEXT.ROW","BODY.CONTEXT.ERROR","BODY.CONTEXT.DOMAIN","BODY.CONTEXT.NAME"
93
- "concepts.upload.failed.invalid_field_value","test_field_error","concepts.upload.failed.invalid_field_value","gdpr","grpd_template","4","Missing value","",""
94
- "concepts.upload.failed.forbidden_update","test_forbidden_update","concepts.upload.failed.forbidden_update","","test_template","2","","forbidden_domain",""
95
- "concepts.upload.failed.name_not_available","test_name_not_available","concepts.upload.failed.name_not_available","","test_template","7","","","test_name_not_available""
96
- style="float: right;"
97
- target="_self"
98
- >
99
- alert.export.csv
100
- </a>
101
- </td>
102
- <td
103
- class="center aligned"
104
- >
105
- <time
106
- datetime="1650726888770"
107
- >
108
- 2022-04-23 15:14
109
- </time>
110
- </td>
111
- </tr>
112
- </tbody>
113
- </table>
114
- </div>
115
- `;
@@ -1,11 +0,0 @@
1
- import useSWR from "swr";
2
- import { apiJson } from "@truedat/core/services/api";
3
- import { API_BUSINESS_CONCEPT_BULK_UPLOAD } from "../api";
4
-
5
- export const useUploadEvents = () => {
6
- const { data, error, mutate } = useSWR(
7
- API_BUSINESS_CONCEPT_BULK_UPLOAD,
8
- apiJson,
9
- );
10
- return { data: data?.data, error, loading: !error && !data, mutate };
11
- };
@@ -1,20 +0,0 @@
1
- import {
2
- getConceptUploadEventColumns,
3
- defaultConceptsUploadEventColumns,
4
- } from "..";
5
-
6
- describe("selectors: getConceptUploadEventColumns", () => {
7
- it("should return custom conceptsUploadEventColumns when present", () => {
8
- const conceptsUploadEventColumns = [{ name: "test" }];
9
- const res = getConceptUploadEventColumns({
10
- conceptsUploadEventColumns,
11
- });
12
- expect(res).toHaveLength(1);
13
- expect(res).toEqual(conceptsUploadEventColumns);
14
- });
15
-
16
- it("should return default defaultRuleImplementationColumns when no customized", () => {
17
- const res = getConceptUploadEventColumns({});
18
- expect(res).toHaveLength(defaultConceptsUploadEventColumns.length);
19
- });
20
- });
@@ -1,66 +0,0 @@
1
- import _ from "lodash/fp";
2
- import { FormattedMessage } from "react-intl";
3
- import Moment from "react-moment";
4
- import { AlertExporter } from "@truedat/core/components/AlertExporter";
5
-
6
- const bulkUpdateErrors = (response) => {
7
- return _.isEmpty(response) ? (
8
- ""
9
- ) : (
10
- <>
11
- <p>{response.translatedHeader}</p>
12
- <ul className="bulk-upload-error">
13
- {_.map.convert({ cap: false })((translatedError, key) => {
14
- return <li key={`error_${key}`}>{translatedError}</li>;
15
- })(response.translatedErrors)}
16
- </ul>
17
- {_.isEmpty(response.errors) ? null : (
18
- <AlertExporter
19
- className="alert-exporter-in-table"
20
- onClick={(e) => e.stopPropagation()}
21
- {...{
22
- list: response.translatedErrors,
23
- messages: response.errors,
24
- }}
25
- />
26
- )}
27
- </>
28
- );
29
- };
30
-
31
- const dateDecorator = (date) =>
32
- date && <Moment locale="es" date={date} format="YYYY-MM-DD HH:mm" />;
33
-
34
- const statusDecorator = (status) => (
35
- <FormattedMessage id={`concepts.upload.status.${_.toLower(status)}`} />
36
- );
37
-
38
- export const defaultConceptsUploadEventColumns = [
39
- {
40
- name: "filename",
41
- width: 2,
42
- },
43
- {
44
- name: "status",
45
- fieldDecorator: statusDecorator,
46
- width: 2,
47
- },
48
- {
49
- name: "response",
50
- fieldDecorator: bulkUpdateErrors,
51
- width: 2,
52
- },
53
- {
54
- name: "message",
55
- width: 2,
56
- },
57
- {
58
- name: "inserted_at",
59
- fieldDecorator: dateDecorator,
60
- textAlign: "center",
61
- width: 2,
62
- },
63
- ];
64
-
65
- export const getConceptUploadEventColumns = (state) =>
66
- state.conceptsUploadEventColumns ?? defaultConceptsUploadEventColumns;
@@ -1,24 +0,0 @@
1
- .contracted ul.bulk-upload-error {
2
- max-height: 100px;
3
- overflow: hidden;
4
- }
5
-
6
- .contracted ul.bulk-upload-error {
7
- .fade-up();
8
- }
9
-
10
- .fade-up {
11
- background: -webkit-linear-gradient(rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
12
- background-clip: text;
13
- -webkit-background-clip: text;
14
- -webkit-text-fill-color: transparent;
15
- }
16
-
17
- .alert-exporter-in-table {
18
- padding: 3px;
19
- margin: 5px;
20
- &:hover {
21
- padding: 2px;
22
- border: 1px solid blue;
23
- }
24
- }