@truedat/bg 7.5.9 → 7.5.10

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 (236) hide show
  1. package/package.json +41 -70
  2. package/src/concepts/components/Concept.js +22 -19
  3. package/src/concepts/components/ConceptActions.js +1 -2
  4. package/src/concepts/components/ConceptArchive.js +0 -1
  5. package/src/concepts/components/ConceptArchiveRow.js +3 -4
  6. package/src/concepts/components/ConceptCompleteness.js +1 -2
  7. package/src/concepts/components/ConceptConfidentialButton.js +1 -2
  8. package/src/concepts/components/ConceptCreate.js +1 -1
  9. package/src/concepts/components/ConceptCrumbs.js +10 -8
  10. package/src/concepts/components/ConceptDeleteModalBody.js +7 -10
  11. package/src/concepts/components/ConceptDetails.js +3 -3
  12. package/src/concepts/components/ConceptEdit.js +2 -2
  13. package/src/concepts/components/ConceptForm.js +39 -43
  14. package/src/concepts/components/ConceptHeader.js +0 -1
  15. package/src/concepts/components/ConceptLinksDropdownSelector.js +1 -2
  16. package/src/concepts/components/ConceptLoader.js +3 -3
  17. package/src/concepts/components/ConceptManageDomain.js +2 -1
  18. package/src/concepts/components/ConceptManageDomainPopup.js +1 -1
  19. package/src/concepts/components/ConceptRoutes.js +263 -226
  20. package/src/concepts/components/ConceptRow.js +0 -1
  21. package/src/concepts/components/ConceptSubscription.js +15 -14
  22. package/src/concepts/components/ConceptSummary.js +0 -1
  23. package/src/concepts/components/ConceptTabPane.js +36 -41
  24. package/src/concepts/components/ConceptTabs.js +1 -4
  25. package/src/concepts/components/ConceptTaxonomy.js +1 -3
  26. package/src/concepts/components/Concepts.js +0 -1
  27. package/src/concepts/components/ConceptsActions.js +2 -3
  28. package/src/concepts/components/ConceptsBulkUpdate.js +3 -6
  29. package/src/concepts/components/ConceptsLabelResults.js +0 -1
  30. package/src/concepts/components/ConceptsLinkDecorator.js +1 -2
  31. package/src/concepts/components/ConceptsLinksManagement.js +7 -8
  32. package/src/concepts/components/ConceptsPagination.js +0 -1
  33. package/src/concepts/components/ConceptsPanel.js +5 -4
  34. package/src/concepts/components/ConceptsTable.js +2 -3
  35. package/src/concepts/components/ConceptsUpdateButton.js +6 -6
  36. package/src/concepts/components/ConceptsUploadButton.js +0 -1
  37. package/src/concepts/components/ConceptsUploadEvents.js +0 -2
  38. package/src/concepts/components/ConceptsUploadEventsTable.js +12 -19
  39. package/src/concepts/components/DomainConcepts.js +0 -1
  40. package/src/concepts/components/EventRow.js +0 -1
  41. package/src/concepts/components/Events.js +3 -4
  42. package/src/concepts/components/FieldGroupTable.js +1 -2
  43. package/src/concepts/components/LinkedMessage.js +9 -13
  44. package/src/concepts/components/SharedToDomains.js +8 -7
  45. package/src/concepts/components/SharedToDomainsPopup.js +1 -1
  46. package/src/concepts/components/SharedToForm.js +3 -6
  47. package/src/concepts/components/__tests__/Concept.spec.js +8 -42
  48. package/src/concepts/components/__tests__/ConceptActions.spec.js +7 -7
  49. package/src/concepts/components/__tests__/ConceptArchive.spec.js +5 -5
  50. package/src/concepts/components/__tests__/ConceptArchiveLoader.spec.js +15 -14
  51. package/src/concepts/components/__tests__/ConceptArchiveRow.spec.js +0 -1
  52. package/src/concepts/components/__tests__/ConceptCompleteness.spec.js +0 -1
  53. package/src/concepts/components/__tests__/ConceptConfidentialButton.spec.js +10 -17
  54. package/src/concepts/components/__tests__/ConceptContext.spec.js +1 -1
  55. package/src/concepts/components/__tests__/ConceptCrumbs.spec.js +12 -34
  56. package/src/concepts/components/__tests__/ConceptDeleteModalBody.spec.js +47 -26
  57. package/src/concepts/components/__tests__/ConceptDetails.spec.js +1 -9
  58. package/src/concepts/components/__tests__/ConceptEdit.spec.js +2 -2
  59. package/src/concepts/components/__tests__/ConceptForm.spec.js +26 -19
  60. package/src/concepts/components/__tests__/ConceptHeader.spec.js +33 -57
  61. package/src/concepts/components/__tests__/ConceptLinksManagement.spec.js +27 -34
  62. package/src/concepts/components/__tests__/ConceptLoader.spec.js +51 -37
  63. package/src/concepts/components/__tests__/ConceptManageDomain.spec.js +12 -47
  64. package/src/concepts/components/__tests__/ConceptManageDomainPopup.spec.js +65 -24
  65. package/src/concepts/components/__tests__/ConceptRow.spec.js +6 -17
  66. package/src/concepts/components/__tests__/ConceptSubscription.spec.js +9 -9
  67. package/src/concepts/components/__tests__/ConceptSubscriptionLoader.spec.js +20 -16
  68. package/src/concepts/components/__tests__/ConceptSummary.spec.js +11 -10
  69. package/src/concepts/components/__tests__/ConceptTabPane.spec.js +73 -5
  70. package/src/concepts/components/__tests__/ConceptTabs.spec.js +6 -21
  71. package/src/concepts/components/__tests__/ConceptTaxonomy.spec.js +16 -12
  72. package/src/concepts/components/__tests__/Concepts.spec.js +6 -26
  73. package/src/concepts/components/__tests__/ConceptsActions.spec.js +0 -1
  74. package/src/concepts/components/__tests__/ConceptsBulkUpdate.spec.js +31 -36
  75. package/src/concepts/components/__tests__/ConceptsLabelResults.spec.js +4 -5
  76. package/src/concepts/components/__tests__/ConceptsLinkDecorator.spec.js +3 -4
  77. package/src/concepts/components/__tests__/ConceptsPanel.spec.js +7 -26
  78. package/src/concepts/components/__tests__/ConceptsTable.spec.js +34 -60
  79. package/src/concepts/components/__tests__/ConceptsUpdateButton.spec.js +6 -7
  80. package/src/concepts/components/__tests__/ConceptsUploadButton.spec.js +25 -13
  81. package/src/concepts/components/__tests__/ConceptsUploadEventsTable.spec.js +11 -9
  82. package/src/concepts/components/__tests__/Events.spec.js +10 -10
  83. package/src/concepts/components/__tests__/SharedToDomains.spec.js +25 -19
  84. package/src/concepts/components/__tests__/SharedToDomainsPopup.spec.js +48 -36
  85. package/src/concepts/components/__tests__/SharedToForm.spec.js +24 -32
  86. package/src/concepts/components/__tests__/__snapshots__/Concept.spec.js.snap +108 -23
  87. package/src/concepts/components/__tests__/__snapshots__/ConceptActions.spec.js.snap +12 -16
  88. package/src/concepts/components/__tests__/__snapshots__/ConceptArchive.spec.js.snap +77 -65
  89. package/src/concepts/components/__tests__/__snapshots__/ConceptArchiveRow.spec.js.snap +2 -4
  90. package/src/concepts/components/__tests__/__snapshots__/ConceptConfidentialButton.spec.js.snap +11 -31
  91. package/src/concepts/components/__tests__/__snapshots__/ConceptCrumbs.spec.js.snap +41 -56
  92. package/src/concepts/components/__tests__/__snapshots__/ConceptDeleteModalBody.spec.js.snap +3 -5
  93. package/src/concepts/components/__tests__/__snapshots__/ConceptDetails.spec.js.snap +0 -1
  94. package/src/concepts/components/__tests__/__snapshots__/ConceptEdit.spec.js.snap +1 -12
  95. package/src/concepts/components/__tests__/__snapshots__/ConceptForm.spec.js.snap +10 -11
  96. package/src/concepts/components/__tests__/__snapshots__/ConceptHeader.spec.js.snap +2 -2
  97. package/src/concepts/components/__tests__/__snapshots__/ConceptLinksManagement.spec.js.snap +14 -14
  98. package/src/concepts/components/__tests__/__snapshots__/ConceptLoader.spec.js.snap +14 -9
  99. package/src/concepts/components/__tests__/__snapshots__/ConceptManageDomain.spec.js.snap +43 -5
  100. package/src/concepts/components/__tests__/__snapshots__/ConceptManageDomainPopup.spec.js.snap +10 -163
  101. package/src/concepts/components/__tests__/__snapshots__/ConceptRow.spec.js.snap +4 -7
  102. package/src/concepts/components/__tests__/__snapshots__/ConceptSubscription.spec.js.snap +8 -55
  103. package/src/concepts/components/__tests__/__snapshots__/ConceptSubscriptionLoader.spec.js.snap +1 -1
  104. package/src/concepts/components/__tests__/__snapshots__/ConceptSummary.spec.js.snap +6 -6
  105. package/src/concepts/components/__tests__/__snapshots__/ConceptTabPane.spec.js.snap +18 -34
  106. package/src/concepts/components/__tests__/__snapshots__/ConceptTabs.spec.js.snap +26 -13
  107. package/src/concepts/components/__tests__/__snapshots__/ConceptTaxonomy.spec.js.snap +63 -53
  108. package/src/concepts/components/__tests__/__snapshots__/Concepts.spec.js.snap +10 -25
  109. package/src/concepts/components/__tests__/__snapshots__/ConceptsActions.spec.js.snap +1 -0
  110. package/src/concepts/components/__tests__/__snapshots__/ConceptsBulkUpdate.spec.js.snap +7 -6
  111. package/src/concepts/components/__tests__/__snapshots__/ConceptsLabelResults.spec.js.snap +1 -1
  112. package/src/concepts/components/__tests__/__snapshots__/ConceptsLinkDecorator.spec.js.snap +1 -0
  113. package/src/concepts/components/__tests__/__snapshots__/ConceptsPanel.spec.js.snap +10 -25
  114. package/src/concepts/components/__tests__/__snapshots__/ConceptsTable.spec.js.snap +1 -1
  115. package/src/concepts/components/__tests__/__snapshots__/ConceptsUpdateButton.spec.js.snap +1 -1
  116. package/src/concepts/components/__tests__/__snapshots__/ConceptsUploadButton.spec.js.snap +9 -74
  117. package/src/concepts/components/__tests__/__snapshots__/ConceptsUploadEventsTable.spec.js.snap +14 -14
  118. package/src/concepts/components/__tests__/__snapshots__/Events.spec.js.snap +83 -43
  119. package/src/concepts/components/__tests__/__snapshots__/SharedToDomains.spec.js.snap +56 -33
  120. package/src/concepts/components/__tests__/__snapshots__/SharedToDomainsPopup.spec.js.snap +9 -145
  121. package/src/concepts/components/__tests__/__snapshots__/SharedToForm.spec.js.snap +2 -2
  122. package/src/concepts/reducers/__tests__/conceptRedirect.spec.js +1 -1
  123. package/src/concepts/reducers/conceptRedirect.js +5 -5
  124. package/src/concepts/relations/components/ConceptImplementationLinks.js +5 -4
  125. package/src/concepts/relations/components/ConceptLinkActions.js +1 -1
  126. package/src/concepts/relations/components/ConceptLinksActions.js +4 -4
  127. package/src/concepts/relations/components/ConceptRelationActions.js +3 -4
  128. package/src/concepts/relations/components/ConceptRelationForm.js +3 -3
  129. package/src/concepts/relations/components/ConceptRelationRow.js +10 -10
  130. package/src/concepts/relations/components/ConceptRelations.js +9 -11
  131. package/src/concepts/relations/components/ConceptRelationsRoutes.js +20 -39
  132. package/src/concepts/relations/components/ConceptRelationsSummary.js +26 -29
  133. package/src/concepts/relations/components/ConceptSelector.js +4 -7
  134. package/src/concepts/relations/components/ConceptStructureLinks.js +2 -2
  135. package/src/concepts/relations/components/__tests__/ConceptImplementationLinks.spec.js +19 -59
  136. package/src/concepts/relations/components/__tests__/ConceptLinksActions.spec.js +9 -10
  137. package/src/concepts/relations/components/__tests__/ConceptRelationActions.spec.js +9 -7
  138. package/src/concepts/relations/components/__tests__/ConceptRelationForm.spec.js +30 -42
  139. package/src/concepts/relations/components/__tests__/ConceptRelationRow.spec.js +11 -16
  140. package/src/concepts/relations/components/__tests__/ConceptRelations.spec.js +11 -14
  141. package/src/concepts/relations/components/__tests__/ConceptRelationsRoutes.spec.js +108 -8
  142. package/src/concepts/relations/components/__tests__/ConceptRelationsSummary.spec.js +39 -38
  143. package/src/concepts/relations/components/__tests__/ConceptSelector.spec.js +24 -36
  144. package/src/concepts/relations/components/__tests__/ConceptStructureLinks.spec.js +21 -11
  145. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptImplementationLinks.spec.js.snap +131 -28
  146. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptLinksActions.spec.js.snap +4 -3
  147. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationActions.spec.js.snap +10 -26
  148. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationForm.spec.js.snap +15 -19
  149. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationRow.spec.js.snap +36 -33
  150. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelations.spec.js.snap +76 -51
  151. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationsRoutes.spec.js.snap +15 -29
  152. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptRelationsSummary.spec.js.snap +45 -100
  153. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptSelector.spec.js.snap +9 -9
  154. package/src/concepts/relations/components/__tests__/__snapshots__/ConceptStructureLinks.spec.js.snap +10 -10
  155. package/src/concepts/relations/sagas/conceptLinkAction.js +2 -2
  156. package/src/concepts/relations/sagas/linkConcept.js +1 -1
  157. package/src/concepts/relations/selectors/getBusinessConceptsLinksToImplementationsColumns.js +1 -2
  158. package/src/concepts/relations/selectors/getConceptLinks.js +1 -2
  159. package/src/concepts/relations/selectors/getConceptRelations.js +14 -14
  160. package/src/concepts/sagas/__tests__/saveSharedTo.spec.js +3 -3
  161. package/src/concepts/sagas/__tests__/setConfidentialConcept.spec.js +5 -5
  162. package/src/concepts/sagas/conceptAction.js +2 -2
  163. package/src/concepts/sagas/fetchConceptArchive.js +1 -1
  164. package/src/concepts/sagas/setConfidentialConcept.js +2 -2
  165. package/src/concepts/selectors/__tests__/getConceptDomainPath.spec.js +2 -2
  166. package/src/concepts/selectors/getConceptColumns.js +1 -2
  167. package/src/concepts/selectors/getConceptTemplate.js +1 -1
  168. package/src/concepts/selectors/getConceptUploadEventColumns.js +0 -1
  169. package/src/concepts/selectors/getConceptVersionPath.js +2 -2
  170. package/src/concepts/selectors/getParsedEvents.js +2 -2
  171. package/src/concepts/selectors/getTemplateFields.js +3 -3
  172. package/src/concepts/selectors/getTemplateGroups.js +1 -1
  173. package/src/hooks/__mocks__/useDomains.js +42 -0
  174. package/src/hooks/useDomains.js +3 -3
  175. package/src/taxonomy/components/AddDomainMember.js +3 -4
  176. package/src/taxonomy/components/Domain.js +19 -23
  177. package/src/taxonomy/components/DomainActions.js +1 -2
  178. package/src/taxonomy/components/DomainCards.js +4 -6
  179. package/src/taxonomy/components/DomainContent.js +42 -87
  180. package/src/taxonomy/components/DomainCrumbs.js +4 -4
  181. package/src/taxonomy/components/DomainDetail.js +4 -5
  182. package/src/taxonomy/components/DomainForm.js +1 -3
  183. package/src/taxonomy/components/DomainImplementations.js +8 -7
  184. package/src/taxonomy/components/DomainItem.js +1 -2
  185. package/src/taxonomy/components/DomainMembers.js +0 -1
  186. package/src/taxonomy/components/DomainRoutes.js +15 -21
  187. package/src/taxonomy/components/DomainSearch.js +0 -1
  188. package/src/taxonomy/components/DomainStructures.js +0 -1
  189. package/src/taxonomy/components/DomainTabs.js +3 -4
  190. package/src/taxonomy/components/DomainTaxonomy.js +1 -2
  191. package/src/taxonomy/components/Domains.js +15 -5
  192. package/src/taxonomy/components/DomainsActions.js +2 -4
  193. package/src/taxonomy/components/EditDomain.js +5 -5
  194. package/src/taxonomy/components/NewDomain.js +4 -4
  195. package/src/taxonomy/components/__tests__/AddDomainMember.spec.js +6 -5
  196. package/src/taxonomy/components/__tests__/Domain.spec.js +63 -123
  197. package/src/taxonomy/components/__tests__/DomainActions.spec.js +0 -1
  198. package/src/taxonomy/components/__tests__/DomainCards.spec.js +44 -51
  199. package/src/taxonomy/components/__tests__/DomainContent.spec.js +138 -158
  200. package/src/taxonomy/components/__tests__/DomainCrumbs.spec.js +14 -19
  201. package/src/taxonomy/components/__tests__/DomainDetail.spec.js +2 -3
  202. package/src/taxonomy/components/__tests__/DomainForm.spec.js +44 -60
  203. package/src/taxonomy/components/__tests__/DomainItem.spec.js +17 -14
  204. package/src/taxonomy/components/__tests__/DomainMembers.spec.js +9 -13
  205. package/src/taxonomy/components/__tests__/DomainRoutes.spec.js +54 -0
  206. package/src/taxonomy/components/__tests__/DomainStructures.spec.js +10 -51
  207. package/src/taxonomy/components/__tests__/DomainTabs.spec.js +14 -33
  208. package/src/taxonomy/components/__tests__/DomainTaxonomy.spec.js +17 -16
  209. package/src/taxonomy/components/__tests__/Domains.spec.js +63 -95
  210. package/src/taxonomy/components/__tests__/DomainsActions.spec.js +12 -11
  211. package/src/taxonomy/components/__tests__/EditDomain.spec.js +13 -54
  212. package/src/taxonomy/components/__tests__/NewDomain.spec.js +17 -61
  213. package/src/taxonomy/components/__tests__/__snapshots__/AddDomainMember.spec.js.snap +10 -9
  214. package/src/taxonomy/components/__tests__/__snapshots__/Domain.spec.js.snap +53 -72
  215. package/src/taxonomy/components/__tests__/__snapshots__/DomainActions.spec.js.snap +2 -1
  216. package/src/taxonomy/components/__tests__/__snapshots__/DomainCards.spec.js.snap +247 -27
  217. package/src/taxonomy/components/__tests__/__snapshots__/DomainContent.spec.js.snap +14 -294
  218. package/src/taxonomy/components/__tests__/__snapshots__/DomainCrumbs.spec.js.snap +6 -2
  219. package/src/taxonomy/components/__tests__/__snapshots__/DomainDetail.spec.js.snap +5 -4
  220. package/src/taxonomy/components/__tests__/__snapshots__/DomainForm.spec.js.snap +13 -12
  221. package/src/taxonomy/components/__tests__/__snapshots__/DomainItem.spec.js.snap +16 -12
  222. package/src/taxonomy/components/__tests__/__snapshots__/DomainRoutes.spec.js.snap +52 -0
  223. package/src/taxonomy/components/__tests__/__snapshots__/DomainStructures.spec.js.snap +7 -7
  224. package/src/taxonomy/components/__tests__/__snapshots__/DomainTabs.spec.js.snap +10 -5
  225. package/src/taxonomy/components/__tests__/__snapshots__/DomainTaxonomy.spec.js.snap +37 -29
  226. package/src/taxonomy/components/__tests__/__snapshots__/Domains.spec.js.snap +123 -6
  227. package/src/taxonomy/components/__tests__/__snapshots__/DomainsActions.spec.js.snap +2 -1
  228. package/src/taxonomy/components/__tests__/__snapshots__/EditDomain.spec.js.snap +15 -14
  229. package/src/taxonomy/components/__tests__/__snapshots__/NewDomain.spec.js.snap +31 -28
  230. package/src/taxonomy/selectors/index.js +0 -1
  231. package/src/concepts/relations/components/__tests__/ConceptSelector2.spec.js +0 -76
  232. package/src/concepts/selectors/__tests__/getConceptSubscope.spec.js +0 -37
  233. package/src/concepts/selectors/__tests__/getSidemenuGlossarySubscopes.spec.js +0 -17
  234. package/src/concepts/selectors/getConceptStatus.js +0 -1
  235. package/src/concepts/selectors/getConceptSubscope.js +0 -19
  236. package/src/concepts/selectors/getSidemenuGlossarySubscopes.js +0 -8
@@ -1,6 +1,5 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
1
  import userEvent from "@testing-library/user-event";
2
+ import { render } from "@truedat/test/render";
4
3
  import ConceptHeader from "../ConceptHeader";
5
4
 
6
5
  const template = {
@@ -21,8 +20,8 @@ const contentEn = {
21
20
  };
22
21
 
23
22
  const concept = {
24
- id: 1,
25
- business_concept_id: 1,
23
+ id: "1",
24
+ business_concept_id: "1",
26
25
  name: "Concept_en",
27
26
  type: "type",
28
27
  version: 1,
@@ -52,8 +51,8 @@ const props = {
52
51
  selectedLang: "en",
53
52
  setSelectedLang: jest.fn(),
54
53
  i18nConcept: {
55
- en: { id: 1, lang: "en", name: "Concept_en", content: contentEn },
56
- es: { id: 2, lang: "es", name: "Concept_es", content: contentEs },
54
+ en: { id: "1", lang: "en", name: "Concept_en", content: contentEn },
55
+ es: { id: "2", lang: "es", name: "Concept_es", content: contentEs },
57
56
  },
58
57
  };
59
58
 
@@ -70,12 +69,6 @@ const share = {
70
69
  };
71
70
 
72
71
  const renderOpts = {
73
- messages: {
74
- en: {
75
- "i18n.messages.lang.es": "Es",
76
- "i18n.messages.lang.en": "En",
77
- },
78
- },
79
72
  state: {
80
73
  concept,
81
74
  conceptPermissions: { share },
@@ -89,12 +82,9 @@ describe("<ConceptHeader />", () => {
89
82
  ...props,
90
83
  setConfidentialConcept: setConfidentialConcept,
91
84
  };
92
- const { container } = render(
93
- <ConceptHeader {...customProps} />,
94
- renderOpts
95
- );
85
+ const rendered = render(<ConceptHeader {...customProps} />, renderOpts);
96
86
 
97
- expect(container).toMatchSnapshot();
87
+ expect(rendered.container).toMatchSnapshot();
98
88
  });
99
89
 
100
90
  it("does not render ConceptConfidentialButton if no permission for managing confidential concepts", () => {
@@ -107,11 +97,8 @@ describe("<ConceptHeader />", () => {
107
97
  },
108
98
  };
109
99
 
110
- const { queryByText } = render(
111
- <ConceptHeader {...props} />,
112
- customRenderOpts
113
- );
114
- expect(queryByText("ConceptConfidentialButton")).toBeNull();
100
+ const rendered = render(<ConceptHeader {...props} />, customRenderOpts);
101
+ expect(rendered.queryByText("ConceptConfidentialButton")).toBeNull();
115
102
  });
116
103
 
117
104
  it("does not render SharedToDomainsPopup if no permission for updating concepts", () => {
@@ -124,22 +111,17 @@ describe("<ConceptHeader />", () => {
124
111
  },
125
112
  };
126
113
 
127
- const { queryByText } = render(
128
- <ConceptHeader {...props} />,
129
- customRenderOpts
130
- );
131
- expect(queryByText("SharedToDomainsPopup")).toBeNull();
114
+ const rendered = render(<ConceptHeader {...props} />, customRenderOpts);
115
+ expect(rendered.queryByText("SharedToDomainsPopup")).toBeNull();
132
116
  });
133
117
 
134
118
  it("change languaje when click on button", async () => {
135
- const { getByText, queryByText } = render(
136
- <ConceptHeader {...props} />,
137
- renderOpts
138
- );
139
- expect(queryByText("Concept_en")).toBeInTheDocument();
140
- const button = getByText("Es");
119
+ const rendered = render(<ConceptHeader {...props} />, renderOpts);
120
+ expect(rendered.queryByText("Concept_en")).toBeInTheDocument();
121
+ const user = userEvent.setup({ delay: null });
122
+ const button = rendered.getByText("i18n.messages.lang.es");
141
123
 
142
- userEvent.click(button);
124
+ await user.click(button);
143
125
 
144
126
  expect(props.setSelectedLang).toHaveBeenCalledWith("es");
145
127
  });
@@ -154,42 +136,39 @@ describe("<ConceptHeader />", () => {
154
136
  },
155
137
  };
156
138
 
157
- const { queryByText } = render(
158
- <ConceptHeader {...props} />,
159
- customRenderOpts
160
- );
161
- expect(queryByText("En")).toBeNull();
139
+ const rendered = render(<ConceptHeader {...props} />, customRenderOpts);
140
+ expect(
141
+ rendered.queryByText("i18n.messages.lang.en")
142
+ ).not.toBeInTheDocument();
162
143
  });
163
144
 
164
145
  it("does not render lang buttons if concept has only one language", () => {
165
146
  const customProps = {
166
147
  ...props,
167
148
  i18nConcept: {
168
- en: { id: 1, lang: "en", name: "Concept_en", content: contentEn },
149
+ en: { id: "1", lang: "en", name: "Concept_en", content: contentEn },
169
150
  },
170
151
  };
171
152
 
172
- const { queryByText } = render(
173
- <ConceptHeader {...customProps} />,
174
- renderOpts
175
- );
176
- expect(queryByText("En")).toBeNull();
153
+ const rendered = render(<ConceptHeader {...customProps} />, renderOpts);
154
+ expect(
155
+ rendered.queryByText("i18n.messages.lang.en")
156
+ ).not.toBeInTheDocument();
177
157
  });
178
158
 
179
159
  it("does not render lang buttons if i18nConcept has no content", () => {
180
160
  const customProps = {
181
161
  ...props,
182
162
  i18nConcept: {
183
- en: { id: 1, lang: "en", name: "Concept_en", content: {} },
184
- es: { id: 2, lang: "es", name: "Concept_es", content: {} },
163
+ en: { id: "1", lang: "en", name: "Concept_en", content: {} },
164
+ es: { id: "2", lang: "es", name: "Concept_es", content: {} },
185
165
  },
186
166
  };
187
167
 
188
- const { queryByText } = render(
189
- <ConceptHeader {...customProps} />,
190
- renderOpts
191
- );
192
- expect(queryByText("En")).toBeNull();
168
+ const rendered = render(<ConceptHeader {...customProps} />, renderOpts);
169
+ expect(
170
+ rendered.queryByText("i18n.messages.lang.en")
171
+ ).not.toBeInTheDocument();
193
172
  });
194
173
 
195
174
  it("set content name when i18ncontent is undefined", () => {
@@ -200,10 +179,7 @@ describe("<ConceptHeader />", () => {
200
179
  },
201
180
  };
202
181
 
203
- const { queryByText } = render(
204
- <ConceptHeader {...props} />,
205
- customRenderOpts
206
- );
207
- expect(queryByText("Concept_en")).toBeInTheDocument();
182
+ const rendered = render(<ConceptHeader {...props} />, customRenderOpts);
183
+ expect(rendered.queryByText("Concept_en")).toBeInTheDocument();
208
184
  });
209
185
  });
@@ -1,9 +1,7 @@
1
- import React, { Suspense } from "react";
2
- import { render } from "@truedat/test/render";
3
- import { waitFor } from "@testing-library/react";
4
1
  import userEvent from "@testing-library/user-event";
2
+ import { waitFor } from "@testing-library/react";
3
+ import { render, waitForLoad } from "@truedat/test/render";
5
4
  import ConceptsLinksManagement from "../ConceptsLinksManagement";
6
- import en from "../../../messages/en";
7
5
 
8
6
  const data = {
9
7
  data: [
@@ -32,7 +30,15 @@ const filterData = {
32
30
  },
33
31
  },
34
32
  };
35
-
33
+ jest.mock("@truedat/dd/hooks/useStructures", () => ({
34
+ ...jest.requireActual("@truedat/dd/hooks/useStructures"),
35
+ useDataStructureSearch: () => ({
36
+ trigger: () => ({ then: (callback) => callback({ data: {} }) }),
37
+ }),
38
+ useDataStructureFilters: () => ({
39
+ trigger: () => ({ then: (callback) => callback({ data: {} }) }),
40
+ }),
41
+ }));
36
42
  jest.mock("@truedat/bg/concepts/hooks/useConcepts", () => {
37
43
  const originalModule = jest.requireActual(
38
44
  "@truedat/bg/concepts/hooks/useConcepts"
@@ -60,18 +66,7 @@ jest.mock("@truedat/bg/concepts/hooks/useConcepts", () => {
60
66
  }),
61
67
  };
62
68
  });
63
-
64
- const messages = {
65
- en: {
66
- ...en,
67
- "concepts.status.undefined": "undefined",
68
- "search.save_filters": "save filters",
69
- "search.clear_filters": "clear filters",
70
- "search.applied_filters": "apply filters",
71
- "structures.not_found.body": "",
72
- "search.placeholder": "Search concepts...",
73
- },
74
- };
69
+ jest.mock("@truedat/core/hooks/useUserFilters");
75
70
 
76
71
  const link = {
77
72
  id: 745,
@@ -98,7 +93,6 @@ const props = {
98
93
 
99
94
  describe("<ConceptsLinksManagement />", () => {
100
95
  const renderOpts = {
101
- messages,
102
96
  state: {
103
97
  loading: false,
104
98
  links: [link],
@@ -109,27 +103,26 @@ describe("<ConceptsLinksManagement />", () => {
109
103
  };
110
104
 
111
105
  it("matches the latest snapshot", async () => {
112
- const { container, findByText } = render(
113
- <ConceptsLinksManagement {...props} />,
114
- renderOpts
115
- );
116
- userEvent.click(await findByText(/some/));
106
+ const rendered = render(<ConceptsLinksManagement {...props} />, renderOpts);
107
+ await waitForLoad(rendered);
108
+ const user = userEvent.setup({ delay: null });
109
+ await user.click(rendered.getByText(/some/i));
117
110
  await waitFor(() => {
118
- expect(container.querySelector(".loading")).toBeNull();
111
+ expect(rendered.container.querySelector(".loading")).toBeNull();
119
112
  });
120
- await findByText(/18/);
121
- expect(container).toMatchSnapshot();
113
+ await rendered.findByText(/18/i);
114
+ expect(rendered.container).toMatchSnapshot();
122
115
  });
123
116
 
124
117
  it("select a concept and shows LinkedMessage and structure search table", async () => {
125
- const { findByText, queryByText } = render(
126
- <Suspense fallback={null}>
127
- <ConceptsLinksManagement {...props} />
128
- </Suspense>,
129
- renderOpts
130
- );
118
+ const rendered = render(<ConceptsLinksManagement {...props} />, renderOpts);
119
+ await waitForLoad(rendered);
131
120
 
132
- userEvent.click(await findByText(/foo/));
133
- expect(queryByText("Adding a link to a structure")).toBeInTheDocument();
121
+ const user = userEvent.setup({ delay: null });
122
+ await user.click(rendered.getByText(/foo/i));
123
+ await waitForLoad(rendered);
124
+ expect(
125
+ rendered.getByText(/concept.events.relation_creating/i)
126
+ ).toBeInTheDocument();
134
127
  });
135
128
  });
@@ -1,52 +1,66 @@
1
- import React from "react";
2
- import { shallow, mount } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { ConceptLoader } from "../ConceptLoader";
4
3
 
5
- jest.mock("react-router-dom", () => ({
6
- ...jest.requireActual("react-router-dom"),
7
- useParams: () => ({ id: 1 })
4
+ jest.mock("react-router", () => ({
5
+ ...jest.requireActual("react-router"),
6
+ useParams: () => ({ id: 1 }),
8
7
  }));
9
8
 
10
9
  describe("<ConceptLoader />", () => {
11
- const loading = false;
12
- const fetchConcept = jest.fn();
13
- const clearConcept = jest.fn();
14
-
15
- it("matches the latest snapshot", () => {
16
- const loading = true;
17
- const props = { clearConcept, fetchConcept, loading };
18
- const wrapper = shallow(<ConceptLoader {...props} />);
19
- expect(wrapper).toMatchSnapshot();
10
+ it("matches the latest snapshot", async () => {
11
+ const props = {
12
+ clearConcept: jest.fn(),
13
+ fetchConcept: jest.fn(),
14
+ loading: true,
15
+ };
16
+ const rendered = render(<ConceptLoader {...props} />);
17
+ expect(rendered.container).toMatchSnapshot();
20
18
  });
21
19
 
22
- it("renders a dimmer if loading is true", () => {
23
- const loading = true;
24
- const props = { clearConcept, fetchConcept, loading };
25
- const wrapper = shallow(<ConceptLoader {...props} />);
26
- expect(wrapper.find("Dimmer").length).toBe(1);
20
+ it("renders a dimmer if loading is true", async () => {
21
+ const props = {
22
+ clearConcept: jest.fn(),
23
+ fetchConcept: jest.fn(),
24
+ loading: true,
25
+ };
26
+ const rendered = render(<ConceptLoader {...props} />);
27
+ expect(rendered.container.querySelector(".dimmer")).toBeInTheDocument();
27
28
  });
28
29
 
29
- it("renders null if loading is false", () => {
30
- const props = { clearConcept, fetchConcept, loading };
31
- const wrapper = shallow(<ConceptLoader {...props} />);
32
- expect(wrapper.getElement()).toBeNull();
30
+ it("renders null if loading is false", async () => {
31
+ const props = {
32
+ clearConcept: jest.fn(),
33
+ fetchConcept: jest.fn(),
34
+ loading: false,
35
+ };
36
+ const rendered = render(<ConceptLoader {...props} />);
37
+ await waitForLoad(rendered);
38
+ expect(rendered.container.firstChild).toBeNull();
33
39
  });
34
40
 
35
- it("calls fetchConcept when component mounts but not when it unmounts", () => {
36
- const fetchConcept = jest.fn();
37
- const props = { clearConcept, fetchConcept, loading };
38
- const wrapper = mount(<ConceptLoader {...props} />);
39
- expect(fetchConcept.mock.calls.length).toBe(1);
40
- wrapper.unmount();
41
- expect(fetchConcept.mock.calls.length).toBe(1);
41
+ it("calls fetchConcept when component mounts but not when it unmounts", async () => {
42
+ const props = {
43
+ clearConcept: jest.fn(),
44
+ fetchConcept: jest.fn(),
45
+ loading: false,
46
+ };
47
+ const rendered = render(<ConceptLoader {...props} />);
48
+ await waitForLoad(rendered);
49
+ expect(props.fetchConcept).toHaveBeenCalledTimes(1);
50
+ rendered.unmount();
51
+ expect(props.fetchConcept).toHaveBeenCalledTimes(1);
42
52
  });
43
53
 
44
- it("calls clearConcept when component unmounts but not when it mounts", () => {
45
- const clearConcept = jest.fn();
46
- const props = { clearConcept, fetchConcept, loading };
47
- const wrapper = mount(<ConceptLoader {...props} />);
48
- expect(clearConcept.mock.calls.length).toBe(0);
49
- wrapper.unmount();
50
- expect(clearConcept.mock.calls.length).toBe(1);
54
+ it("calls clearConcept when component unmounts but not when it mounts", async () => {
55
+ const props = {
56
+ clearConcept: jest.fn(),
57
+ fetchConcept: jest.fn(),
58
+ loading: false,
59
+ };
60
+ const rendered = render(<ConceptLoader {...props} />);
61
+ await waitForLoad(rendered);
62
+ expect(props.clearConcept).toHaveBeenCalledTimes(0);
63
+ rendered.unmount();
64
+ expect(props.clearConcept).toHaveBeenCalledTimes(1);
51
65
  });
52
66
  });
@@ -1,11 +1,8 @@
1
- import React from "react";
2
- import { waitFor } from "@testing-library/react";
3
- import { render } from "@truedat/test/render";
4
- import { DOMAINS_QUERY } from "@truedat/core/api/queries";
1
+ import { render, waitForLoad } from "@truedat/test/render";
2
+ import { domainsMock } from "@truedat/test/mocks";
5
3
  import { ConceptManageDomain } from "../ConceptManageDomain";
6
4
 
7
5
  describe("<ConceptManageDomain />", () => {
8
- // const id = 5;
9
6
  const domainOptions = [
10
7
  { id: 1, name: "foo", level: 0 },
11
8
  { id: 2, name: "bar", level: 0 },
@@ -19,50 +16,18 @@ describe("<ConceptManageDomain />", () => {
19
16
  setToDomain,
20
17
  };
21
18
 
22
- const domains = [
23
- {
24
- id: 1,
25
- name: "foo",
26
- parentId: 6,
27
- actions: [],
28
- externalId: "external_foo",
29
- },
30
- ];
31
- const variables = {
32
- action: "manageConcept",
33
- };
34
-
35
- const domainsMock = {
36
- request: { query: DOMAINS_QUERY, variables },
37
- result: { data: { domains: domains } },
38
- };
39
-
40
19
  const renderOpts = {
41
- mocks: [domainsMock],
42
- messages: {
43
- en: {
44
- "concept.changeDomain.header": "edit domain",
45
- "concept.changeDomain.label": "domain",
46
- "conceptDomain.actions.update": "update",
47
- "domain.selector.label": "domain",
48
- "domain.selector.placeholder": "select a domain...",
49
- },
50
- },
51
- fallback: "lazy",
20
+ mocks: [
21
+ domainsMock({
22
+ action: "manageConcept",
23
+ domainActions: undefined,
24
+ ids: undefined,
25
+ }),
26
+ ],
52
27
  };
53
-
54
28
  it("matches the latest snapshot", async () => {
55
- const { container, queryByText } = render(
56
- <ConceptManageDomain {...props} />,
57
- renderOpts
58
- );
59
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
60
- await waitFor(() =>
61
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
62
- );
63
-
64
- await waitFor(() => {
65
- expect(container).toMatchSnapshot();
66
- });
29
+ const rendered = render(<ConceptManageDomain {...props} />, renderOpts);
30
+ await waitForLoad(rendered);
31
+ expect(rendered.container).toMatchSnapshot();
67
32
  });
68
33
  });
@@ -1,36 +1,77 @@
1
- import React from "react";
2
- import { mount } from "enzyme";
3
- import { intl } from "@truedat/test/intl-stub";
1
+ import userEvent from "@testing-library/user-event";
2
+ import { waitFor } from "@testing-library/react";
3
+ import { render, waitForLoad } from "@truedat/test/render";
4
+ import { domainsMock } from "@truedat/test/mocks";
4
5
  import { ConceptManageDomainPopup } from "../ConceptManageDomainPopup";
5
6
 
6
- // workaround for enzyme issue with React.useContext
7
- // see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
8
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
9
- jest.mock("../ConceptManageDomain");
10
-
11
7
  describe("<ConceptManageDomainPopup />", () => {
12
8
  const props = {
13
9
  saving: false,
14
10
  update_domain: true,
15
11
  };
16
12
 
17
- it("matches the latest snapshot", () => {
18
- const wrapper = mount(<ConceptManageDomainPopup {...props} />);
19
- expect(wrapper).toMatchSnapshot();
13
+ const renderOpts = {
14
+ mocks: [
15
+ domainsMock({
16
+ action: "manageConcept",
17
+ domainActions: undefined,
18
+ ids: undefined,
19
+ }),
20
+ ],
21
+ };
22
+
23
+ it("matches the latest snapshot", async () => {
24
+ const rendered = render(
25
+ <ConceptManageDomainPopup {...props} />,
26
+ renderOpts
27
+ );
28
+ await waitForLoad(rendered);
29
+ expect(rendered.container).toMatchSnapshot();
20
30
  });
21
31
 
22
- it("manages open and close popup", () => {
23
- const wrapper = mount(<ConceptManageDomainPopup {...props} />);
24
- wrapper.setProps({ saving: true, update_domain: true });
25
- expect(wrapper.find("Popup").prop("open")).toBeFalsy();
26
- wrapper.find("Popup").find("Portal").find("Button").simulate("click");
27
- expect(wrapper.find("Popup").prop("open")).toBeTruthy();
28
- wrapper.find("Popup").find("Portal").find("Button").simulate("click");
29
- expect(wrapper.find("Popup").prop("open")).toBeFalsy();
30
- wrapper.find("Popup").find("Portal").find("Button").simulate("click");
31
- expect(wrapper.find("Popup").prop("open")).toBeTruthy();
32
- wrapper.setProps({ saving: false, update_domain: true });
33
- wrapper.update();
34
- expect(wrapper.find("Popup").prop("open")).toBeFalsy();
32
+ it("manages open and close popup", async () => {
33
+ const user = userEvent.setup({ delay: null });
34
+ const rendered = render(
35
+ <ConceptManageDomainPopup {...props} />,
36
+ renderOpts
37
+ );
38
+ await waitForLoad(rendered);
39
+
40
+ const triggerButton = rendered.getByRole("button");
41
+ // Initial state - popup should be closed
42
+ expect(
43
+ rendered.queryByText(/concept.changedomain.header/i)
44
+ ).not.toBeInTheDocument();
45
+
46
+ // Open popup
47
+ await user.click(triggerButton);
48
+ await waitFor(() =>
49
+ expect(
50
+ rendered.getByText(/concept.changedomain.header/i)
51
+ ).toBeInTheDocument()
52
+ );
53
+
54
+ // Close popup
55
+ await user.click(triggerButton);
56
+ await waitFor(() =>
57
+ expect(
58
+ rendered.queryByText(/concept.changedomain.header/i)
59
+ ).not.toBeInTheDocument()
60
+ );
61
+
62
+ // Open popup again
63
+ await user.click(triggerButton);
64
+ await waitFor(() =>
65
+ expect(
66
+ rendered.getByText(/concept.changedomain.header/i)
67
+ ).toBeInTheDocument()
68
+ );
69
+
70
+ // Popup should close when saving is complete
71
+ rendered.rerender(<ConceptManageDomainPopup {...props} saving={true} />);
72
+ rendered.rerender(<ConceptManageDomainPopup {...props} saving={false} />);
73
+ await waitFor(() =>
74
+ expect(rendered.queryByRole("dialog")).not.toBeInTheDocument()
75
+ );
35
76
  });
36
77
  });
@@ -1,22 +1,13 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { ConceptRow } from "../ConceptRow";
4
3
  import { getConceptColumns } from "../../selectors";
5
4
 
6
- const renderOpts = {
7
- messages: {
8
- en: {
9
- "concepts.status.draft": "draft",
10
- },
11
- },
12
- };
13
-
14
5
  describe("<ConceptRow />", () => {
15
6
  it("matches the latest snapshot", () => {
16
7
  const columns = getConceptColumns({ conceptColumns: null }).concepts;
17
8
  const concept = {
18
- business_concept_id: 12,
19
- id: 42,
9
+ business_concept_id: "12",
10
+ id: "42",
20
11
  name: "foo",
21
12
  status: "draft",
22
13
  bcv_last_change_at: "2018-06-27T07:32:53.154377Z",
@@ -27,8 +18,7 @@ describe("<ConceptRow />", () => {
27
18
  <tbody>
28
19
  <ConceptRow {...props} />
29
20
  </tbody>
30
- </table>,
31
- renderOpts
21
+ </table>
32
22
  );
33
23
  expect(container).toMatchSnapshot();
34
24
  });
@@ -36,8 +26,8 @@ describe("<ConceptRow />", () => {
36
26
  it("renders concept name as link", () => {
37
27
  const columns = getConceptColumns({ conceptColumns: null }).concepts;
38
28
  const concept = {
39
- business_concept_id: 12,
40
- id: 42,
29
+ business_concept_id: "12",
30
+ id: "42",
41
31
  name: "foo",
42
32
  status: "draft",
43
33
  bcv_last_change_at: "2018-06-27T07:32:53.154377Z",
@@ -48,8 +38,7 @@ describe("<ConceptRow />", () => {
48
38
  <tbody>
49
39
  <ConceptRow {...props} />
50
40
  </tbody>
51
- </table>,
52
- renderOpts
41
+ </table>
53
42
  );
54
43
 
55
44
  const link = wrapper.getByText("foo");
@@ -1,5 +1,4 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { ConceptSubscription } from "../ConceptSubscription";
4
3
 
5
4
  describe("<ConceptSubscription />", () => {
@@ -10,24 +9,25 @@ describe("<ConceptSubscription />", () => {
10
9
  scope: {
11
10
  events: ["new_concept_draft"],
12
11
  resource_id: 1,
13
- resource_type: "concept"
12
+ resource_type: "concept",
14
13
  },
15
14
  subscriber: {
16
15
  id: 3,
17
16
  identifier: "2",
18
- type: "user"
19
- }
17
+ type: "user",
18
+ },
20
19
  };
21
20
  const subscriptionUpdating = false;
22
21
 
23
22
  const props = {
24
23
  concept,
25
24
  searchSubscription,
26
- subscriptionUpdating
25
+ subscriptionUpdating,
27
26
  };
28
27
 
29
- it("matches the latest snapshot", () => {
30
- const wrapper = shallow(<ConceptSubscription {...props} />);
31
- expect(wrapper).toMatchSnapshot();
28
+ it("matches the latest snapshot", async () => {
29
+ const rendered = render(<ConceptSubscription {...props} />);
30
+ await waitForLoad(rendered);
31
+ expect(rendered.container).toMatchSnapshot();
32
32
  });
33
33
  });