@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,168 +1,148 @@
1
- import _ from "lodash/fp";
2
1
  import React from "react";
3
- import { render } from "@truedat/test/render";
4
- import { MemoryRouter } from "react-router-dom";
2
+ import { render, waitForLoad } from "@truedat/test/render";
5
3
  import DomainContent from "../DomainContent";
4
+ import { useAuthorized } from "@truedat/core/hooks/useAuthorized";
5
+ import {
6
+ DOMAIN_CONCEPTS,
7
+ DOMAIN_IMPLEMENTATIONS,
8
+ DOMAIN_MEMBERS,
9
+ DOMAIN_MEMBERS_NEW,
10
+ DOMAIN_STRUCTURES,
11
+ DOMAIN_SUBDOMAINS,
12
+ } from "@truedat/core/routes";
6
13
 
7
- jest.mock("../../../hooks/useDomains", () => ({
8
- ...jest.requireActual("../../../hooks/useDomains"),
9
- useDomain: jest.fn((domainId) => ({
10
- data: {
11
- description: "DOMAIN DESCRIPTION",
12
- domain_group: null,
13
- external_id: "EXTERNAL ID",
14
- id: domainId,
15
- name: "DOMAIN NAME",
16
- parent_id: 6,
17
- parents: null,
18
- type: null,
19
- },
20
- })),
14
+ jest.mock("@truedat/core/hooks/useAuthorized", () => ({
15
+ useAuthorized: jest.fn(() => true),
21
16
  }));
22
17
 
18
+ // Mock child components
19
+ jest.mock("../../../concepts/components/DomainConcepts", () => () => (
20
+ <div>DomainConcepts</div>
21
+ ));
22
+
23
+ jest.mock("../DomainCards", () => () => <div>DomainCards</div>);
24
+
25
+ jest.mock("../DomainStructures", () => () => <div>DomainStructures</div>);
26
+
27
+ jest.mock("../DomainImplementations", () => () => (
28
+ <div>DomainImplementations</div>
29
+ ));
30
+
31
+ jest.mock("../DomainMembers", () => () => <div>DomainMembers</div>);
32
+
33
+ jest.mock("../AddDomainMember", () => () => <div>AddDomainMember</div>);
34
+
35
+ jest.mock("@truedat/dd/components/UserSearchFiltersLoader", () => () => (
36
+ <div>UserSearchFiltersLoader</div>
37
+ ));
38
+
39
+ jest.mock("@truedat/auth/roles/components/RolesLoader", () => () => (
40
+ <div>RolesLoader</div>
41
+ ));
42
+
23
43
  describe("<DomainContent />", () => {
24
- const domains = [
25
- {
26
- id: 1,
27
- name: "rootNoSub",
28
- type: null,
29
- description: "Root domain with no subdomains",
30
- parents: [
31
- {
32
- id: 1,
33
- name: "rootNoSub",
34
- external_id: "rootNoSub",
35
- },
36
- ],
37
- domain_group: {
38
- id: 1,
39
- name: "DomainGroup",
40
- },
41
- parent_id: null,
42
- external_id: "rootNoSub",
43
- },
44
- {
45
- id: 2,
46
- name: "rootWithSub",
47
- type: null,
48
- description: null,
49
- parents: [
50
- {
51
- id: 2,
52
- name: "rootWithSub",
53
- external_id: "rootWithSub",
54
- },
55
- ],
56
- domain_group: {
57
- id: 1,
58
- name: "DomainGroup",
59
- },
60
- parent_id: null,
61
- external_id: "rootWithSub",
62
- },
63
- {
64
- id: 3,
65
- name: "rootOtherGroup",
66
- type: null,
67
- description: null,
68
- parents: [
69
- {
70
- id: 3,
71
- name: "rootOtherGroup",
72
- external_id: "rootOtherGroup",
73
- },
74
- ],
75
- domain_group: {
76
- id: 2,
77
- name: "OtherDomainGroup",
78
- },
79
- parent_id: null,
80
- external_id: "rootOtherGroup",
81
- },
82
- {
83
- id: 4,
84
- name: "childSubdomain",
85
- type: null,
86
- description: null,
87
- parents: [
88
- {
89
- id: 3,
90
- name: "childSubdomain",
91
- external_id: "subdomain",
92
- },
93
- {
94
- id: 2,
95
- name: "rootWithSub",
96
- external_id: "rootWithSub",
97
- },
98
- ],
99
- domain_group: {
100
- id: 1,
101
- name: "DomainGroup",
102
- },
103
- parent_id: 2,
104
- external_id: "subdomain",
105
- },
106
- ];
107
-
108
- const taxonomyConfig = {
109
- priorityTabs: [],
110
- hiddenTabs: [],
44
+ const domain = {
45
+ id: "1",
46
+ name: "Test Domain",
111
47
  };
112
48
 
113
- const testList = [
114
- {
115
- content: "subdomains",
116
- domainId: 1,
117
- textToSearch: "This domain has no subdomains",
118
- },
119
- {
120
- content: "subdomains",
121
- domainId: 2,
122
- textToSearch: "childSubdomain",
123
- },
124
- {
125
- content: "concepts",
126
- domainId: 1,
127
- textToSearch: "Searching...",
128
- },
129
- {
130
- content: "structures",
131
- domainId: 1,
132
- textToSearch: "You are not authorized to view this content",
133
- },
134
- {
135
- content: "implementations",
136
- domainId: 1,
137
- textToSearch: "You are not authorized to view this content",
138
- },
139
- {
140
- content: "members",
141
- domainId: 1,
142
- textToSearch: "This domain has no members",
143
- },
144
- ];
145
- const renderOpts = {
146
- mocks: [],
147
- fallback: "lazy",
148
- };
49
+ const domains = [domain];
50
+
51
+ it("renders correctly with default route", async () => {
52
+ const rendered = render(
53
+ <DomainContent domain={domain} domains={domains} />
54
+ );
55
+ await waitForLoad(rendered);
56
+ expect(rendered.container).toMatchSnapshot();
57
+ });
58
+
59
+ it("renders correctly with concepts route", async () => {
60
+ const rendered = render(
61
+ <DomainContent domain={domain} domains={domains} />,
62
+ {
63
+ routes: [DOMAIN_CONCEPTS],
64
+ }
65
+ );
66
+ await waitForLoad(rendered);
67
+ expect(rendered.container).toMatchSnapshot();
68
+ });
69
+
70
+ it("renders correctly with structures route", async () => {
71
+ const rendered = render(
72
+ <DomainContent domain={domain} domains={domains} />,
73
+ {
74
+ routes: [DOMAIN_STRUCTURES],
75
+ }
76
+ );
77
+ await waitForLoad(rendered);
78
+ expect(rendered.container).toMatchSnapshot();
79
+ });
80
+
81
+ it("renders unauthorized component when not authorized for structures", async () => {
82
+ useAuthorized.mockReturnValueOnce(false);
83
+ const rendered = render(
84
+ <DomainContent domain={domain} domains={domains} />,
85
+ {
86
+ routes: [DOMAIN_STRUCTURES],
87
+ }
88
+ );
89
+ await waitForLoad(rendered);
90
+ expect(rendered.container).toMatchSnapshot();
91
+ });
92
+
93
+ it("renders correctly with implementations route", async () => {
94
+ const rendered = render(
95
+ <DomainContent domain={domain} domains={domains} />,
96
+ {
97
+ routes: [DOMAIN_IMPLEMENTATIONS],
98
+ }
99
+ );
100
+ await waitForLoad(rendered);
101
+ expect(rendered.container).toMatchSnapshot();
102
+ });
103
+
104
+ it("renders unauthorized component when not authorized for implementations", async () => {
105
+ useAuthorized.mockReturnValueOnce(false);
106
+ const rendered = render(
107
+ <DomainContent domain={domain} domains={domains} />,
108
+ {
109
+ routes: [DOMAIN_IMPLEMENTATIONS],
110
+ }
111
+ );
112
+ await waitForLoad(rendered);
113
+ expect(rendered.container).toMatchSnapshot();
114
+ });
115
+
116
+ it("renders correctly with members route", async () => {
117
+ const rendered = render(
118
+ <DomainContent domain={domain} domains={domains} />,
119
+ {
120
+ routes: [DOMAIN_MEMBERS],
121
+ }
122
+ );
123
+ await waitForLoad(rendered);
124
+ expect(rendered.container).toMatchSnapshot();
125
+ });
126
+
127
+ it("renders correctly with new member route", async () => {
128
+ const rendered = render(
129
+ <DomainContent domain={domain} domains={domains} />,
130
+ {
131
+ routes: [DOMAIN_MEMBERS_NEW],
132
+ }
133
+ );
134
+ await waitForLoad(rendered);
135
+ expect(rendered.container).toMatchSnapshot();
136
+ });
149
137
 
150
- test.each(testList)(
151
- "Render %s content for %s domain with text %s",
152
- ({ content, domainId, textToSearch }) => {
153
- const domain = _.find(["id", domainId])(domains);
154
- const { container, getByText } = render(
155
- <MemoryRouter initialEntries={[`/domains/${domainId}/${content}`]}>
156
- <DomainContent
157
- domain={domain}
158
- domains={domains}
159
- taxonomyConfig={taxonomyConfig}
160
- />
161
- </MemoryRouter>,
162
- renderOpts
163
- );
164
- expect(container).toMatchSnapshot();
165
- expect(getByText(textToSearch)).toBeInTheDocument();
166
- }
167
- );
138
+ it("renders correctly with subdomains route", async () => {
139
+ const rendered = render(
140
+ <DomainContent domain={domain} domains={domains} />,
141
+ {
142
+ routes: [DOMAIN_SUBDOMAINS],
143
+ }
144
+ );
145
+ await waitForLoad(rendered);
146
+ expect(rendered.container).toMatchSnapshot();
147
+ });
168
148
  });
@@ -1,30 +1,25 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
- import { useDomains } from "../../../hooks/useDomains";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import { DomainCrumbs } from "../DomainCrumbs";
5
3
 
6
4
  jest.mock("../../../hooks/useDomains", () => ({
7
5
  ...jest.requireActual("../../../hooks/useDomains"),
8
- useDomains: jest.fn(),
6
+ useDomains: () => ({
7
+ data: [
8
+ { id: "1", name: "foo", parent_id: null },
9
+ { id: "2", name: "bar", parent_id: "1" },
10
+ { id: "3", name: "baz", parent_id: "2" },
11
+ { id: "4", name: "qux", parent_id: null },
12
+ ],
13
+ }),
9
14
  }));
10
15
 
11
16
  describe("<DomainCrumbs />", () => {
12
- const domain = { id: 3, name: "domain" };
17
+ const domain = { id: "3", name: "domain" };
13
18
  const props = { domain, actionCrumb: "domain" };
14
19
 
15
- beforeEach(() => {
16
- require("../../../hooks/useDomains").useDomains.mockReturnValue({
17
- data: [
18
- { id: 1, name: "foo", parent_id: null },
19
- { id: 2, name: "bar", parent_id: 1 },
20
- { id: 3, name: "baz", parent_id: 2 },
21
- { id: 4, name: "qux", parent_id: null },
22
- ],
23
- });
24
- });
25
-
26
- it("matches the latest snapshot", () => {
27
- const { container } = render(<DomainCrumbs {...props} />);
28
- expect(container).toMatchSnapshot();
20
+ it("matches the latest snapshot", async () => {
21
+ const rendered = render(<DomainCrumbs {...props} />);
22
+ await waitForLoad(rendered);
23
+ expect(rendered.container).toMatchSnapshot();
29
24
  });
30
25
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { DomainDetail } from "../DomainDetail";
4
3
 
@@ -14,7 +13,7 @@ jest.mock("../../../hooks/useDomains", () => ({
14
13
  }));
15
14
 
16
15
  describe("<DomainDetail />", () => {
17
- const id = 7;
16
+ const id = "7";
18
17
  const props = { id };
19
18
 
20
19
  beforeEach(() => {
@@ -23,7 +22,7 @@ describe("<DomainDetail />", () => {
23
22
  description: "el padre es element_6",
24
23
  domain_group: null,
25
24
  external_id: "7",
26
- id: 7,
25
+ id: "7",
27
26
  name: "element_7",
28
27
  parent_id: 6,
29
28
  parents: null,
@@ -1,7 +1,6 @@
1
- import React from "react";
2
1
  import userEvent from "@testing-library/user-event";
3
- import { fireEvent, waitFor } from "@testing-library/react";
4
- import { render } from "@truedat/test/render";
2
+ import { act } from "@testing-library/react";
3
+ import { render, waitForLoad } from "@truedat/test/render";
5
4
  import { DomainForm } from "../DomainForm";
6
5
  import { useDomains } from "../../../hooks/useDomains";
7
6
 
@@ -83,30 +82,6 @@ jest.mock("../../../hooks/useDomains", () => ({
83
82
  })),
84
83
  }));
85
84
 
86
- const renderOpts = {
87
- messages: {
88
- en: {
89
- "domain.label.domain_group": "New Group ",
90
- "form.validation.required": "Prop is required",
91
- "domain.props.parent": "Parent Domain",
92
- "domain.selector.placeholder": "Select a domain...",
93
- "domain.props.name": "Name",
94
- "domain.props.name.placeholder": "Name-placeholder",
95
- "domain.props.external_id": "External_id",
96
- "domain.props.external_id.placeholder": "External_id-placeholder",
97
- "domain.props.domain_group": "Domain_group",
98
- "domain.props.domain_group.placeholder": "Domain_group-placeholder",
99
- "domain.props.type": "Type",
100
- "domain.props.type.placeholder": "Type-placeholder",
101
- "domain.props.description.placeholder": "Description-placeholder",
102
- "domain.props.description": "Description",
103
- "actions.save": "Save",
104
- "actions.cancel": "Cancel",
105
- },
106
- },
107
- fallback: "lazy",
108
- };
109
-
110
85
  describe("<DomainForm />", () => {
111
86
  const onSubmit = jest.fn();
112
87
  const domain = { id: 1, name: "nn", external_id: "foo", description: "dd" };
@@ -114,27 +89,38 @@ describe("<DomainForm />", () => {
114
89
  const props = { domain, onSubmit, isSubmitting };
115
90
 
116
91
  it("matches the latest snapshot", async () => {
117
- const { container, queryByText } = render(
118
- <DomainForm {...props} />,
119
- renderOpts
120
- );
121
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
122
- expect(container).toMatchSnapshot();
92
+ const rendered = render(<DomainForm {...props} />);
93
+ await waitForLoad(rendered);
94
+ expect(rendered.container).toMatchSnapshot();
123
95
  });
124
96
 
125
97
  it("enables submit when required fields have values", async () => {
126
98
  const props = { domain: {}, onSubmit: jest.fn() };
127
- const { findByRole } = render(<DomainForm {...props} />, renderOpts);
128
-
129
- expect(await findByRole("button", { name: "Save" })).toBeDisabled();
130
-
131
- userEvent.type(await findByRole("textbox", { name: "Name" }), "name");
132
- userEvent.type(await findByRole("textbox", { name: "External_id" }), "id");
133
-
134
- expect(await findByRole("button", { name: "Save" })).toBeEnabled();
99
+ const rendered = render(<DomainForm {...props} />);
100
+ await waitForLoad(rendered);
101
+
102
+ expect(
103
+ await rendered.findByRole("button", { name: /save/i })
104
+ ).toBeDisabled();
105
+
106
+ const user = userEvent.setup({ delay: null });
107
+ await act(async () => {
108
+ await user.type(
109
+ await rendered.findByRole("textbox", { name: /name/i }),
110
+ "name"
111
+ );
112
+ await user.type(
113
+ await rendered.findByRole("textbox", { name: /external_id/i }),
114
+ "id"
115
+ );
116
+ });
117
+
118
+ expect(
119
+ await rendered.findByRole("button", { name: /save/i })
120
+ ).toBeEnabled();
135
121
  });
136
122
 
137
- it("should generate unique domain group options", () => {
123
+ it("should generate unique domain group options", async () => {
138
124
  useDomains.mockImplementationOnce(() => ({
139
125
  data: [
140
126
  { domain_group: { name: "DomainGroup1" } },
@@ -147,16 +133,12 @@ describe("<DomainForm />", () => {
147
133
  ],
148
134
  }));
149
135
 
150
- const { getByText, getAllByRole } = render(
151
- <DomainForm onSubmit={jest.fn()} />,
152
- renderOpts
153
- );
154
-
155
- const domainGroupPlaceholder = getByText("Domain_group-placeholder");
136
+ const rendered = render(<DomainForm onSubmit={jest.fn()} />);
137
+ await waitForLoad(rendered);
156
138
 
157
- fireEvent.click(domainGroupPlaceholder);
158
-
159
- const options = getAllByRole("option").map((option) => option.textContent);
139
+ const options = rendered
140
+ .getAllByRole("option")
141
+ .map((option) => option.textContent);
160
142
 
161
143
  expect(options).toMatchObject([
162
144
  "DomainGroup1",
@@ -179,12 +161,12 @@ describe("<DomainForm />", () => {
179
161
  ],
180
162
  }));
181
163
 
182
- const { getAllByRole } = render(
183
- <DomainForm onSubmit={jest.fn()} />,
184
- renderOpts
185
- );
164
+ const rendered = render(<DomainForm onSubmit={jest.fn()} />);
165
+ await waitForLoad(rendered);
186
166
 
187
- const options = getAllByRole("option").map((option) => option.textContent);
167
+ const options = rendered
168
+ .getAllByRole("option")
169
+ .map((option) => option.textContent);
188
170
 
189
171
  expect(options).toMatchObject(["", "Type1", "Type2", "Type3", "Type4"]);
190
172
  });
@@ -192,12 +174,14 @@ describe("<DomainForm />", () => {
192
174
  it("should generate domain parent options", async () => {
193
175
  const domain = { id: 2, parentable_ids: [1, 5, 6, 7] };
194
176
 
195
- const { getAllByRole } = render(
196
- <DomainForm domain={domain} onSubmit={jest.fn()} />,
197
- renderOpts
177
+ const rendered = render(
178
+ <DomainForm domain={domain} onSubmit={jest.fn()} />
198
179
  );
180
+ await waitForLoad(rendered);
199
181
 
200
- const options = getAllByRole("option").map((option) => option.textContent);
182
+ const options = rendered
183
+ .getAllByRole("option")
184
+ .map((option) => option.textContent);
201
185
 
202
186
  expect(options).toMatchObject([
203
187
  "domain_1",
@@ -1,25 +1,28 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { DomainItem } from "../DomainItem";
4
3
 
5
4
  describe("<DomainItem />", () => {
6
5
  const domain = { name: "foo" };
7
6
  const props = { domain, index: 0, size: 1 };
8
- it("matches the latest snapshot", () => {
9
- const wrapper = shallow(<DomainItem {...props} />);
10
- expect(wrapper).toMatchSnapshot();
7
+
8
+ it("matches the latest snapshot", async () => {
9
+ const rendered = render(<DomainItem {...props} />);
10
+ await waitForLoad(rendered);
11
+ expect(rendered.container).toMatchSnapshot();
11
12
  });
12
13
 
13
- it("renders name and icon when the domain is not the last item", () => {
14
- const wrapper = shallow(<DomainItem {...props} />);
15
- expect(wrapper.find("span").text()).toEqual(domain.name);
16
- expect(wrapper.find("Icon")).toHaveLength(1);
14
+ it("renders name and icon when the domain is not the last item", async () => {
15
+ const rendered = render(<DomainItem {...props} />);
16
+ await waitForLoad(rendered);
17
+ expect(rendered.getByText(/foo/i)).toBeInTheDocument();
18
+ expect(rendered.container.querySelector(".icon")).toBeInTheDocument();
17
19
  });
18
20
 
19
- it("renders name but not icon when the domain is the last item", () => {
20
- const props = { domain, index: 1, size: 1 };
21
- const wrapper = shallow(<DomainItem {...props} />);
22
- expect(wrapper.find("span").text()).toEqual(domain.name);
23
- expect(wrapper.find("Icon")).toHaveLength(0);
21
+ it("renders name but not icon when the domain is the last item", async () => {
22
+ const lastItemProps = { domain, index: 1, size: 1 };
23
+ const rendered = render(<DomainItem {...lastItemProps} />);
24
+ await waitForLoad(rendered);
25
+ expect(rendered.getByText(/foo/i)).toBeInTheDocument();
26
+ expect(rendered.container.querySelector(".icon")).not.toBeInTheDocument();
24
27
  });
25
28
  });
@@ -1,21 +1,17 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import { intl } from "@truedat/test/intl-stub";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import { DomainMembers } from "../DomainMembers";
5
3
 
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("react-router-dom", () => ({
10
- ...jest.requireActual("react-router-dom"),
11
- useParams: jest.fn().mockReturnValue({ id: 1 }),
4
+ jest.mock("react-router", () => ({
5
+ ...jest.requireActual("react-router"),
6
+ useParams: jest.fn().mockReturnValue({ id: "1" }),
12
7
  }));
13
8
 
14
9
  describe("<DomainMembers />", () => {
15
- const props = { domainId: 1 };
10
+ const props = { domainId: "1" };
16
11
 
17
- it("matches the latest snapshot", () => {
18
- const { container } = render(<DomainMembers {...props} />);
19
- expect(container).toMatchSnapshot();
12
+ it("matches the latest snapshot", async () => {
13
+ const rendered = render(<DomainMembers {...props} />);
14
+ await waitForLoad(rendered);
15
+ expect(rendered.container).toMatchSnapshot();
20
16
  });
21
17
  });
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import { render, waitForLoad } from "@truedat/test/render";
3
+ import DomainRoutes from "../DomainRoutes";
4
+ import { useAuthorized } from "@truedat/core/hooks/useAuthorized";
5
+ import { DOMAINS, DOMAIN, DOMAINS_NEW } from "@truedat/core/routes";
6
+
7
+ jest.mock("@truedat/core/hooks/useAuthorized", () => ({
8
+ useAuthorized: jest.fn(() => true),
9
+ }));
10
+
11
+ // Mock all components used in DomainRoutes
12
+ jest.mock("../NewDomain", () => () => <div>NewDomain</div>);
13
+ jest.mock("../Domains", () => () => <div>Domains</div>);
14
+
15
+ describe("<DomainRoutes />", () => {
16
+ it("renders correctly with default route", async () => {
17
+ const rendered = render(<DomainRoutes />);
18
+ await waitForLoad(rendered);
19
+ expect(rendered.container).toMatchSnapshot();
20
+ });
21
+
22
+ it("renders correctly with domains route", async () => {
23
+ const rendered = render(<DomainRoutes />, {
24
+ routes: ["/domains"],
25
+ });
26
+ await waitForLoad(rendered);
27
+ expect(rendered.container).toMatchSnapshot();
28
+ });
29
+
30
+ it("renders correctly with domain detail route", async () => {
31
+ const rendered = render(<DomainRoutes />, {
32
+ routes: ["/domains/123"],
33
+ });
34
+ await waitForLoad(rendered);
35
+ expect(rendered.container).toMatchSnapshot();
36
+ });
37
+
38
+ it("renders correctly with new domain route", async () => {
39
+ const rendered = render(<DomainRoutes />, {
40
+ routes: ["/domains/new"],
41
+ });
42
+ await waitForLoad(rendered);
43
+ expect(rendered.container).toMatchSnapshot();
44
+ });
45
+
46
+ it("renders unauthorized component when not authorized", async () => {
47
+ useAuthorized.mockReturnValueOnce(false);
48
+ const rendered = render(<DomainRoutes />, {
49
+ routes: ["/domains"],
50
+ });
51
+ await waitForLoad(rendered);
52
+ expect(rendered.container).toMatchSnapshot();
53
+ });
54
+ });