@truedat/qx 7.5.7 → 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 (240) hide show
  1. package/package.json +45 -64
  2. package/src/components/QxRoutes.js +38 -19
  3. package/src/components/__tests__/QxRoutes.spec.js +73 -0
  4. package/src/components/__tests__/__fixtures__/helper.js +6 -7
  5. package/src/components/__tests__/__snapshots__/QxRoutes.spec.js.snap +60 -0
  6. package/src/components/common/ClauseViewer.js +6 -6
  7. package/src/components/common/DescriptionInput.js +0 -1
  8. package/src/components/common/ResourceSelector.js +2 -3
  9. package/src/components/common/TestFormWrapper.js +2 -13
  10. package/src/components/common/TypeSelector.js +0 -1
  11. package/src/components/common/__tests__/DescriptionInput.spec.js +12 -21
  12. package/src/components/common/__tests__/ResourceSelector.spec.js +42 -87
  13. package/src/components/common/__tests__/TypeSelector.spec.js +0 -1
  14. package/src/components/common/__tests__/__snapshots__/ResourceSelector.spec.js.snap +32 -22
  15. package/src/components/common/expressions/Clauses.js +5 -6
  16. package/src/components/common/expressions/Condition.js +8 -9
  17. package/src/components/common/expressions/ConstantSelector.js +2 -2
  18. package/src/components/common/expressions/Expression.js +2 -2
  19. package/src/components/common/expressions/FieldSelector.js +2 -2
  20. package/src/components/common/expressions/FunctionArgs.js +5 -6
  21. package/src/components/common/expressions/FunctionSelector.js +2 -2
  22. package/src/components/common/expressions/ParamSelector.js +2 -2
  23. package/src/components/common/expressions/ShapeSelector.js +7 -16
  24. package/src/components/common/expressions/__tests__/Clauses.spec.js +10 -9
  25. package/src/components/common/expressions/__tests__/Condition.spec.js +6 -26
  26. package/src/components/common/expressions/__tests__/ConstantSelector.spec.js +14 -30
  27. package/src/components/common/expressions/__tests__/Expression.spec.js +36 -62
  28. package/src/components/common/expressions/__tests__/FieldSelector.spec.js +2 -7
  29. package/src/components/common/expressions/__tests__/FunctionArgs.spec.js +18 -44
  30. package/src/components/common/expressions/__tests__/FunctionSelector.spec.js +19 -27
  31. package/src/components/common/expressions/__tests__/ParamSelector.spec.js +28 -58
  32. package/src/components/common/expressions/__tests__/ShapeSelector.spec.js +34 -47
  33. package/src/components/common/expressions/__tests__/__snapshots__/Condition.spec.js.snap +6 -6
  34. package/src/components/common/expressions/__tests__/__snapshots__/ConstantSelector.spec.js.snap +6 -7
  35. package/src/components/common/expressions/__tests__/__snapshots__/Expression.spec.js.snap +20 -20
  36. package/src/components/common/expressions/__tests__/__snapshots__/FunctionArgs.spec.js.snap +8 -9
  37. package/src/components/common/expressions/__tests__/__snapshots__/FunctionSelector.spec.js.snap +670 -8
  38. package/src/components/common/expressions/__tests__/__snapshots__/ParamSelector.spec.js.snap +5 -5
  39. package/src/components/common/expressions/__tests__/__snapshots__/ShapeSelector.spec.js.snap +9 -9
  40. package/src/components/common/expressions/__tests__/useWatchParams.spec.js +1 -4
  41. package/src/components/common/expressions/constantInputs/AnySelector.js +5 -6
  42. package/src/components/common/expressions/constantInputs/BooleanSelector.js +2 -2
  43. package/src/components/common/expressions/constantInputs/DefaultSelector.js +2 -2
  44. package/src/components/common/expressions/constantInputs/__tests__/AnySelector.spec.js +16 -37
  45. package/src/components/common/expressions/constantInputs/__tests__/BooleanSelector.spec.js +14 -17
  46. package/src/components/common/expressions/constantInputs/__tests__/DefaultSelector.spec.js +12 -27
  47. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/AnySelector.spec.js.snap +11 -11
  48. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/DefaultSelector.spec.js.snap +0 -1
  49. package/src/components/common/resourceSelectors/DataStructureSelector.js +2 -2
  50. package/src/components/common/resourceSelectors/DataViewSelector.js +2 -2
  51. package/src/components/common/resourceSelectors/ReferenceDatasetSelector.js +2 -2
  52. package/src/components/common/resourceSelectors/__tests__/DataStructureSelector.spec.js +5 -29
  53. package/src/components/common/resourceSelectors/__tests__/DataViewSelector.spec.js +23 -25
  54. package/src/components/common/resourceSelectors/__tests__/ReferenceDatasetSelector.spec.js +21 -32
  55. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataStructureSelector.spec.js.snap +3 -4
  56. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataViewSelector.spec.js.snap +1 -1
  57. package/src/components/common/resourceSelectors/__tests__/__snapshots__/ReferenceDatasetSelector.spec.js.snap +1 -1
  58. package/src/components/dataViews/DataViewEditor.js +5 -6
  59. package/src/components/dataViews/DataViewSelect.js +4 -5
  60. package/src/components/dataViews/DataViews.js +1 -2
  61. package/src/components/dataViews/Queryable.js +4 -4
  62. package/src/components/dataViews/Queryables.js +0 -1
  63. package/src/components/dataViews/__tests__/DataViewEditor.spec.js +36 -111
  64. package/src/components/dataViews/__tests__/DataViewSelect.spec.js +0 -1
  65. package/src/components/dataViews/__tests__/DataViews.spec.js +15 -16
  66. package/src/components/dataViews/__tests__/Queryable.spec.js +0 -1
  67. package/src/components/dataViews/__tests__/Queryables.spec.js +35 -74
  68. package/src/components/dataViews/__tests__/__snapshots__/DataViewEditor.spec.js.snap +61 -55
  69. package/src/components/dataViews/__tests__/__snapshots__/DataViews.spec.js.snap +5 -5
  70. package/src/components/dataViews/__tests__/__snapshots__/Queryables.spec.js.snap +59 -59
  71. package/src/components/dataViews/queryableProperties/From.js +4 -4
  72. package/src/components/dataViews/queryableProperties/GroupBy.js +6 -6
  73. package/src/components/dataViews/queryableProperties/Join.js +6 -6
  74. package/src/components/dataViews/queryableProperties/JoinTypeIcon.js +8 -9
  75. package/src/components/dataViews/queryableProperties/Select.js +4 -5
  76. package/src/components/dataViews/queryableProperties/SelectField.js +4 -4
  77. package/src/components/dataViews/queryableProperties/Where.js +4 -4
  78. package/src/components/dataViews/queryableProperties/__tests__/From.spec.js +0 -1
  79. package/src/components/dataViews/queryableProperties/__tests__/GroupBy.spec.js +16 -42
  80. package/src/components/dataViews/queryableProperties/__tests__/Join.spec.js +6 -29
  81. package/src/components/dataViews/queryableProperties/__tests__/JoinTypeIcon.spec.js +0 -1
  82. package/src/components/dataViews/queryableProperties/__tests__/Select.spec.js +26 -50
  83. package/src/components/dataViews/queryableProperties/__tests__/SelectField.spec.js +19 -44
  84. package/src/components/dataViews/queryableProperties/__tests__/Where.spec.js +6 -17
  85. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/GroupBy.spec.js.snap +309 -9
  86. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Join.spec.js.snap +12 -12
  87. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Select.spec.js.snap +192 -18
  88. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/SelectField.spec.js.snap +6 -8
  89. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Where.spec.js.snap +2 -2
  90. package/src/components/functions/FunctionEditor.js +3 -5
  91. package/src/components/functions/FunctionParams.js +2 -3
  92. package/src/components/functions/Functions.js +3 -4
  93. package/src/components/functions/__tests__/FunctionEditor.spec.js +61 -57
  94. package/src/components/functions/__tests__/FunctionParams.spec.js +50 -47
  95. package/src/components/functions/__tests__/Functions.spec.js +5 -12
  96. package/src/components/functions/__tests__/__snapshots__/FunctionParams.spec.js.snap +11 -11
  97. package/src/components/functions/__tests__/__snapshots__/Functions.spec.js.snap +4 -5
  98. package/src/components/qualityControls/ControlProperties.js +8 -7
  99. package/src/components/qualityControls/ControlPropertiesView.js +5 -5
  100. package/src/components/qualityControls/EditQualityControl.js +5 -5
  101. package/src/components/qualityControls/IconPopup.js +0 -1
  102. package/src/components/qualityControls/NewDraftQualityControl.js +8 -6
  103. package/src/components/qualityControls/NewQualityControl.js +5 -6
  104. package/src/components/qualityControls/QualityBadge.js +29 -21
  105. package/src/components/qualityControls/QualityControl.js +4 -7
  106. package/src/components/qualityControls/QualityControlActions.js +7 -7
  107. package/src/components/qualityControls/QualityControlCrumbs.js +1 -3
  108. package/src/components/qualityControls/QualityControlEditor.js +6 -12
  109. package/src/components/qualityControls/QualityControlHeader.js +4 -6
  110. package/src/components/qualityControls/QualityControlHistory.js +3 -3
  111. package/src/components/qualityControls/QualityControlManageDomain.js +2 -2
  112. package/src/components/qualityControls/QualityControlQueryModal.js +1 -1
  113. package/src/components/qualityControls/QualityControlRoutes.js +27 -54
  114. package/src/components/qualityControls/QualityControlRow.js +0 -2
  115. package/src/components/qualityControls/QualityControlScores.js +7 -5
  116. package/src/components/qualityControls/QualityControlTabs.js +2 -2
  117. package/src/components/qualityControls/QualityControls.js +10 -8
  118. package/src/components/qualityControls/QualityControlsLabelResults.js +0 -2
  119. package/src/components/qualityControls/QualityControlsPagination.js +0 -1
  120. package/src/components/qualityControls/QualityControlsTable.js +1 -2
  121. package/src/components/qualityControls/ScoreCriteria.js +8 -4
  122. package/src/components/qualityControls/ScoreCriteriaView.js +34 -54
  123. package/src/components/qualityControls/__tests__/ControlProperties.spec.js +16 -21
  124. package/src/components/qualityControls/__tests__/ControlPropertiesView.spec.js +5 -6
  125. package/src/components/qualityControls/__tests__/EditQualityControl.spec.js +28 -70
  126. package/src/components/qualityControls/__tests__/IconPopup.spec.js +10 -11
  127. package/src/components/qualityControls/__tests__/NewDraftQualityControl.spec.js +33 -70
  128. package/src/components/qualityControls/__tests__/NewQualityControl.spec.js +88 -107
  129. package/src/components/qualityControls/__tests__/QualityBadge.spec.js +55 -63
  130. package/src/components/qualityControls/__tests__/QualityControl.spec.js +19 -31
  131. package/src/components/qualityControls/__tests__/QualityControlActions.spec.js +49 -46
  132. package/src/components/qualityControls/__tests__/QualityControlCrumbs.spec.js +0 -1
  133. package/src/components/qualityControls/__tests__/QualityControlEditor.spec.js +68 -107
  134. package/src/components/qualityControls/__tests__/QualityControlHeader.spec.js +22 -25
  135. package/src/components/qualityControls/__tests__/QualityControlHistory.spec.js +6 -6
  136. package/src/components/qualityControls/__tests__/QualityControlManageDomain.spec.js +0 -1
  137. package/src/components/qualityControls/__tests__/QualityControlQueryModal.spec.js +13 -12
  138. package/src/components/qualityControls/__tests__/QualityControlRow.spec.js +4 -8
  139. package/src/components/qualityControls/__tests__/QualityControlScores.spec.js +23 -19
  140. package/src/components/qualityControls/__tests__/QualityControlTabs.spec.js +2 -3
  141. package/src/components/qualityControls/__tests__/QualityControls.spec.js +69 -53
  142. package/src/components/qualityControls/__tests__/QualityControlsLabelResults.spec.js +0 -1
  143. package/src/components/qualityControls/__tests__/QualityControlsPagination.spec.js +0 -1
  144. package/src/components/qualityControls/__tests__/QualityControlsTable.spec.js +2 -3
  145. package/src/components/qualityControls/__tests__/ScoreCriteria.spec.js +3 -4
  146. package/src/components/qualityControls/__tests__/ScoreCriteriaView.spec.js +18 -3
  147. package/src/components/qualityControls/__tests__/__fixtures__/qualityControlHelper.js +2 -2
  148. package/src/components/qualityControls/__tests__/__snapshots__/ControlProperties.spec.js.snap +1 -1
  149. package/src/components/qualityControls/__tests__/__snapshots__/ControlPropertiesView.spec.js.snap +53 -53
  150. package/src/components/qualityControls/__tests__/__snapshots__/EditQualityControl.spec.js.snap +45 -34
  151. package/src/components/qualityControls/__tests__/__snapshots__/NewDraftQualityControl.spec.js.snap +44 -33
  152. package/src/components/qualityControls/__tests__/__snapshots__/NewQualityControl.spec.js.snap +30 -19
  153. package/src/components/qualityControls/__tests__/__snapshots__/QualityBadge.spec.js.snap +1 -1
  154. package/src/components/qualityControls/__tests__/__snapshots__/QualityControl.spec.js.snap +11 -19
  155. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlActions.spec.js.snap +5 -4
  156. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlCrumbs.spec.js.snap +1 -0
  157. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlEditor.spec.js.snap +28 -5
  158. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlHeader.spec.js.snap +16 -11
  159. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlHistory.spec.js.snap +2 -0
  160. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlRow.spec.js.snap +2 -1
  161. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlScores.spec.js.snap +3 -0
  162. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlTabs.spec.js.snap +3 -0
  163. package/src/components/qualityControls/__tests__/__snapshots__/QualityControls.spec.js.snap +11 -21
  164. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlsTable.spec.js.snap +2 -0
  165. package/src/components/qualityControls/__tests__/__snapshots__/ScoreCriteria.spec.js.snap +1 -1
  166. package/src/components/qualityControls/__tests__/__snapshots__/ScoreCriteriaView.spec.js.snap +2 -4
  167. package/src/components/qualityControls/__tests__/qualityByControlMode.spec.js +16 -16
  168. package/src/components/qualityControls/controlProperties/{ErrorCount.js → Count.js} +7 -7
  169. package/src/components/qualityControls/controlProperties/Ratio.js +6 -8
  170. package/src/components/qualityControls/controlProperties/__tests__/{ErrorCount.spec.js → Count.spec.js} +9 -25
  171. package/src/components/qualityControls/controlProperties/__tests__/Ratio.spec.js +9 -27
  172. package/src/components/qualityControls/controlProperties/__tests__/__snapshots__/{ErrorCount.spec.js.snap → Count.spec.js.snap} +5 -5
  173. package/src/components/qualityControls/controlProperties/__tests__/__snapshots__/Ratio.spec.js.snap +10 -10
  174. package/src/components/qualityControls/qualityByControlMode.js +39 -16
  175. package/src/components/qualityControls/qualityControlScoresColumns.js +1 -2
  176. package/src/components/qualityControls/scoreCriterias/Count.js +88 -0
  177. package/src/components/qualityControls/scoreCriterias/Deviation.js +2 -2
  178. package/src/components/qualityControls/scoreCriterias/ErrorCount.js +4 -4
  179. package/src/components/qualityControls/scoreCriterias/Percentage.js +2 -2
  180. package/src/components/qualityControls/scoreCriterias/__tests__/Count.spec.js +62 -0
  181. package/src/components/qualityControls/scoreCriterias/__tests__/Deviation.spec.js +0 -1
  182. package/src/components/qualityControls/scoreCriterias/__tests__/ErrorCount.spec.js +39 -31
  183. package/src/components/qualityControls/scoreCriterias/__tests__/Percentage.spec.js +23 -19
  184. package/src/components/qualityControls/scoreCriterias/__tests__/__snapshots__/Count.spec.js.snap +58 -0
  185. package/src/components/qualityControls/scoreCriterias/__tests__/__snapshots__/ErrorCount.spec.js.snap +4 -7
  186. package/src/components/scores/MyScoreGroups.js +0 -1
  187. package/src/components/scores/QualityBar.js +24 -22
  188. package/src/components/scores/Score.js +4 -5
  189. package/src/components/scores/ScoreCrumbs.js +3 -5
  190. package/src/components/scores/ScoreDetails.js +2 -2
  191. package/src/components/scores/ScoreEvents.js +2 -2
  192. package/src/components/scores/ScoreGroup.js +5 -4
  193. package/src/components/scores/ScoreGroupBreadcrumbs.js +1 -2
  194. package/src/components/scores/ScoreGroupForm.js +2 -4
  195. package/src/components/scores/ScoreGroupLink.js +1 -2
  196. package/src/components/scores/ScoreGroupMessage.js +0 -1
  197. package/src/components/scores/ScoreGroupPopup.js +1 -1
  198. package/src/components/scores/ScoreGroupsRoutes.js +19 -0
  199. package/src/components/scores/ScoreGroupsTable.js +15 -48
  200. package/src/components/scores/ScoreRoutes.js +9 -24
  201. package/src/components/scores/ScoreStatusDecorator.js +1 -2
  202. package/src/components/scores/ScoreTabs.js +2 -2
  203. package/src/components/scores/__tests__/MyScoreGroups.spec.js +2 -3
  204. package/src/components/scores/__tests__/QualityBar.spec.js +19 -26
  205. package/src/components/scores/__tests__/Score.spec.js +2 -3
  206. package/src/components/scores/__tests__/ScoreCrumbs.spec.js +4 -5
  207. package/src/components/scores/__tests__/ScoreDetails.spec.js +4 -5
  208. package/src/components/scores/__tests__/ScoreEvents.spec.js +2 -3
  209. package/src/components/scores/__tests__/ScoreGroup.spec.js +15 -14
  210. package/src/components/scores/__tests__/ScoreGroupBreadcrumbs.spec.js +0 -1
  211. package/src/components/scores/__tests__/ScoreGroupForm.spec.js +18 -34
  212. package/src/components/scores/__tests__/ScoreGroupLink.spec.js +0 -1
  213. package/src/components/scores/__tests__/ScoreGroupMessage.spec.js +0 -1
  214. package/src/components/scores/__tests__/ScoreGroupPopup.spec.js +0 -2
  215. package/src/components/scores/__tests__/ScoreGroupsRoutes.spec.js +32 -0
  216. package/src/components/scores/__tests__/ScoreGroupsTable.spec.js +0 -1
  217. package/src/components/scores/__tests__/ScoreStatusDecorator.spec.js +0 -1
  218. package/src/components/scores/__tests__/ScoreTabs.spec.js +3 -4
  219. package/src/components/scores/__tests__/__snapshots__/MyScoreGroups.spec.js.snap +2 -0
  220. package/src/components/scores/__tests__/__snapshots__/Score.spec.js.snap +4 -0
  221. package/src/components/scores/__tests__/__snapshots__/ScoreCrumbs.spec.js.snap +2 -0
  222. package/src/components/scores/__tests__/__snapshots__/ScoreDetails.spec.js.snap +1 -0
  223. package/src/components/scores/__tests__/__snapshots__/ScoreGroup.spec.js.snap +39 -10
  224. package/src/components/scores/__tests__/__snapshots__/ScoreGroupBreadcrumbs.spec.js.snap +1 -0
  225. package/src/components/scores/__tests__/__snapshots__/ScoreGroupForm.spec.js.snap +10 -10
  226. package/src/components/scores/__tests__/__snapshots__/ScoreGroupLink.spec.js.snap +1 -0
  227. package/src/components/scores/__tests__/__snapshots__/ScoreGroupsRoutes.spec.js.snap +19 -0
  228. package/src/components/scores/__tests__/__snapshots__/ScoreGroupsTable.spec.js.snap +2 -0
  229. package/src/components/scores/__tests__/__snapshots__/ScoreStatusDecorator.spec.js.snap +5 -0
  230. package/src/components/scores/__tests__/__snapshots__/ScoreTabs.spec.js.snap +4 -0
  231. package/src/hooks/__tests__/useDataViews.spec.js +1 -1
  232. package/src/hooks/__tests__/useFunctions.spec.js +5 -5
  233. package/src/hooks/useDataViews.js +2 -2
  234. package/src/hooks/useExecutionGroups.js +1 -1
  235. package/src/hooks/useFunctions.js +4 -4
  236. package/src/hooks/useQualityControls.js +13 -7
  237. package/src/hooks/useScoreGroups.js +1 -1
  238. package/src/hooks/useScores.js +2 -2
  239. package/src/styles/scores.less +21 -21
  240. package/src/types.js +1 -4
@@ -1,18 +1,16 @@
1
- import React from "react";
2
- import userEvent from "@testing-library/user-event";
3
1
  import { waitFor } from "@testing-library/react";
4
- import { render } from "@truedat/test/render";
5
- import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
2
+ import userEvent from "@testing-library/user-event";
3
+ import { render, waitForLoad } from "@truedat/test/render";
6
4
  import { singleTemplateMock } from "@truedat/test/mocks";
7
5
  import TestFormWrapper from "@truedat/qx/components/common/TestFormWrapper";
8
6
  import QualityControlActions from "../QualityControlActions";
9
7
  import { qualityControlData } from "./__fixtures__/qualityControlHelper";
10
8
 
11
- const mockHistory = { push: jest.fn() };
9
+ const mockNavigate = jest.fn();
12
10
 
13
- jest.mock("react-router-dom", () => ({
14
- ...jest.requireActual("react-router-dom"),
15
- useHistory: () => mockHistory,
11
+ jest.mock("react-router", () => ({
12
+ ...jest.requireActual("react-router"),
13
+ useNavigate: () => mockNavigate,
16
14
  }));
17
15
 
18
16
  jest.mock("@truedat/core/hooks", () => ({
@@ -78,54 +76,50 @@ const context = {
78
76
  const variables = { scope: "qxe" };
79
77
  const renderOpts = {
80
78
  mocks: [singleTemplateMock(variables)],
81
- messages,
82
- fallback: "loading",
83
79
  };
84
80
 
85
81
  describe("<QualityControlActions />", () => {
86
82
  it("matches the latest snapshot with actions for published status", async () => {
87
- const { container, queryByText } = render(
83
+ const rendered = render(
88
84
  <TestFormWrapper context={{ ...context }}>
89
85
  <QualityControlActions />
90
86
  </TestFormWrapper>,
91
87
  renderOpts
92
88
  );
93
- await waitFor(() =>
94
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
95
- );
96
- expect(container).toMatchSnapshot();
89
+ await waitForLoad(rendered);
90
+ expect(rendered.container).toMatchSnapshot();
97
91
  });
98
92
 
99
- it("render actions for dratf status", () => {
93
+ it("render actions for dratf status", async () => {
100
94
  const newContext = {
101
95
  ...context,
102
96
  actions: ["send_to_approval", "publish", "edit", "toggle_active"],
103
97
  };
104
- const { queryByText } = render(
98
+ const rendered = render(
105
99
  <TestFormWrapper context={{ ...newContext }}>
106
100
  <QualityControlActions />
107
101
  </TestFormWrapper>,
108
102
  renderOpts
109
103
  );
110
-
111
- expect(queryByText(/Edit/i)).toBeInTheDocument();
104
+ await waitForLoad(rendered);
105
+ expect(rendered.getByText(/edit/i)).toBeInTheDocument();
112
106
  });
113
107
 
114
108
  it("renders the correct actions", async () => {
115
- const { getByText, queryByText } = render(
109
+ const rendered = render(
116
110
  <TestFormWrapper context={{ ...context }}>
117
111
  <QualityControlActions />
118
112
  </TestFormWrapper>,
119
113
  renderOpts
120
114
  );
121
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
122
- expect(getByText(/Create Draft/i)).toBeInTheDocument();
123
- expect(getByText(/Disable/i)).toBeInTheDocument();
115
+ await waitForLoad(rendered);
116
+ expect(rendered.getByText(/actions.create_draft/i)).toBeInTheDocument();
117
+ expect(rendered.getByText(/disable/i)).toBeInTheDocument();
124
118
  });
125
119
 
126
120
  it("render the correct actions when is disabled", async () => {
127
121
  const disableQualityControl = qualityControlData({ active: false });
128
- const { getByText, queryByText } = render(
122
+ const rendered = render(
129
123
  <TestFormWrapper
130
124
  context={{ ...context, qualityControl: disableQualityControl }}
131
125
  >
@@ -133,73 +127,82 @@ describe("<QualityControlActions />", () => {
133
127
  </TestFormWrapper>,
134
128
  renderOpts
135
129
  );
136
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
137
- expect(getByText(/Enable/i)).toBeInTheDocument();
130
+ await waitForLoad(rendered);
131
+ expect(rendered.getByText(/enable/i)).toBeInTheDocument();
138
132
  });
139
133
 
140
134
  it("render onConfirm when toggle_active button is clicked", async () => {
141
- const { getByText, queryByText } = render(
135
+ const user = userEvent.setup({ delay: null });
136
+ const rendered = render(
142
137
  <TestFormWrapper context={{ ...context }}>
143
138
  <QualityControlActions />
144
139
  </TestFormWrapper>,
145
140
  renderOpts
146
141
  );
142
+ await waitForLoad(rendered);
147
143
 
148
- userEvent.click(getByText(/Enable|Disable/i));
144
+ await user.click(rendered.getByText(/enable|disable/i));
149
145
  await waitFor(() =>
150
- expect(queryByText(/confirm_yes/i)).toBeInTheDocument()
146
+ expect(rendered.getByText(/confirmation.yes/i)).toBeInTheDocument()
151
147
  );
152
- userEvent.click(getByText(/confirm_yes/i));
148
+ await user.click(rendered.getByText(/confirmation.yes/i));
153
149
  await waitFor(() => expect(mutate).toHaveBeenCalledTimes(1));
154
150
  });
155
151
 
156
- it("renders correct Link components for create_draft and edit actions", () => {
152
+ it("renders correct Link components for create_draft and edit actions", async () => {
157
153
  const actions = ["create_draft", "edit"];
158
- const { getByText } = render(
154
+ const rendered = render(
159
155
  <TestFormWrapper context={{ ...context, actions }}>
160
156
  <QualityControlActions />
161
157
  </TestFormWrapper>,
162
158
  renderOpts
163
159
  );
160
+ await waitForLoad(rendered);
164
161
 
165
- expect(getByText(/Create Draft/i).closest("a")).toHaveAttribute(
162
+ expect(
163
+ rendered.getByText(/actions.create_draft/i).closest("a")
164
+ ).toHaveAttribute(
166
165
  "href",
167
166
  `/qualityControls/${qualityControl.id}/version/${qualityControl.version}/new_draft`
168
167
  );
169
- expect(getByText(/Edit/i).closest("a")).toHaveAttribute(
168
+ expect(rendered.getByText(/edit/i).closest("a")).toHaveAttribute(
170
169
  "href",
171
170
  `/qualityControls/${qualityControl.id}/version/${qualityControl.version}/edit`
172
171
  );
173
172
  });
174
173
 
175
174
  it("calls updateStatus when default action button is clicked", async () => {
176
- const { getByText, queryByText } = render(
175
+ const user = userEvent.setup({ delay: null });
176
+ const rendered = render(
177
177
  <TestFormWrapper context={{ ...context, actions: ["publish"] }}>
178
178
  <QualityControlActions />
179
179
  </TestFormWrapper>,
180
180
  renderOpts
181
181
  );
182
- userEvent.click(getByText(/Publish/i));
183
- await waitFor(() => expect(queryByText(/Publish/i)).toBeInTheDocument());
182
+ await waitForLoad(rendered);
183
+ await user.click(rendered.getByText(/publish/i));
184
+ await waitFor(() =>
185
+ expect(rendered.getByText(/publish/i)).toBeInTheDocument()
186
+ );
184
187
  });
185
188
 
186
189
  it("calls onCreateScoreGroup when ScoreGroupPopup is submitted", async () => {
187
- const { getByText, queryByText } = render(
190
+ const user = userEvent.setup({ delay: null });
191
+ const rendered = render(
188
192
  <TestFormWrapper context={{ ...context }}>
189
193
  <QualityControlActions />
190
194
  </TestFormWrapper>,
191
195
  renderOpts
192
196
  );
197
+ await waitForLoad(rendered);
198
+
199
+ await user.click(rendered.getByText(/actions.do_execution/i));
193
200
 
194
201
  await waitFor(() =>
195
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
202
+ expect(rendered.queryByText("actions.create")).toBeEnabled()
196
203
  );
197
-
198
- userEvent.click(getByText(/Execute quality control/i));
199
-
200
- await waitFor(() => expect(queryByText("Create")).toBeInTheDocument());
201
- userEvent.click(getByText("Create"));
202
- await waitFor(() => expect(mockHistory.push.mock.calls.length).toBe(1));
203
- expect(mockHistory.push.mock.calls[0][0]).toBe("/scoreGroups/36");
204
+ await user.click(rendered.getByText("actions.create"));
205
+ await waitFor(() => expect(mockNavigate.mock.calls.length).toBe(1));
206
+ expect(mockNavigate.mock.calls[0][0]).toBe("/scoreGroups/36");
204
207
  });
205
208
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
4
3
  import QualityControlCrumbs from "../QualityControlCrumbs";
@@ -1,8 +1,6 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
1
  import { waitFor, fireEvent } from "@testing-library/react";
4
- import { act } from "@testing-library/react";
5
2
  import userEvent from "@testing-library/user-event";
3
+ import { render, waitForLoad } from "@truedat/test/render";
6
4
  import { DOMAINS_QUERY } from "@truedat/core/api/queries";
7
5
  import { singleTemplateMock } from "@truedat/test/mocks";
8
6
  import { REFERENCE_DATASETS_HEADERS_QUERY } from "@truedat/dd/api/queries";
@@ -16,17 +14,7 @@ import {
16
14
  qualityControlData,
17
15
  } from "./__fixtures__/qualityControlHelper";
18
16
 
19
- jest.mock("@truedat/core/hooks/useUserFilters", () => {
20
- const originalModule = jest.requireActual(
21
- "@truedat/core/hooks/useUserFilters"
22
- );
23
-
24
- return {
25
- __esModule: true,
26
- ...originalModule,
27
- useUserFilters: jest.fn(() => ({})),
28
- };
29
- });
17
+ jest.mock("@truedat/core/hooks/useUserFilters");
30
18
  jest.mock("@truedat/qx/hooks/useFunctions", () => {
31
19
  const originalModule = jest.requireActual("@truedat/qx/hooks/useFunctions");
32
20
 
@@ -96,7 +84,6 @@ const mocks = [
96
84
  const renderOpts = {
97
85
  mocks,
98
86
  messages,
99
- fallback: "lazy",
100
87
  };
101
88
 
102
89
  const props = {
@@ -110,19 +97,13 @@ const props = {
110
97
 
111
98
  describe("<QualityControlEditor />", () => {
112
99
  it("matches the latest snapshot for edition", async () => {
113
- const { container, queryByText } = render(
114
- <QualityControlEditor {...props} />,
115
- renderOpts
116
- );
117
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
118
- await waitFor(() =>
119
- expect(container.querySelector(".loader")).not.toBeInTheDocument()
120
- );
121
- expect(container).toMatchSnapshot();
100
+ const rendered = render(<QualityControlEditor {...props} />, renderOpts);
101
+ await waitForLoad(rendered);
102
+ expect(rendered.container).toMatchSnapshot();
122
103
  });
123
104
 
124
105
  it("matches the latest snapshot for creation", async () => {
125
- const { getByRole, container, queryByText } = render(
106
+ const rendered = render(
126
107
  <QualityControlEditor
127
108
  {...props}
128
109
  isModification={false}
@@ -130,118 +111,102 @@ describe("<QualityControlEditor />", () => {
130
111
  />,
131
112
  renderOpts
132
113
  );
114
+ await waitForLoad(rendered);
133
115
  await waitFor(() =>
134
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
116
+ expect(rendered.getByRole("button", { name: /save/i })).toBeDisabled()
135
117
  );
136
- await waitFor(() =>
137
- expect(container.querySelector(".loader")).not.toBeInTheDocument()
138
- );
139
- await waitFor(() =>
140
- expect(getByRole("button", { name: /Save/ })).toBeDisabled()
141
- );
142
- expect(container).toMatchSnapshot();
118
+ expect(rendered.container).toMatchSnapshot();
143
119
  });
144
120
 
145
121
  it("test cancel button with out modal confirmation", async () => {
122
+ const user = userEvent.setup({ delay: null });
146
123
  const onCancel = jest.fn();
147
124
  const newProps = { ...props, onCancel };
148
- const { getByRole, queryByText } = render(
149
- <QualityControlEditor {...newProps} />,
150
- renderOpts
151
- );
152
- await waitFor(() =>
153
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
154
- );
155
- userEvent.click(getByRole("button", { name: /Cancel/i }));
125
+ const rendered = render(<QualityControlEditor {...newProps} />, renderOpts);
126
+ await waitForLoad(rendered);
127
+
128
+ await user.click(rendered.getByRole("button", { name: /cancel/i }));
156
129
  expect(onCancel).toHaveBeenCalledTimes(1);
157
130
  });
158
131
 
159
132
  it("test cancel button with modal confirmation", async () => {
133
+ const user = userEvent.setup({ delay: null });
160
134
  const onCancel = jest.fn();
161
135
  const newProps = { ...props, onCancel };
162
- const { getByRole, queryByText, getByPlaceholderText, getByText } = render(
163
- <QualityControlEditor {...newProps} />,
164
- renderOpts
165
- );
166
- await waitFor(() =>
167
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
168
- );
169
- const nameInput = getByPlaceholderText("Name");
136
+ const rendered = render(<QualityControlEditor {...newProps} />, renderOpts);
137
+ await waitForLoad(rendered);
138
+
139
+ const nameInput = rendered.getByPlaceholderText(/name/i);
170
140
  fireEvent.change(nameInput, { target: { value: "test_modified" } });
171
- await act(async () =>
172
- userEvent.click(getByRole("button", { name: /Cancel/i }))
173
- );
141
+
142
+ await user.click(rendered.getByRole("button", { name: /cancel/i }));
174
143
 
175
144
  await waitFor(() =>
176
- expect(queryByText(/confirm_yes/i)).toBeInTheDocument()
145
+ expect(rendered.queryByText(/confirm_yes/i)).toBeInTheDocument()
177
146
  );
178
- userEvent.click(getByText(/confirm_yes/));
147
+ await user.click(rendered.getByText(/confirm_yes/i));
179
148
  expect(onCancel).toHaveBeenCalledTimes(1);
180
149
  });
181
150
 
182
151
  it("test onSave", async () => {
152
+ const user = userEvent.setup({ delay: null });
183
153
  const onSave = jest.fn();
184
- const { getByRole, getByPlaceholderText, queryByText } = render(
154
+ const rendered = render(
185
155
  <QualityControlEditor {...props} onSave={onSave} />,
186
156
  renderOpts
187
157
  );
188
- await waitFor(() =>
189
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
190
- );
191
- expect(getByRole("button", { name: /Save/i })).toBeDisabled();
158
+ await waitForLoad(rendered);
159
+
160
+ expect(rendered.getByRole("button", { name: /save/i })).toBeDisabled();
192
161
 
193
- userEvent.type(getByPlaceholderText("Name"), "_modified");
162
+ await user.type(rendered.getByPlaceholderText(/name/i), "_modified");
194
163
 
195
164
  await waitFor(() =>
196
- expect(getByRole("button", { name: /Save/i })).toBeEnabled()
165
+ expect(rendered.getByRole("button", { name: /save/i })).toBeEnabled()
197
166
  );
198
167
 
199
168
  const expectedQualityControl = qualityControlData({
200
169
  name: "test_modified",
201
170
  });
202
171
 
203
- userEvent.click(getByRole("button", { name: /Save/i }));
172
+ await user.click(rendered.getByRole("button", { name: /save/i }));
204
173
 
205
174
  await waitFor(() =>
206
175
  expect(onSave).toHaveBeenCalledWith(expectedQualityControl)
207
176
  );
208
177
  });
178
+
209
179
  it("test onPublish", async () => {
180
+ const user = userEvent.setup({ delay: null });
210
181
  const onPublish = jest.fn();
211
- const { getByRole, getByPlaceholderText, queryByText } = render(
182
+ const rendered = render(
212
183
  <QualityControlEditor {...props} onPublish={onPublish} />,
213
184
  renderOpts
214
185
  );
215
- await waitFor(() =>
216
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
217
- );
218
- expect(getByRole("button", { name: /Publish/i })).toBeDisabled();
186
+ await waitForLoad(rendered);
187
+
188
+ expect(rendered.getByRole("button", { name: /publish/i })).toBeDisabled();
219
189
 
220
- userEvent.type(getByPlaceholderText("Name"), "_modified");
190
+ await user.type(rendered.getByPlaceholderText(/name/i), "_modified");
221
191
 
222
192
  await waitFor(() =>
223
- expect(getByRole("button", { name: /Publish/i })).toBeEnabled()
193
+ expect(rendered.getByRole("button", { name: /publish/i })).toBeEnabled()
224
194
  );
225
195
 
226
196
  const expectedQualityControl = qualityControlData({
227
197
  name: "test_modified",
228
198
  });
229
199
 
230
- userEvent.click(getByRole("button", { name: /Publish/i }));
200
+ await user.click(rendered.getByRole("button", { name: /publish/i }));
231
201
 
232
202
  await waitFor(() =>
233
203
  expect(onPublish).toHaveBeenCalledWith(expectedQualityControl)
234
204
  );
235
205
  });
236
206
 
237
- it("test fill form", async () => {
238
- const {
239
- container,
240
- getByText,
241
- getByPlaceholderText,
242
- queryByText,
243
- getByRole,
244
- } = render(
207
+ it.skip("test fill form", async () => {
208
+ const user = userEvent.setup({ delay: null });
209
+ const rendered = render(
245
210
  <QualityControlEditor
246
211
  {...props}
247
212
  value={defaultQualityControl}
@@ -249,48 +214,44 @@ describe("<QualityControlEditor />", () => {
249
214
  />,
250
215
  renderOpts
251
216
  );
217
+ await waitForLoad(rendered);
252
218
 
253
219
  await waitFor(() =>
254
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
220
+ expect(rendered.getByRole("button", { name: /publish/i })).toBeDisabled()
255
221
  );
256
- await waitFor(() =>
257
- expect(getByRole("button", { name: /Publish/i })).toBeDisabled()
258
- );
259
-
260
- userEvent.click(getByText(/Enable/));
261
222
 
262
- // Fill in the 'Name' field
263
- userEvent.type(getByPlaceholderText("Name"), "test_modified");
223
+ await user.click(rendered.getByText(/enable/i));
264
224
 
265
- // Select a domain
266
- userEvent.click(getByText(/Select domains/));
267
- userEvent.click(getByText(/barDomain/));
225
+ await user.type(rendered.getByPlaceholderText(/name/i), "test_modified");
268
226
 
269
- // Select a source
270
- userEvent.click(getByText(/Select source/));
271
- userEvent.click(getByRole("option", { name: /external_source_id/i }));
227
+ await user.click(rendered.getByText(/select domains/i));
228
+ await user.click(rendered.getByText(/bardomain/i));
272
229
 
273
- userEvent.click(getByRole("option", { name: /Error count/i }));
274
-
275
- // Fill in the 'Goal' field
276
- userEvent.type(getByPlaceholderText("Goal"), "25");
277
- // Fill in the 'Threshold' field
278
- userEvent.type(getByPlaceholderText("Threshold"), "50");
230
+ await user.click(rendered.getByText(/select source/i));
231
+ await user.click(
232
+ rendered.getByRole("option", { name: /external_source_id/i })
233
+ );
279
234
 
280
- await waitFor(() =>
281
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
235
+ await user.click(
236
+ rendered.getByRole("option", {
237
+ name: /quality_control.control_mode.error_count/i,
238
+ })
282
239
  );
283
- await waitFor(() =>
284
- expect(container.querySelector(".loader")).not.toBeInTheDocument()
240
+
241
+ await user.type(rendered.getByPlaceholderText(/goal/i), "25");
242
+ await user.type(
243
+ rendered.getByPlaceholderText(
244
+ /quality_control.score_criteria.error_count.maximum/i
245
+ ),
246
+ "50"
285
247
  );
286
248
 
287
- // Select the 'Reference datasets' for the resource type
288
- userEvent.click(getByText(/Resource type/));
289
- userEvent.click(getByText(/Reference datasets/));
290
- userEvent.click(getByRole("option", { name: /dataset1/i }));
249
+ await user.click(rendered.getByText(/resource type/i));
250
+ await user.click(rendered.getByText(/reference datasets/i));
251
+ await user.click(rendered.getByRole("option", { name: /dataset1/i }));
291
252
 
292
253
  await waitFor(() =>
293
- expect(getByRole("button", { name: /Publish/i })).toBeEnabled()
254
+ expect(rendered.getByRole("button", { name: /Publish/i })).toBeEnabled()
294
255
  );
295
256
  });
296
257
  });
@@ -1,12 +1,10 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
- import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import { useQualityControl } from "@truedat/qx/hooks/useQualityControls";
5
3
  import QualityControlHeader from "../QualityControlHeader";
6
4
  import { qualityControlData } from "./__fixtures__/qualityControlHelper";
7
5
 
8
- jest.mock("react-router-dom", () => ({
9
- ...jest.requireActual("react-router-dom"),
6
+ jest.mock("react-router", () => ({
7
+ ...jest.requireActual("react-router"),
10
8
  useParams: () => ({ id: "8", version: "1" }),
11
9
  }));
12
10
 
@@ -50,35 +48,34 @@ jest.mock("@truedat/qx/hooks/useQualityControls", () => {
50
48
  };
51
49
  });
52
50
 
53
- const renderOpts = { messages };
54
-
55
51
  describe("<QualityControlHeader />", () => {
56
- it("matches the latest snapshot with control quality active", () => {
57
- const { container, queryByText } = render(
58
- <QualityControlHeader />,
59
- renderOpts
60
- );
52
+ it("matches the latest snapshot with control quality active", async () => {
53
+ const rendered = render(<QualityControlHeader />);
54
+ await waitForLoad(rendered);
61
55
 
62
- expect(container).toMatchSnapshot();
63
- expect(queryByText(/Enabled/i)).toBeInTheDocument();
56
+ expect(rendered.container).toMatchSnapshot();
57
+ expect(
58
+ rendered.queryByText("quality_control.props.active.true")
59
+ ).toBeInTheDocument();
64
60
  });
65
61
 
66
- it("render control quality active = false", () => {
62
+ it("render control quality active = false", async () => {
67
63
  useQualityControl.mockImplementation(() => ({
68
64
  data: { data: { ...qualityControlData(), active: false } },
69
- loading: true,
70
65
  }));
71
- const { queryByText } = render(<QualityControlHeader />, renderOpts);
66
+ const rendered = render(<QualityControlHeader />);
67
+ await waitForLoad(rendered);
72
68
 
73
- expect(queryByText(/Disabled/i)).toBeInTheDocument();
69
+ expect(
70
+ rendered.queryByText("quality_control.props.active.false")
71
+ ).toBeInTheDocument();
74
72
  });
75
73
 
76
- it("renders nothing when quality control is empty", () => {
77
- useQualityControl.mockImplementation(() => ({
78
- data: { data: {} },
79
- loading: true,
80
- }));
81
- const { queryByText } = render(<QualityControlHeader />, renderOpts);
82
- expect(queryByText(".header")).not.toBeInTheDocument();
74
+ it("renders nothing when quality control is empty", async () => {
75
+ useQualityControl.mockImplementation(() => ({ data: { data: {} } }));
76
+ const rendered = render(<QualityControlHeader />);
77
+ await waitForLoad(rendered);
78
+
79
+ expect(rendered.queryByText(".header")).not.toBeInTheDocument();
83
80
  });
84
81
  });
@@ -1,21 +1,21 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
- import TestFormWrapper from "@truedat/qx/components/common/TestFormWrapper";
1
+ import { qualityControlData } from "./__fixtures__/qualityControlHelper";
4
2
  import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
3
+ import { render, waitForLoad } from "@truedat/test/render";
4
+ import TestFormWrapper from "@truedat/qx/components/common/TestFormWrapper";
5
5
  import QualityControlsHistory from "../QualityControlHistory";
6
- import { qualityControlData } from "./__fixtures__/qualityControlHelper";
7
6
 
8
7
  const renderOpts = { messages };
9
8
 
10
9
  describe("<QualityControlsHistory />", () => {
11
10
  it("matches the latest snapshot", async () => {
12
11
  const context = { qualityControl: qualityControlData() };
13
- const { container } = render(
12
+ const rendered = render(
14
13
  <TestFormWrapper context={context}>
15
14
  <QualityControlsHistory />
16
15
  </TestFormWrapper>,
17
16
  renderOpts
18
17
  );
19
- expect(container).toMatchSnapshot();
18
+ await waitForLoad(rendered);
19
+ expect(rendered.container).toMatchSnapshot();
20
20
  });
21
21
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import { waitFor } from "@testing-library/react";
4
3
  import TestFormWrapper from "@truedat/qx/components/common/TestFormWrapper";
@@ -1,6 +1,5 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
3
- import { fireEvent } from "@testing-library/react";
1
+ import userEvent from "@testing-library/user-event";
2
+ import { render, waitForLoad } from "@truedat/test/render";
4
3
  import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
5
4
  import QualityControlQueryModal from "../QualityControlQueryModal";
6
5
 
@@ -28,7 +27,7 @@ const data = {
28
27
  },
29
28
  action: "count",
30
29
  __type__: "query",
31
- query_ref: "error_count",
30
+ query_ref: "count",
32
31
  },
33
32
  ],
34
33
  resources_lookup: {
@@ -56,22 +55,24 @@ jest.mock("@truedat/qx/hooks/useQualityControls", () => {
56
55
  const renderOpts = { messages };
57
56
 
58
57
  describe("<QualityControlQueryModal />", () => {
59
- it("matches the latest snapshot", () => {
60
- const { container } = render(
58
+ it("matches the latest snapshot", async () => {
59
+ const rendered = render(
61
60
  <QualityControlQueryModal qualityControlId={8} />,
62
61
  renderOpts
63
62
  );
64
-
65
- expect(container).toMatchSnapshot();
63
+ await waitForLoad(rendered);
64
+ expect(rendered.container).toMatchSnapshot();
66
65
  });
67
66
 
68
- it("open modal", () => {
69
- const { container, getByRole } = render(
67
+ it("open modal", async () => {
68
+ const user = userEvent.setup({ delay: null });
69
+ const rendered = render(
70
70
  <QualityControlQueryModal qualityControlId={8} />,
71
71
  renderOpts
72
72
  );
73
+ await waitForLoad(rendered);
73
74
 
74
- fireEvent.click(getByRole("button"));
75
- expect(container).toMatchSnapshot();
75
+ await user.click(rendered.getByRole("button"));
76
+ expect(rendered.container).toMatchSnapshot();
76
77
  });
77
78
  });