@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.
- package/package.json +3 -3
- package/src/concepts/api.js +5 -9
- package/src/concepts/components/ConceptEdit.js +23 -1
- package/src/concepts/components/ConceptForm.js +28 -1
- package/src/concepts/components/ConceptRoutes.js +10 -13
- package/src/concepts/components/ConceptsUploadButton.js +14 -5
- package/src/concepts/components/__tests__/ConceptEdit.dateRestrictions.spec.js +84 -0
- package/src/concepts/components/__tests__/ConceptEdit.spec.js +29 -0
- package/src/concepts/components/__tests__/ConceptEditLoader.spec.js +159 -0
- package/src/concepts/components/__tests__/ConceptForm.spec.js +97 -1
- package/src/concepts/components/__tests__/ConceptRoutes.spec.js +11 -6
- package/src/concepts/components/__tests__/__snapshots__/ConceptRoutes.spec.js.snap +8 -11
- package/src/concepts/hooks/useConcepts.js +9 -4
- package/src/concepts/sagas/__tests__/downloadConcepts.spec.js +3 -3
- package/src/concepts/sagas/downloadConcepts.js +2 -2
- package/src/concepts/selectors/__tests__/messages.spec.js +63 -0
- package/src/concepts/selectors/index.js +0 -4
- package/src/concepts/selectors/messages.js +20 -3
- package/src/concepts/components/ConceptsUploadEvents.js +0 -31
- package/src/concepts/components/ConceptsUploadEventsTable.js +0 -183
- package/src/concepts/components/__tests__/ConceptsUploadEventsTable.spec.js +0 -100
- package/src/concepts/components/__tests__/__snapshots__/ConceptsUploadEventsTable.spec.js.snap +0 -115
- package/src/concepts/hooks/useUploadEvents.js +0 -11
- package/src/concepts/selectors/__tests__/getConceptUploadEventColumns.spec.js +0 -20
- package/src/concepts/selectors/getConceptUploadEventColumns.js +0 -66
- 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
|
-
});
|
package/src/concepts/components/__tests__/__snapshots__/ConceptsUploadEventsTable.spec.js.snap
DELETED
|
@@ -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
|
-
}
|