@truedat/bg 8.6.7 → 8.7.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.
Files changed (138) hide show
  1. package/package.json +3 -3
  2. package/src/concepts/api.js +3 -2
  3. package/src/concepts/components/Concept.js +7 -7
  4. package/src/concepts/components/ConceptActions.js +1 -1
  5. package/src/concepts/components/ConceptCompleteness.js +6 -6
  6. package/src/concepts/components/ConceptCreate.js +17 -8
  7. package/src/concepts/components/ConceptCrumbs.js +1 -1
  8. package/src/concepts/components/ConceptDetails.js +1 -1
  9. package/src/concepts/components/ConceptEdit.js +8 -4
  10. package/src/concepts/components/ConceptForm.js +4 -4
  11. package/src/concepts/components/ConceptHeader.js +2 -2
  12. package/src/concepts/components/ConceptLinksDropdownSelector.js +2 -2
  13. package/src/concepts/components/ConceptLinksUploadButton.js +1 -1
  14. package/src/concepts/components/ConceptLoader.js +1 -1
  15. package/src/concepts/components/ConceptRoutes.js +7 -5
  16. package/src/concepts/components/ConceptSubscription.js +2 -2
  17. package/src/concepts/components/ConceptSuggestions.js +40 -43
  18. package/src/concepts/components/ConceptTabs.js +12 -12
  19. package/src/concepts/components/ConceptsActions.js +1 -3
  20. package/src/concepts/components/ConceptsBulkUpdate.js +2 -2
  21. package/src/concepts/components/ConceptsLinksManagement.js +6 -6
  22. package/src/concepts/components/ConceptsTable.js +1 -1
  23. package/src/concepts/components/ConceptsUpdateButton.js +1 -1
  24. package/src/concepts/components/ConceptsUploadButton.js +27 -22
  25. package/src/concepts/components/ConceptsUploadEventsTable.js +9 -6
  26. package/src/concepts/components/EventRow.js +7 -3
  27. package/src/concepts/components/SharedToForm.js +4 -1
  28. package/src/concepts/components/__tests__/Concept.spec.js +2 -2
  29. package/src/concepts/components/__tests__/ConceptArchiveRow.spec.js +1 -1
  30. package/src/concepts/components/__tests__/ConceptCompleteness.spec.js +1 -1
  31. package/src/concepts/components/__tests__/ConceptContext.spec.js +3 -3
  32. package/src/concepts/components/__tests__/ConceptDeleteModalBody.spec.js +6 -6
  33. package/src/concepts/components/__tests__/ConceptEdit.spec.js +4 -4
  34. package/src/concepts/components/__tests__/ConceptForm.spec.js +4 -4
  35. package/src/concepts/components/__tests__/ConceptHeader.spec.js +3 -3
  36. package/src/concepts/components/__tests__/ConceptLinksManagement.spec.js +2 -2
  37. package/src/concepts/components/__tests__/ConceptLinksUploadButton.spec.js +1 -1
  38. package/src/concepts/components/__tests__/ConceptManageDomainPopup.spec.js +10 -10
  39. package/src/concepts/components/__tests__/ConceptRoutes.spec.js +3 -3
  40. package/src/concepts/components/__tests__/ConceptRow.spec.js +2 -2
  41. package/src/concepts/components/__tests__/ConceptSubscription.spec.js +1 -1
  42. package/src/concepts/components/__tests__/ConceptSuggestions.spec.js +60 -48
  43. package/src/concepts/components/__tests__/ConceptTabPane.spec.js +1 -1
  44. package/src/concepts/components/__tests__/ConceptTabs.spec.js +10 -4
  45. package/src/concepts/components/__tests__/Concepts.spec.js +1 -1
  46. package/src/concepts/components/__tests__/ConceptsActions.spec.js +1 -1
  47. package/src/concepts/components/__tests__/ConceptsBulkUpdate.spec.js +3 -3
  48. package/src/concepts/components/__tests__/ConceptsLabelResults.spec.js +1 -1
  49. package/src/concepts/components/__tests__/ConceptsPanel.spec.js +1 -1
  50. package/src/concepts/components/__tests__/ConceptsTable.spec.js +16 -16
  51. package/src/concepts/components/__tests__/ConceptsUpdateButton.spec.js +2 -2
  52. package/src/concepts/components/__tests__/ConceptsUploadButton.spec.js +3 -3
  53. package/src/concepts/components/__tests__/Events.spec.js +6 -4
  54. package/src/concepts/components/__tests__/SharedToDomains.spec.js +1 -1
  55. package/src/concepts/components/__tests__/SharedToDomainsPopup.spec.js +5 -5
  56. package/src/concepts/components/__tests__/SharedToForm.spec.js +4 -4
  57. package/src/concepts/constants/mappings.js +6 -6
  58. package/src/concepts/hooks/useConcepts.js +6 -6
  59. package/src/concepts/hooks/useUploadEvents.js +1 -1
  60. package/src/concepts/reducers/__tests__/bulkUpdateLoading.spec.js +2 -2
  61. package/src/concepts/reducers/__tests__/concept.spec.js +7 -7
  62. package/src/concepts/reducers/__tests__/conceptActions.spec.js +5 -5
  63. package/src/concepts/reducers/__tests__/conceptArchive.spec.js +2 -2
  64. package/src/concepts/reducers/__tests__/conceptArchiveLoading.spec.js +2 -2
  65. package/src/concepts/reducers/__tests__/conceptLoading.spec.js +1 -1
  66. package/src/concepts/reducers/__tests__/conceptPermissions.spec.js +7 -7
  67. package/src/concepts/reducers/__tests__/conceptRedirect.spec.js +17 -17
  68. package/src/concepts/reducers/__tests__/conceptUpdating.spec.js +2 -2
  69. package/src/concepts/reducers/__tests__/conceptsDownloading.spec.js +2 -2
  70. package/src/concepts/reducers/__tests__/savingSharedTo.spec.js +1 -1
  71. package/src/concepts/reducers/__tests__/sharedToDomains.spec.js +6 -6
  72. package/src/concepts/reducers/conceptArchive.js +1 -1
  73. package/src/concepts/reducers/conceptRedirect.js +2 -6
  74. package/src/concepts/relations/components/ConceptImplementationLinks.js +5 -5
  75. package/src/concepts/relations/components/ConceptLinkActions.js +3 -1
  76. package/src/concepts/relations/components/ConceptLinksApprovalResults.js +2 -1
  77. package/src/concepts/relations/components/ConceptLinksApprovals.js +4 -4
  78. package/src/concepts/relations/components/ConceptLinkstRequestGrantButton.js +2 -2
  79. package/src/concepts/relations/components/ConceptRelationForm.js +2 -2
  80. package/src/concepts/relations/components/ConceptRelationRow.js +2 -2
  81. package/src/concepts/relations/components/ConceptRelations.js +19 -33
  82. package/src/concepts/relations/components/ConceptRelationsRoutes.js +3 -3
  83. package/src/concepts/relations/components/ConceptRelationsSummary.js +2 -2
  84. package/src/concepts/relations/components/ConceptSelector.js +4 -4
  85. package/src/concepts/relations/components/ConceptStructureLinks.js +1 -1
  86. package/src/concepts/relations/components/SliderWithFilter.js +20 -7
  87. package/src/concepts/relations/components/__tests__/ConceptImplementationLinks.spec.js +0 -1
  88. package/src/concepts/relations/components/__tests__/ConceptLinkActions.spec.js +41 -10
  89. package/src/concepts/relations/components/__tests__/ConceptLinksActions.spec.js +5 -5
  90. package/src/concepts/relations/components/__tests__/ConceptLinksApprovalResults.spec.js +1 -1
  91. package/src/concepts/relations/components/__tests__/ConceptLinksApprovals.spec.js +1 -1
  92. package/src/concepts/relations/components/__tests__/ConceptLinksApprovalsLabelResults.spec.js +1 -1
  93. package/src/concepts/relations/components/__tests__/ConceptLinksApprovalsRow.spec.js +5 -5
  94. package/src/concepts/relations/components/__tests__/ConceptLinksApprovalsTable.spec.js +1 -1
  95. package/src/concepts/relations/components/__tests__/ConceptLinkstRequestGrantButton.spec.js +10 -5
  96. package/src/concepts/relations/components/__tests__/ConceptRelationForm.spec.js +4 -4
  97. package/src/concepts/relations/components/__tests__/ConceptRelations.spec.js +1 -1
  98. package/src/concepts/relations/components/__tests__/ConceptRelationsRoutes.spec.js +1 -1
  99. package/src/concepts/relations/components/__tests__/ConceptSelector.spec.js +10 -10
  100. package/src/concepts/relations/components/__tests__/ConceptStructureLinks.spec.js +3 -7
  101. package/src/concepts/relations/components/__tests__/SliderWithFilter.spec.js +6 -8
  102. package/src/concepts/relations/hooks/useLinks.js +3 -3
  103. package/src/concepts/relations/sagas/linkConcept.js +1 -1
  104. package/src/concepts/relations/selectors/__tests__/getBusinessConceptsLinksToImplementationsColumns.spec.js +1 -1
  105. package/src/concepts/relations/selectors/getBusinessConceptsLinksToImplementationsColumns.js +1 -1
  106. package/src/concepts/relations/selectors/getConceptImplementationLinks.js +4 -4
  107. package/src/concepts/relations/selectors/getConceptLinks.js +7 -7
  108. package/src/concepts/relations/selectors/getConceptRelations.js +9 -9
  109. package/src/concepts/relations/selectors/getLinksSearchColumns.js +3 -3
  110. package/src/concepts/sagas/bulkUpdate.js +1 -1
  111. package/src/concepts/selectors/__tests__/getConceptDomainPath.spec.js +1 -1
  112. package/src/concepts/selectors/getConceptColumns.js +1 -1
  113. package/src/concepts/selectors/getConceptDomainPath.js +1 -1
  114. package/src/concepts/selectors/getConceptUploadEventColumns.js +1 -1
  115. package/src/concepts/selectors/getConceptVersionPath.js +1 -1
  116. package/src/concepts/selectors/getTemplateFields.js +1 -1
  117. package/src/concepts/selectors/getTemplateGroups.js +1 -1
  118. package/src/hooks/useDomains.js +2 -2
  119. package/src/messages/index.js +1 -1
  120. package/src/taxonomy/components/DomainActions.js +4 -4
  121. package/src/taxonomy/components/DomainCards.js +3 -3
  122. package/src/taxonomy/components/DomainContent.js +1 -1
  123. package/src/taxonomy/components/DomainForm.js +6 -6
  124. package/src/taxonomy/components/DomainImplementations.js +2 -3
  125. package/src/taxonomy/components/DomainTabs.js +2 -2
  126. package/src/taxonomy/components/__tests__/Domain.spec.js +6 -6
  127. package/src/taxonomy/components/__tests__/DomainCards.spec.js +1 -1
  128. package/src/taxonomy/components/__tests__/DomainContent.spec.js +10 -10
  129. package/src/taxonomy/components/__tests__/DomainForm.spec.js +5 -5
  130. package/src/taxonomy/components/__tests__/DomainImplmentation.spec.js +3 -3
  131. package/src/taxonomy/components/__tests__/DomainRoutes.spec.js +1 -1
  132. package/src/taxonomy/components/__tests__/DomainStructures.spec.js +5 -3
  133. package/src/taxonomy/components/__tests__/DomainTabs.spec.js +7 -7
  134. package/src/taxonomy/components/__tests__/Domains.spec.js +8 -8
  135. package/src/taxonomy/components/__tests__/DomainsActions.spec.js +1 -1
  136. package/src/taxonomy/selectors/__tests__/getVisibleDomains.spec.js +4 -4
  137. package/src/taxonomy/selectors/getDomainsConcept.js +9 -9
  138. package/src/taxonomy/selectors/index.js +8 -8
@@ -2,13 +2,14 @@ import PropTypes from "prop-types";
2
2
  import { Button } from "semantic-ui-react";
3
3
  import { FormattedMessage, useIntl } from "react-intl";
4
4
  import { UploadModal } from "@truedat/core/components";
5
- import { useConceptsUpload } from "../hooks/useConcepts";
6
5
  import { useWebContext } from "@truedat/core/webContext";
6
+ import { useConceptsUpload } from "../hooks/useConcepts";
7
7
  import { getUploadAlertMessage } from "../selectors/messages";
8
8
 
9
9
  export const ConceptsUploadButton = ({ canAutoPublish }) => {
10
10
  const { formatMessage, locale } = useIntl();
11
- const { trigger: triggerUpload, isMutating: conceptsLoading } = useConceptsUpload();
11
+ const { trigger: triggerUpload, isMutating: conceptsLoading } =
12
+ useConceptsUpload();
12
13
  const { setAlertMessage } = useWebContext();
13
14
 
14
15
  const extraAction = {
@@ -18,18 +19,20 @@ export const ConceptsUploadButton = ({ canAutoPublish }) => {
18
19
  onClick: (data) => {
19
20
  data.append("auto_publish", canAutoPublish);
20
21
  data.append("lang", locale);
21
- triggerUpload(data).then(({ status, data }) => {
22
- const alertMessage = getUploadAlertMessage({ status, data });
23
- setAlertMessage(alertMessage);
24
- }).catch((error) => {
25
- if (error.response) {
26
- const { status, data } = error.response;
22
+ triggerUpload(data)
23
+ .then(({ status, data }) => {
27
24
  const alertMessage = getUploadAlertMessage({ status, data });
28
25
  setAlertMessage(alertMessage);
29
- } else {
30
- setAlertMessage({ error: true, content: error.message });
31
- }
32
- });
26
+ })
27
+ .catch((error) => {
28
+ if (error.response) {
29
+ const { status, data } = error.response;
30
+ const alertMessage = getUploadAlertMessage({ status, data });
31
+ setAlertMessage(alertMessage);
32
+ } else {
33
+ setAlertMessage({ error: true, content: error.message });
34
+ }
35
+ });
33
36
  },
34
37
  };
35
38
  return (
@@ -55,18 +58,20 @@ export const ConceptsUploadButton = ({ canAutoPublish }) => {
55
58
  }
56
59
  param="business_concepts"
57
60
  handleSubmit={(data) => {
58
- triggerUpload(data).then(({ status, data }) => {
59
- const alertMessage = getUploadAlertMessage({ status, data });
60
- setAlertMessage(alertMessage);
61
- }).catch((error) => {
62
- if (error.response) {
63
- const { status, data } = error.response;
61
+ triggerUpload(data)
62
+ .then(({ status, data }) => {
64
63
  const alertMessage = getUploadAlertMessage({ status, data });
65
64
  setAlertMessage(alertMessage);
66
- } else {
67
- setAlertMessage(error.message);
68
- }
69
- });
65
+ })
66
+ .catch((error) => {
67
+ if (error.response) {
68
+ const { status, data } = error.response;
69
+ const alertMessage = getUploadAlertMessage({ status, data });
70
+ setAlertMessage(alertMessage);
71
+ } else {
72
+ setAlertMessage(error.message);
73
+ }
74
+ });
70
75
  }}
71
76
  />
72
77
  );
@@ -12,7 +12,9 @@ import "../styles/conceptsUploadEventColumns.less";
12
12
 
13
13
  const getColumnsWithData = (conceptsResults, columns) =>
14
14
  _.filter((column) =>
15
- _.any(_.flow(columnDecorator(column), _.negate(_.isEmpty)))(conceptsResults)
15
+ _.any(_.flow(columnDecorator(column), _.negate(_.isEmpty)))(
16
+ conceptsResults,
17
+ ),
16
18
  )(columns);
17
19
 
18
20
  const messagesImp = (data) => {
@@ -63,17 +65,18 @@ const ConceptsUploadEventsTable = ({ getColumns }) => {
63
65
  count_created: event.response.created?.length ?? 0,
64
66
  count_updated: event.response.updated?.length ?? 0,
65
67
  count_errors: event.response.errors?.length ?? 0,
66
- }
68
+ },
67
69
  )
68
70
  : "";
69
71
 
70
72
  const translatedErrors = _.map((error) =>
71
73
  formatMessage(
72
74
  { id: error.id ?? "unknown_error" },
73
- error.context ?? {}
74
- )
75
+ error.context ?? {},
76
+ ),
75
77
  )(messagesImp(event.response));
76
78
 
79
+ // eslint-disable-next-line fp/no-mutation
77
80
  acc[eventKey] = {
78
81
  ...event,
79
82
  response: {
@@ -87,7 +90,7 @@ const ConceptsUploadEventsTable = ({ getColumns }) => {
87
90
  return acc;
88
91
  },
89
92
  {},
90
- data.data
93
+ data.data,
91
94
  )
92
95
  : [];
93
96
 
@@ -160,7 +163,7 @@ const ConceptsUploadEventsTable = ({ getColumns }) => {
160
163
  )}
161
164
  </Table.Row>
162
165
  ),
163
- Object.keys(events)
166
+ Object.keys(events),
164
167
  )}
165
168
  </Table.Body>
166
169
  </Table>
@@ -15,7 +15,11 @@ export const EventRow = ({ user, user_name, event, ts, payload }) => {
15
15
  <Feed.Summary>
16
16
  <Feed.User>{userName}</Feed.User>{" "}
17
17
  {formatMessage({ id: `concept.events.${event}` })}{" "}
18
- {eventVia ? <span className="audit-event-via">{formatMessage({ id: `audit.events.via.${eventVia}` })}</span> : null}{" "}
18
+ {eventVia ? (
19
+ <span className="audit-event-via">
20
+ {formatMessage({ id: `audit.events.via.${eventVia}` })}
21
+ </span>
22
+ ) : null}{" "}
19
23
  <Feed.Date>
20
24
  <Moment locale={locale} date={ts} format="YYYY-MM-DD HH:mm" />
21
25
  </Feed.Date>
@@ -27,10 +31,10 @@ export const EventRow = ({ user, user_name, event, ts, payload }) => {
27
31
  text
28
32
  content={formatMessage(
29
33
  { id: `concept.events.extra.${msg_key}` },
30
- msg_params
34
+ msg_params,
31
35
  )}
32
36
  />
33
- ) : null
37
+ ) : null,
34
38
  )}
35
39
  </Feed.Content>
36
40
  </Feed.Event>
@@ -22,7 +22,10 @@ export const SharedToForm = ({ id, saveSharedTo, saving, sharedTo }) => {
22
22
 
23
23
  return (
24
24
  <Container style={{ width: "400px" }}>
25
- <Header as="h2" content={formatMessage({ id: "concept.sharedTo.header" })} />
25
+ <Header
26
+ as="h2"
27
+ content={formatMessage({ id: "concept.sharedTo.header" })}
28
+ />
26
29
  <Form loading={loading} onSubmit={handleSubmit(onSubmit)}>
27
30
  <Controller
28
31
  control={control}
@@ -122,7 +122,7 @@ describe("<Concept />", () => {
122
122
  <Concept {...props} />
123
123
  </ConceptContextProvider>
124
124
  </LangProviderWrapper>,
125
- renderOpts
125
+ renderOpts,
126
126
  );
127
127
  await waitForLoad(rendered);
128
128
  expect(rendered.container).toMatchSnapshot();
@@ -138,7 +138,7 @@ describe("<Concept />", () => {
138
138
  <Concept {...props} />
139
139
  </ConceptContextProvider>
140
140
  </LangProviderWrapper>,
141
- renderOpts
141
+ renderOpts,
142
142
  );
143
143
  await waitForLoad(rendered);
144
144
  expect(rendered.container).toMatchSnapshot();
@@ -15,7 +15,7 @@ describe("<ConceptArchiveRow />", () => {
15
15
  <tbody>
16
16
  <ConceptArchiveRow {...props} />
17
17
  </tbody>
18
- </table>
18
+ </table>,
19
19
  );
20
20
  expect(container).toMatchSnapshot();
21
21
  });
@@ -11,7 +11,7 @@ const renderComponent = (props) =>
11
11
  <LangProviderWrapper langs={["es"]}>
12
12
  <ConceptCompleteness {...props} />
13
13
  </LangProviderWrapper>,
14
- renderOpts
14
+ renderOpts,
15
15
  );
16
16
 
17
17
  describe("<ConceptCompleteness />", () => {
@@ -8,7 +8,7 @@ describe("<ConceptContext />", () => {
8
8
  const { container } = render(
9
9
  <ConceptContext>
10
10
  <div>Hello world</div>
11
- </ConceptContext>
11
+ </ConceptContext>,
12
12
  );
13
13
  expect(container).toMatchSnapshot();
14
14
  });
@@ -23,7 +23,7 @@ describe("<ConceptContext />", () => {
23
23
  });
24
24
 
25
25
  expect(result.current.conceptContext).toEqual(
26
- expect.objectContaining({ newKey: "newValue" })
26
+ expect.objectContaining({ newKey: "newValue" }),
27
27
  );
28
28
  });
29
29
 
@@ -39,7 +39,7 @@ describe("<ConceptContext />", () => {
39
39
  const { getByText } = render(
40
40
  <ConceptContext>
41
41
  <TestComponent />
42
- </ConceptContext>
42
+ </ConceptContext>,
43
43
  );
44
44
 
45
45
  expect(getByText("testValue")).toBeInTheDocument();
@@ -11,7 +11,7 @@ describe("<ConceptDeleteModalBody />", () => {
11
11
  const rendered = render(<ConceptDeleteModalBody {...props} />);
12
12
  await waitForLoad(rendered);
13
13
  expect(
14
- rendered.getByText(/concepts.actions.delete.body.without_content/i)
14
+ rendered.getByText(/concepts.actions.delete.body.without_content/i),
15
15
  ).toBeInTheDocument();
16
16
  });
17
17
 
@@ -25,7 +25,7 @@ describe("<ConceptDeleteModalBody />", () => {
25
25
  await waitForLoad(rendered);
26
26
  expect(
27
27
  rendered.container.querySelectorAll(".concept_delete_modal_body__item")
28
- .length
28
+ .length,
29
29
  ).toBe(1);
30
30
  });
31
31
 
@@ -39,7 +39,7 @@ describe("<ConceptDeleteModalBody />", () => {
39
39
  await waitForLoad(rendered);
40
40
  expect(
41
41
  rendered.container.querySelectorAll(".concept_delete_modal_body__item")
42
- .length
42
+ .length,
43
43
  ).toBe(1);
44
44
  });
45
45
 
@@ -53,7 +53,7 @@ describe("<ConceptDeleteModalBody />", () => {
53
53
  await waitForLoad(rendered);
54
54
  expect(
55
55
  rendered.container.querySelectorAll(".concept_delete_modal_body__item")
56
- .length
56
+ .length,
57
57
  ).toBe(1);
58
58
  });
59
59
 
@@ -67,7 +67,7 @@ describe("<ConceptDeleteModalBody />", () => {
67
67
  await waitForLoad(rendered);
68
68
  expect(
69
69
  rendered.container.querySelectorAll(".concept_delete_modal_body__item")
70
- .length
70
+ .length,
71
71
  ).toBe(2);
72
72
  });
73
73
 
@@ -81,7 +81,7 @@ describe("<ConceptDeleteModalBody />", () => {
81
81
  await waitForLoad(rendered);
82
82
  expect(
83
83
  rendered.container.querySelectorAll(".concept_delete_modal_body__item")
84
- .length
84
+ .length,
85
85
  ).toBe(3);
86
86
  });
87
87
 
@@ -5,7 +5,7 @@ import ConceptEdit from "../ConceptEdit";
5
5
 
6
6
  jest.mock("@truedat/ai/hooks/useTranslations", () => {
7
7
  const originalModule = jest.requireActual(
8
- "@truedat/ai/hooks/useTranslations"
8
+ "@truedat/ai/hooks/useTranslations",
9
9
  );
10
10
 
11
11
  return {
@@ -20,7 +20,7 @@ jest.mock("@truedat/ai/hooks/useTranslations", () => {
20
20
  status: "ok",
21
21
  },
22
22
  },
23
- }))
23
+ })),
24
24
  ),
25
25
  }),
26
26
  };
@@ -58,7 +58,7 @@ jest.mock("@truedat/core/hooks", () => ({
58
58
 
59
59
  jest.mock("@truedat/bg/concepts/hooks/useConcepts", () => {
60
60
  const originalModule = jest.requireActual(
61
- "@truedat/bg/concepts/hooks/useConcepts"
61
+ "@truedat/bg/concepts/hooks/useConcepts",
62
62
  );
63
63
 
64
64
  return {
@@ -114,7 +114,7 @@ const renderComponent = (props) =>
114
114
  <LangProviderWrapper langs={["es"]}>
115
115
  <ConceptEdit {...props} />
116
116
  </LangProviderWrapper>,
117
- renderOpts
117
+ renderOpts,
118
118
  );
119
119
 
120
120
  describe("<ConceptEdit />", () => {
@@ -18,7 +18,7 @@ jest.mock("@truedat/ai/hooks/useSuggestions", () => {
18
18
  status: "ok",
19
19
  },
20
20
  },
21
- }))
21
+ })),
22
22
  ),
23
23
  }),
24
24
  };
@@ -34,7 +34,7 @@ jest.mock("@truedat/ai/hooks/useTranslations", () => ({
34
34
  status: "ok",
35
35
  },
36
36
  },
37
- }))
37
+ })),
38
38
  ),
39
39
  })),
40
40
  useRequestTranslation: jest.fn(() => ({
@@ -45,7 +45,7 @@ jest.mock("@truedat/ai/hooks/useTranslations", () => ({
45
45
  es: {},
46
46
  },
47
47
  },
48
- })
48
+ }),
49
49
  ),
50
50
  })),
51
51
  }));
@@ -84,7 +84,7 @@ describe("<ConceptForm />", () => {
84
84
  const rendered = render(<ConceptForm {...props} />, renderOpts);
85
85
  await waitForLoad(rendered);
86
86
  await waitFor(() =>
87
- expect(rendered.queryByText(/bazdomain/i)).toBeInTheDocument()
87
+ expect(rendered.queryByText(/bazdomain/i)).toBeInTheDocument(),
88
88
  );
89
89
  expect(rendered.container).toMatchSnapshot();
90
90
  });
@@ -138,7 +138,7 @@ describe("<ConceptHeader />", () => {
138
138
 
139
139
  const rendered = render(<ConceptHeader {...props} />, customRenderOpts);
140
140
  expect(
141
- rendered.queryByText("i18n.messages.lang.en")
141
+ rendered.queryByText("i18n.messages.lang.en"),
142
142
  ).not.toBeInTheDocument();
143
143
  });
144
144
 
@@ -152,7 +152,7 @@ describe("<ConceptHeader />", () => {
152
152
 
153
153
  const rendered = render(<ConceptHeader {...customProps} />, renderOpts);
154
154
  expect(
155
- rendered.queryByText("i18n.messages.lang.en")
155
+ rendered.queryByText("i18n.messages.lang.en"),
156
156
  ).not.toBeInTheDocument();
157
157
  });
158
158
 
@@ -167,7 +167,7 @@ describe("<ConceptHeader />", () => {
167
167
 
168
168
  const rendered = render(<ConceptHeader {...customProps} />, renderOpts);
169
169
  expect(
170
- rendered.queryByText("i18n.messages.lang.en")
170
+ rendered.queryByText("i18n.messages.lang.en"),
171
171
  ).not.toBeInTheDocument();
172
172
  });
173
173
 
@@ -41,7 +41,7 @@ jest.mock("@truedat/dd/hooks/useStructures", () => ({
41
41
  }));
42
42
  jest.mock("@truedat/bg/concepts/hooks/useConcepts", () => {
43
43
  const originalModule = jest.requireActual(
44
- "@truedat/bg/concepts/hooks/useConcepts"
44
+ "@truedat/bg/concepts/hooks/useConcepts",
45
45
  );
46
46
 
47
47
  return {
@@ -122,7 +122,7 @@ describe("<ConceptsLinksManagement />", () => {
122
122
  await user.click(rendered.getByText(/foo/i));
123
123
  await waitForLoad(rendered);
124
124
  expect(
125
- rendered.getByText(/concept.events.relation_creating/i)
125
+ rendered.getByText(/concept.events.relation_creating/i),
126
126
  ).toBeInTheDocument();
127
127
  });
128
128
  });
@@ -28,7 +28,7 @@ describe("<ConceptLinksUploadButton />", () => {
28
28
 
29
29
  await user.click(rendered.getByRole("button"));
30
30
  await waitFor(() =>
31
- expect(rendered.getByRole("presentation")).toBeInTheDocument()
31
+ expect(rendered.getByRole("presentation")).toBeInTheDocument(),
32
32
  );
33
33
 
34
34
  expect(rendered.container).toMatchSnapshot();
@@ -23,7 +23,7 @@ describe("<ConceptManageDomainPopup />", () => {
23
23
  it("matches the latest snapshot", async () => {
24
24
  const rendered = render(
25
25
  <ConceptManageDomainPopup {...props} />,
26
- renderOpts
26
+ renderOpts,
27
27
  );
28
28
  await waitForLoad(rendered);
29
29
  expect(rendered.container).toMatchSnapshot();
@@ -33,45 +33,45 @@ describe("<ConceptManageDomainPopup />", () => {
33
33
  const user = userEvent.setup({ delay: null });
34
34
  const rendered = render(
35
35
  <ConceptManageDomainPopup {...props} />,
36
- renderOpts
36
+ renderOpts,
37
37
  );
38
38
  await waitForLoad(rendered);
39
39
 
40
40
  const triggerButton = rendered.getByRole("button");
41
41
  // Initial state - popup should be closed
42
42
  expect(
43
- rendered.queryByText(/concept.changedomain.header/i)
43
+ rendered.queryByText(/concept.changedomain.header/i),
44
44
  ).not.toBeInTheDocument();
45
45
 
46
46
  // Open popup
47
47
  await user.click(triggerButton);
48
48
  await waitFor(() =>
49
49
  expect(
50
- rendered.getByText(/concept.changedomain.header/i)
51
- ).toBeInTheDocument()
50
+ rendered.getByText(/concept.changedomain.header/i),
51
+ ).toBeInTheDocument(),
52
52
  );
53
53
 
54
54
  // Close popup
55
55
  await user.click(triggerButton);
56
56
  await waitFor(() =>
57
57
  expect(
58
- rendered.queryByText(/concept.changedomain.header/i)
59
- ).not.toBeInTheDocument()
58
+ rendered.queryByText(/concept.changedomain.header/i),
59
+ ).not.toBeInTheDocument(),
60
60
  );
61
61
 
62
62
  // Open popup again
63
63
  await user.click(triggerButton);
64
64
  await waitFor(() =>
65
65
  expect(
66
- rendered.getByText(/concept.changedomain.header/i)
67
- ).toBeInTheDocument()
66
+ rendered.getByText(/concept.changedomain.header/i),
67
+ ).toBeInTheDocument(),
68
68
  );
69
69
 
70
70
  // Popup should close when saving is complete
71
71
  rendered.rerender(<ConceptManageDomainPopup {...props} saving={true} />);
72
72
  rendered.rerender(<ConceptManageDomainPopup {...props} saving={false} />);
73
73
  await waitFor(() =>
74
- expect(rendered.queryByRole("dialog")).not.toBeInTheDocument()
74
+ expect(rendered.queryByRole("dialog")).not.toBeInTheDocument(),
75
75
  );
76
76
  });
77
77
  });
@@ -43,7 +43,7 @@ jest.mock("../../relations/components/ConceptLinksApprovals", () => () => (
43
43
  ));
44
44
  jest.mock(
45
45
  "../../relations/components/ConceptLinksApprovalResults",
46
- () => () => <div>ConceptsLinksApprovalsResults</div>
46
+ () => () => <div>ConceptsLinksApprovalsResults</div>,
47
47
  );
48
48
  jest.mock("@truedat/lm/components/RelationTagsLoader", () => () => (
49
49
  <div>RelationTagsLoader</div>
@@ -127,7 +127,7 @@ describe("<ConceptRoutes />", () => {
127
127
  routes: [
128
128
  CONCEPT_VERSION.replace(":business_concept_id", "123").replace(
129
129
  ":id",
130
- "456"
130
+ "456",
131
131
  ),
132
132
  ],
133
133
  state: {
@@ -143,7 +143,7 @@ describe("<ConceptRoutes />", () => {
143
143
  routes: [
144
144
  CONCEPT_EDIT.replace(":business_concept_id", "123").replace(
145
145
  ":id",
146
- "456"
146
+ "456",
147
147
  ),
148
148
  ],
149
149
  state: {
@@ -18,7 +18,7 @@ describe("<ConceptRow />", () => {
18
18
  <tbody>
19
19
  <ConceptRow {...props} />
20
20
  </tbody>
21
- </table>
21
+ </table>,
22
22
  );
23
23
  expect(container).toMatchSnapshot();
24
24
  });
@@ -38,7 +38,7 @@ describe("<ConceptRow />", () => {
38
38
  <tbody>
39
39
  <ConceptRow {...props} />
40
40
  </tbody>
41
- </table>
41
+ </table>,
42
42
  );
43
43
 
44
44
  const link = wrapper.getByText("foo");
@@ -55,7 +55,7 @@ describe("<ConceptSubscription />", () => {
55
55
 
56
56
  // el popup se cierra (contenido ya no está en el DOM)
57
57
  await waitFor(() =>
58
- expect(rendered.queryByText(/actions.save/i)).not.toBeInTheDocument()
58
+ expect(rendered.queryByText(/actions.save/i)).not.toBeInTheDocument(),
59
59
  );
60
60
  });
61
61
  });
@@ -6,69 +6,81 @@ import { ConceptSelectorTable } from "../../relations/components/ConceptSelector
6
6
  import { useConceptSuggestions } from "../../hooks/useConcepts";
7
7
 
8
8
  jest.mock("react-router", () => ({
9
- ...jest.requireActual("react-router"),
10
- useParams: jest.fn(),
9
+ ...jest.requireActual("react-router"),
10
+ useParams: jest.fn(),
11
11
  }));
12
12
 
13
13
  jest.mock("../../hooks/useConcepts", () => ({
14
- useConceptSuggestions: jest.fn(),
14
+ useConceptSuggestions: jest.fn(),
15
15
  }));
16
16
 
17
17
  jest.mock("../../relations/components/ConceptSelector", () => {
18
- return {
19
- __esModule: true,
20
- ConceptSelectorTable: jest.fn(() => <div>MockSearchResults</div>),
21
- };
18
+ return {
19
+ __esModule: true,
20
+ ConceptSelectorTable: jest.fn(() => <div>MockSearchResults</div>),
21
+ };
22
22
  });
23
23
 
24
24
  describe("ConceptSuggestions", () => {
25
- const mockFetchSuggestions = jest.fn();
25
+ const mockFetchSuggestions = jest.fn();
26
26
 
27
- const structureLinks = [
28
- { resource_type: "concept", id: "c1" },
29
- { resource_type: "other", id: "not-c" }
30
- ];
27
+ const structureLinks = [
28
+ { resource_type: "concept", id: "c1" },
29
+ { resource_type: "other", id: "not-c" },
30
+ ];
31
31
 
32
- beforeEach(() => {
33
- jest.clearAllMocks();
34
- useParams.mockReturnValue({ id: "123" });
32
+ beforeEach(() => {
33
+ jest.clearAllMocks();
34
+ useParams.mockReturnValue({ id: "123" });
35
35
 
36
- useConceptSuggestions.mockReturnValue({
37
- trigger: mockFetchSuggestions,
38
- data: {
39
- data: {
40
- data: [
41
- { id: "concept1", similarity: 0.89 },
42
- { id: "concept2", similarity: 0.77 },
43
- ],
44
- },
45
- },
46
- isMutating: false,
47
- });
36
+ useConceptSuggestions.mockReturnValue({
37
+ trigger: mockFetchSuggestions,
38
+ data: {
39
+ data: {
40
+ data: [
41
+ { id: "concept1", similarity: 0.89 },
42
+ { id: "concept2", similarity: 0.77 },
43
+ ],
44
+ },
45
+ },
46
+ isMutating: false,
48
47
  });
48
+ });
49
49
 
50
- const state = { structureLinks };
50
+ const state = { structureLinks };
51
51
 
52
- it("calls fetchSuggestions on mount with correct parameters", async () => {
53
- const rendered = render(<ConceptSuggestions selectedConcept={null} handleConceptSelected={jest.fn()} />, { state });
54
- await waitForLoad(rendered);
55
- expect(mockFetchSuggestions).toHaveBeenCalledWith({
56
- resource: {
57
- id: "123",
58
- type: "structures",
59
- links: [{ resource_type: "concept", id: "c1" }],
60
- },
61
- });
52
+ it("calls fetchSuggestions on mount with correct parameters", async () => {
53
+ const rendered = render(
54
+ <ConceptSuggestions
55
+ selectedConcept={null}
56
+ handleConceptSelected={jest.fn()}
57
+ />,
58
+ { state },
59
+ );
60
+ await waitForLoad(rendered);
61
+ expect(mockFetchSuggestions).toHaveBeenCalledWith({
62
+ resource: {
63
+ id: "123",
64
+ type: "structures",
65
+ links: [{ resource_type: "concept", id: "c1" }],
66
+ },
62
67
  });
68
+ });
63
69
 
64
- it("renders ConceptSelectorTable with props", async () => {
65
- const rendered = render(<ConceptSuggestions selectedConcept={{}} handleConceptSelected={jest.fn()} />, { state });
66
- await waitForLoad(rendered);
67
- expect(rendered.getByText("MockSearchResults")).toBeInTheDocument();
68
- const props = ConceptSelectorTable.mock.calls[0][0];
69
- expect(props.concepts).toEqual([
70
- { id: "concept1", similarity: 0.89 },
71
- { id: "concept2", similarity: 0.77 },
72
- ]);
73
- });
70
+ it("renders ConceptSelectorTable with props", async () => {
71
+ const rendered = render(
72
+ <ConceptSuggestions
73
+ selectedConcept={{}}
74
+ handleConceptSelected={jest.fn()}
75
+ />,
76
+ { state },
77
+ );
78
+ await waitForLoad(rendered);
79
+ expect(rendered.getByText("MockSearchResults")).toBeInTheDocument();
80
+ const props = ConceptSelectorTable.mock.calls[0][0];
81
+ expect(props.concepts).toEqual([
82
+ { id: "concept1", similarity: 0.89 },
83
+ { id: "concept2", similarity: 0.77 },
84
+ ]);
85
+ });
74
86
  });