@truedat/qx 7.5.9 → 7.5.11

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 (229) 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__/__snapshots__/QxRoutes.spec.js.snap +60 -0
  5. package/src/components/common/ClauseViewer.js +6 -6
  6. package/src/components/common/DescriptionInput.js +0 -1
  7. package/src/components/common/ResourceSelector.js +2 -3
  8. package/src/components/common/TestFormWrapper.js +2 -13
  9. package/src/components/common/TypeSelector.js +0 -1
  10. package/src/components/common/__tests__/DescriptionInput.spec.js +12 -21
  11. package/src/components/common/__tests__/ResourceSelector.spec.js +42 -87
  12. package/src/components/common/__tests__/TypeSelector.spec.js +0 -1
  13. package/src/components/common/__tests__/__snapshots__/ResourceSelector.spec.js.snap +32 -22
  14. package/src/components/common/expressions/Clauses.js +5 -6
  15. package/src/components/common/expressions/Condition.js +8 -9
  16. package/src/components/common/expressions/ConstantSelector.js +2 -2
  17. package/src/components/common/expressions/Expression.js +2 -2
  18. package/src/components/common/expressions/FieldSelector.js +2 -2
  19. package/src/components/common/expressions/FunctionArgs.js +5 -6
  20. package/src/components/common/expressions/FunctionSelector.js +2 -2
  21. package/src/components/common/expressions/ParamSelector.js +2 -2
  22. package/src/components/common/expressions/ShapeSelector.js +7 -16
  23. package/src/components/common/expressions/__tests__/Clauses.spec.js +10 -9
  24. package/src/components/common/expressions/__tests__/Condition.spec.js +6 -26
  25. package/src/components/common/expressions/__tests__/ConstantSelector.spec.js +14 -30
  26. package/src/components/common/expressions/__tests__/Expression.spec.js +44 -51
  27. package/src/components/common/expressions/__tests__/FieldSelector.spec.js +2 -7
  28. package/src/components/common/expressions/__tests__/FunctionArgs.spec.js +18 -44
  29. package/src/components/common/expressions/__tests__/FunctionSelector.spec.js +19 -27
  30. package/src/components/common/expressions/__tests__/ParamSelector.spec.js +28 -58
  31. package/src/components/common/expressions/__tests__/ShapeSelector.spec.js +42 -43
  32. package/src/components/common/expressions/__tests__/__snapshots__/Condition.spec.js.snap +6 -6
  33. package/src/components/common/expressions/__tests__/__snapshots__/ConstantSelector.spec.js.snap +6 -7
  34. package/src/components/common/expressions/__tests__/__snapshots__/Expression.spec.js.snap +20 -20
  35. package/src/components/common/expressions/__tests__/__snapshots__/FunctionArgs.spec.js.snap +8 -9
  36. package/src/components/common/expressions/__tests__/__snapshots__/FunctionSelector.spec.js.snap +670 -8
  37. package/src/components/common/expressions/__tests__/__snapshots__/ParamSelector.spec.js.snap +5 -5
  38. package/src/components/common/expressions/__tests__/__snapshots__/ShapeSelector.spec.js.snap +9 -9
  39. package/src/components/common/expressions/__tests__/useWatchParams.spec.js +1 -4
  40. package/src/components/common/expressions/constantInputs/AnySelector.js +5 -6
  41. package/src/components/common/expressions/constantInputs/BooleanSelector.js +2 -2
  42. package/src/components/common/expressions/constantInputs/DefaultSelector.js +2 -2
  43. package/src/components/common/expressions/constantInputs/__tests__/AnySelector.spec.js +16 -37
  44. package/src/components/common/expressions/constantInputs/__tests__/BooleanSelector.spec.js +14 -17
  45. package/src/components/common/expressions/constantInputs/__tests__/DefaultSelector.spec.js +12 -27
  46. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/AnySelector.spec.js.snap +11 -11
  47. package/src/components/common/expressions/constantInputs/__tests__/__snapshots__/DefaultSelector.spec.js.snap +0 -1
  48. package/src/components/common/resourceSelectors/DataStructureSelector.js +2 -2
  49. package/src/components/common/resourceSelectors/DataViewSelector.js +2 -2
  50. package/src/components/common/resourceSelectors/ReferenceDatasetSelector.js +2 -2
  51. package/src/components/common/resourceSelectors/__tests__/DataStructureSelector.spec.js +5 -29
  52. package/src/components/common/resourceSelectors/__tests__/DataViewSelector.spec.js +23 -25
  53. package/src/components/common/resourceSelectors/__tests__/ReferenceDatasetSelector.spec.js +21 -32
  54. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataStructureSelector.spec.js.snap +3 -4
  55. package/src/components/common/resourceSelectors/__tests__/__snapshots__/DataViewSelector.spec.js.snap +1 -1
  56. package/src/components/common/resourceSelectors/__tests__/__snapshots__/ReferenceDatasetSelector.spec.js.snap +1 -1
  57. package/src/components/dataViews/DataViewEditor.js +5 -6
  58. package/src/components/dataViews/DataViewSelect.js +4 -5
  59. package/src/components/dataViews/DataViews.js +1 -2
  60. package/src/components/dataViews/Queryable.js +4 -4
  61. package/src/components/dataViews/Queryables.js +0 -1
  62. package/src/components/dataViews/__tests__/DataViewEditor.spec.js +36 -111
  63. package/src/components/dataViews/__tests__/DataViewSelect.spec.js +0 -1
  64. package/src/components/dataViews/__tests__/DataViews.spec.js +15 -16
  65. package/src/components/dataViews/__tests__/Queryable.spec.js +0 -1
  66. package/src/components/dataViews/__tests__/Queryables.spec.js +35 -74
  67. package/src/components/dataViews/__tests__/__snapshots__/DataViewEditor.spec.js.snap +61 -55
  68. package/src/components/dataViews/__tests__/__snapshots__/DataViews.spec.js.snap +5 -5
  69. package/src/components/dataViews/__tests__/__snapshots__/Queryables.spec.js.snap +59 -59
  70. package/src/components/dataViews/queryableProperties/From.js +4 -4
  71. package/src/components/dataViews/queryableProperties/GroupBy.js +6 -6
  72. package/src/components/dataViews/queryableProperties/Join.js +6 -6
  73. package/src/components/dataViews/queryableProperties/JoinTypeIcon.js +8 -9
  74. package/src/components/dataViews/queryableProperties/Select.js +4 -5
  75. package/src/components/dataViews/queryableProperties/SelectField.js +4 -4
  76. package/src/components/dataViews/queryableProperties/Where.js +4 -4
  77. package/src/components/dataViews/queryableProperties/__tests__/From.spec.js +0 -1
  78. package/src/components/dataViews/queryableProperties/__tests__/GroupBy.spec.js +16 -42
  79. package/src/components/dataViews/queryableProperties/__tests__/Join.spec.js +6 -29
  80. package/src/components/dataViews/queryableProperties/__tests__/JoinTypeIcon.spec.js +0 -1
  81. package/src/components/dataViews/queryableProperties/__tests__/Select.spec.js +26 -50
  82. package/src/components/dataViews/queryableProperties/__tests__/SelectField.spec.js +22 -42
  83. package/src/components/dataViews/queryableProperties/__tests__/Where.spec.js +6 -17
  84. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/GroupBy.spec.js.snap +309 -9
  85. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Join.spec.js.snap +12 -12
  86. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Select.spec.js.snap +192 -18
  87. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/SelectField.spec.js.snap +6 -8
  88. package/src/components/dataViews/queryableProperties/__tests__/__snapshots__/Where.spec.js.snap +2 -2
  89. package/src/components/functions/FunctionEditor.js +3 -5
  90. package/src/components/functions/FunctionParams.js +2 -3
  91. package/src/components/functions/Functions.js +3 -4
  92. package/src/components/functions/__tests__/FunctionEditor.spec.js +61 -57
  93. package/src/components/functions/__tests__/FunctionParams.spec.js +50 -47
  94. package/src/components/functions/__tests__/Functions.spec.js +5 -12
  95. package/src/components/functions/__tests__/__snapshots__/FunctionParams.spec.js.snap +11 -11
  96. package/src/components/functions/__tests__/__snapshots__/Functions.spec.js.snap +4 -5
  97. package/src/components/qualityControls/ControlProperties.js +4 -4
  98. package/src/components/qualityControls/ControlPropertiesView.js +0 -1
  99. package/src/components/qualityControls/EditQualityControl.js +5 -5
  100. package/src/components/qualityControls/IconPopup.js +0 -1
  101. package/src/components/qualityControls/NewDraftQualityControl.js +8 -6
  102. package/src/components/qualityControls/NewQualityControl.js +5 -6
  103. package/src/components/qualityControls/QualityBadge.js +29 -30
  104. package/src/components/qualityControls/QualityControl.js +4 -7
  105. package/src/components/qualityControls/QualityControlActions.js +7 -7
  106. package/src/components/qualityControls/QualityControlCrumbs.js +1 -3
  107. package/src/components/qualityControls/QualityControlEditor.js +5 -11
  108. package/src/components/qualityControls/QualityControlHeader.js +4 -6
  109. package/src/components/qualityControls/QualityControlHistory.js +3 -3
  110. package/src/components/qualityControls/QualityControlManageDomain.js +2 -2
  111. package/src/components/qualityControls/QualityControlQueryModal.js +1 -1
  112. package/src/components/qualityControls/QualityControlRoutes.js +27 -54
  113. package/src/components/qualityControls/QualityControlRow.js +0 -2
  114. package/src/components/qualityControls/QualityControlScores.js +7 -5
  115. package/src/components/qualityControls/QualityControlTabs.js +2 -2
  116. package/src/components/qualityControls/QualityControls.js +10 -8
  117. package/src/components/qualityControls/QualityControlsLabelResults.js +0 -2
  118. package/src/components/qualityControls/QualityControlsPagination.js +0 -1
  119. package/src/components/qualityControls/QualityControlsTable.js +1 -2
  120. package/src/components/qualityControls/ScoreCriteria.js +4 -4
  121. package/src/components/qualityControls/ScoreCriteriaView.js +0 -1
  122. package/src/components/qualityControls/__tests__/ControlProperties.spec.js +10 -15
  123. package/src/components/qualityControls/__tests__/ControlPropertiesView.spec.js +0 -1
  124. package/src/components/qualityControls/__tests__/EditQualityControl.spec.js +28 -70
  125. package/src/components/qualityControls/__tests__/IconPopup.spec.js +10 -11
  126. package/src/components/qualityControls/__tests__/NewDraftQualityControl.spec.js +33 -70
  127. package/src/components/qualityControls/__tests__/NewQualityControl.spec.js +81 -113
  128. package/src/components/qualityControls/__tests__/QualityBadge.spec.js +50 -58
  129. package/src/components/qualityControls/__tests__/QualityControl.spec.js +19 -31
  130. package/src/components/qualityControls/__tests__/QualityControlActions.spec.js +49 -46
  131. package/src/components/qualityControls/__tests__/QualityControlCrumbs.spec.js +0 -1
  132. package/src/components/qualityControls/__tests__/QualityControlEditor.spec.js +68 -107
  133. package/src/components/qualityControls/__tests__/QualityControlHeader.spec.js +22 -25
  134. package/src/components/qualityControls/__tests__/QualityControlHistory.spec.js +6 -6
  135. package/src/components/qualityControls/__tests__/QualityControlManageDomain.spec.js +0 -1
  136. package/src/components/qualityControls/__tests__/QualityControlQueryModal.spec.js +12 -11
  137. package/src/components/qualityControls/__tests__/QualityControlRow.spec.js +4 -8
  138. package/src/components/qualityControls/__tests__/QualityControlScores.spec.js +23 -19
  139. package/src/components/qualityControls/__tests__/QualityControlTabs.spec.js +2 -3
  140. package/src/components/qualityControls/__tests__/QualityControls.spec.js +69 -53
  141. package/src/components/qualityControls/__tests__/QualityControlsLabelResults.spec.js +0 -1
  142. package/src/components/qualityControls/__tests__/QualityControlsPagination.spec.js +0 -1
  143. package/src/components/qualityControls/__tests__/QualityControlsTable.spec.js +2 -3
  144. package/src/components/qualityControls/__tests__/ScoreCriteria.spec.js +0 -1
  145. package/src/components/qualityControls/__tests__/ScoreCriteriaView.spec.js +0 -1
  146. package/src/components/qualityControls/__tests__/__fixtures__/qualityControlHelper.js +1 -1
  147. package/src/components/qualityControls/__tests__/__snapshots__/EditQualityControl.spec.js.snap +32 -34
  148. package/src/components/qualityControls/__tests__/__snapshots__/NewDraftQualityControl.spec.js.snap +31 -33
  149. package/src/components/qualityControls/__tests__/__snapshots__/NewQualityControl.spec.js.snap +17 -19
  150. package/src/components/qualityControls/__tests__/__snapshots__/QualityControl.spec.js.snap +9 -15
  151. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlActions.spec.js.snap +5 -4
  152. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlCrumbs.spec.js.snap +1 -0
  153. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlEditor.spec.js.snap +0 -3
  154. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlHeader.spec.js.snap +16 -11
  155. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlHistory.spec.js.snap +2 -0
  156. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlRow.spec.js.snap +2 -1
  157. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlScores.spec.js.snap +3 -0
  158. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlTabs.spec.js.snap +3 -0
  159. package/src/components/qualityControls/__tests__/__snapshots__/QualityControls.spec.js.snap +11 -21
  160. package/src/components/qualityControls/__tests__/__snapshots__/QualityControlsTable.spec.js.snap +2 -0
  161. package/src/components/qualityControls/controlProperties/Count.js +5 -5
  162. package/src/components/qualityControls/controlProperties/Ratio.js +6 -8
  163. package/src/components/qualityControls/controlProperties/__tests__/Count.spec.js +6 -11
  164. package/src/components/qualityControls/controlProperties/__tests__/Ratio.spec.js +9 -27
  165. package/src/components/qualityControls/controlProperties/__tests__/__snapshots__/Ratio.spec.js.snap +10 -10
  166. package/src/components/qualityControls/qualityByControlMode.js +14 -14
  167. package/src/components/qualityControls/qualityControlScoresColumns.js +1 -2
  168. package/src/components/qualityControls/scoreCriterias/Deviation.js +2 -2
  169. package/src/components/qualityControls/scoreCriterias/ErrorCount.js +3 -4
  170. package/src/components/qualityControls/scoreCriterias/Percentage.js +2 -2
  171. package/src/components/qualityControls/scoreCriterias/__tests__/Deviation.spec.js +0 -1
  172. package/src/components/qualityControls/scoreCriterias/__tests__/ErrorCount.spec.js +39 -43
  173. package/src/components/qualityControls/scoreCriterias/__tests__/Percentage.spec.js +23 -19
  174. package/src/components/qualityControls/scoreCriterias/__tests__/__snapshots__/ErrorCount.spec.js.snap +4 -7
  175. package/src/components/scores/MyScoreGroups.js +0 -1
  176. package/src/components/scores/QualityBar.js +24 -22
  177. package/src/components/scores/Score.js +4 -5
  178. package/src/components/scores/ScoreCrumbs.js +3 -5
  179. package/src/components/scores/ScoreDetails.js +2 -2
  180. package/src/components/scores/ScoreEvents.js +2 -2
  181. package/src/components/scores/ScoreGroup.js +5 -4
  182. package/src/components/scores/ScoreGroupBreadcrumbs.js +1 -2
  183. package/src/components/scores/ScoreGroupForm.js +2 -4
  184. package/src/components/scores/ScoreGroupLink.js +1 -2
  185. package/src/components/scores/ScoreGroupMessage.js +0 -1
  186. package/src/components/scores/ScoreGroupPopup.js +1 -1
  187. package/src/components/scores/ScoreGroupsRoutes.js +19 -0
  188. package/src/components/scores/ScoreGroupsTable.js +15 -48
  189. package/src/components/scores/ScoreRoutes.js +9 -24
  190. package/src/components/scores/ScoreStatusDecorator.js +1 -2
  191. package/src/components/scores/ScoreTabs.js +2 -2
  192. package/src/components/scores/__tests__/MyScoreGroups.spec.js +0 -1
  193. package/src/components/scores/__tests__/QualityBar.spec.js +19 -26
  194. package/src/components/scores/__tests__/Score.spec.js +2 -3
  195. package/src/components/scores/__tests__/ScoreCrumbs.spec.js +4 -5
  196. package/src/components/scores/__tests__/ScoreDetails.spec.js +4 -5
  197. package/src/components/scores/__tests__/ScoreEvents.spec.js +2 -3
  198. package/src/components/scores/__tests__/ScoreGroup.spec.js +15 -14
  199. package/src/components/scores/__tests__/ScoreGroupBreadcrumbs.spec.js +0 -1
  200. package/src/components/scores/__tests__/ScoreGroupForm.spec.js +18 -34
  201. package/src/components/scores/__tests__/ScoreGroupLink.spec.js +0 -1
  202. package/src/components/scores/__tests__/ScoreGroupMessage.spec.js +0 -1
  203. package/src/components/scores/__tests__/ScoreGroupPopup.spec.js +0 -2
  204. package/src/components/scores/__tests__/ScoreGroupsRoutes.spec.js +32 -0
  205. package/src/components/scores/__tests__/ScoreGroupsTable.spec.js +0 -1
  206. package/src/components/scores/__tests__/ScoreStatusDecorator.spec.js +0 -1
  207. package/src/components/scores/__tests__/ScoreTabs.spec.js +3 -4
  208. package/src/components/scores/__tests__/__snapshots__/MyScoreGroups.spec.js.snap +2 -0
  209. package/src/components/scores/__tests__/__snapshots__/Score.spec.js.snap +4 -0
  210. package/src/components/scores/__tests__/__snapshots__/ScoreCrumbs.spec.js.snap +2 -0
  211. package/src/components/scores/__tests__/__snapshots__/ScoreDetails.spec.js.snap +1 -0
  212. package/src/components/scores/__tests__/__snapshots__/ScoreGroup.spec.js.snap +39 -10
  213. package/src/components/scores/__tests__/__snapshots__/ScoreGroupBreadcrumbs.spec.js.snap +1 -0
  214. package/src/components/scores/__tests__/__snapshots__/ScoreGroupForm.spec.js.snap +10 -10
  215. package/src/components/scores/__tests__/__snapshots__/ScoreGroupLink.spec.js.snap +1 -0
  216. package/src/components/scores/__tests__/__snapshots__/ScoreGroupsRoutes.spec.js.snap +19 -0
  217. package/src/components/scores/__tests__/__snapshots__/ScoreGroupsTable.spec.js.snap +2 -0
  218. package/src/components/scores/__tests__/__snapshots__/ScoreStatusDecorator.spec.js.snap +5 -0
  219. package/src/components/scores/__tests__/__snapshots__/ScoreTabs.spec.js.snap +4 -0
  220. package/src/hooks/__tests__/useDataViews.spec.js +1 -1
  221. package/src/hooks/__tests__/useFunctions.spec.js +5 -5
  222. package/src/hooks/useDataViews.js +2 -2
  223. package/src/hooks/useExecutionGroups.js +1 -1
  224. package/src/hooks/useFunctions.js +4 -4
  225. package/src/hooks/useQualityControls.js +13 -7
  226. package/src/hooks/useScoreGroups.js +1 -1
  227. package/src/hooks/useScores.js +2 -2
  228. package/src/styles/scores.less +21 -21
  229. package/src/types.js +1 -4
@@ -1,49 +1,46 @@
1
- import _ from "lodash/fp";
2
- import React from "react";
3
- import { render } from "@truedat/test/render";
4
- import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
1
+ import { render, waitForLoad } from "@truedat/test/render";
5
2
  import { scoreData } from "@truedat/qx/components/scores/__tests__/__fixtures__/scoreHelper";
6
3
  import QualityBadge, { QualityBadgeForSearch } from "../QualityBadge";
7
4
 
8
- const renderOpts = { messages };
9
-
10
5
  describe("<QualityBadge />", () => {
11
- it("matches the latest snapshot", () => {
6
+ it("matches the latest snapshot", async () => {
12
7
  const score = scoreData();
13
- const { container } = render(<QualityBadge score={score} />, renderOpts);
14
-
15
- expect(container).toMatchSnapshot();
8
+ const rendered = render(<QualityBadge score={score} />);
9
+ await waitForLoad(rendered);
10
+ expect(rendered.container).toMatchSnapshot();
16
11
  });
17
12
 
18
- it("show status failed", () => {
13
+ it("show status failed", async () => {
19
14
  const score = scoreData({ status: "FAILED" });
20
- const { queryByText } = render(<QualityBadge score={score} />, renderOpts);
21
-
22
- expect(queryByText(/Failed/i)).toBeInTheDocument();
15
+ const rendered = render(<QualityBadge score={score} />);
16
+ await waitForLoad(rendered);
17
+ expect(rendered.queryByText(/failed/i)).toBeInTheDocument();
23
18
  });
24
19
 
25
- it("show no executed", () => {
20
+ it("show no executed", async () => {
26
21
  const score = scoreData({ score_content: undefined });
27
- const { queryByText } = render(<QualityBadge score={score} />, renderOpts);
28
-
29
- expect(queryByText(/Not executed/i)).toBeInTheDocument();
22
+ const rendered = render(<QualityBadge score={score} />);
23
+ await waitForLoad(rendered);
24
+ rendered.debug();
25
+ expect(rendered.queryByText(/score.not_executed/i)).toBeInTheDocument();
30
26
  });
31
27
 
32
- it("show no results", () => {
28
+ it("show no results", async () => {
33
29
  const score_content = {
34
30
  total_count: 0,
35
31
  validation_count: 50,
36
32
  };
37
33
 
38
34
  const score = scoreData({ score_content });
39
- const { queryByText } = render(<QualityBadge score={score} />, renderOpts);
40
-
41
- expect(queryByText(/No results/i)).toBeInTheDocument();
35
+ const rendered = render(<QualityBadge score={score} />);
36
+ await waitForLoad(rendered);
37
+ rendered.debug();
38
+ expect(rendered.queryByText(/score.no_results/i)).toBeInTheDocument();
42
39
  });
43
40
  });
44
41
 
45
42
  describe("<QualityBadgeForSearch />", () => {
46
- it("matches the latest snapshot for percentage", () => {
43
+ it("matches the latest snapshot for percentage", async () => {
47
44
  const scoreCriteria = {
48
45
  goal: 60,
49
46
  maximum: 75,
@@ -60,19 +57,18 @@ describe("<QualityBadgeForSearch />", () => {
60
57
  type: "ratio",
61
58
  };
62
59
 
63
- const { container } = render(
60
+ const rendered = render(
64
61
  <QualityBadgeForSearch
65
62
  controlMode={"percentage"}
66
63
  criteria={scoreCriteria}
67
64
  latestScore={latestScore}
68
- />,
69
- renderOpts
65
+ />
70
66
  );
71
-
72
- expect(container).toMatchSnapshot();
67
+ await waitForLoad(rendered);
68
+ expect(rendered.container).toMatchSnapshot();
73
69
  });
74
70
 
75
- it("matches the latest snapshot for deviation", () => {
71
+ it("matches the latest snapshot for deviation", async () => {
76
72
  const scoreCriteria = {
77
73
  goal: 78,
78
74
  maximum: 90,
@@ -89,19 +85,18 @@ describe("<QualityBadgeForSearch />", () => {
89
85
  type: "ratio",
90
86
  };
91
87
 
92
- const { container } = render(
88
+ const rendered = render(
93
89
  <QualityBadgeForSearch
94
90
  controlMode={"deviation"}
95
91
  criteria={scoreCriteria}
96
92
  latestScore={latestScore}
97
- />,
98
- renderOpts
93
+ />
99
94
  );
100
-
101
- expect(container).toMatchSnapshot();
95
+ await waitForLoad(rendered);
96
+ expect(rendered.container).toMatchSnapshot();
102
97
  });
103
98
 
104
- it("matches the latest snapshot for count", () => {
99
+ it("matches the latest snapshot for count", async () => {
105
100
  const scoreCriteria = {
106
101
  goal: 78,
107
102
  maximum: 90,
@@ -117,19 +112,18 @@ describe("<QualityBadgeForSearch />", () => {
117
112
  type: "count",
118
113
  };
119
114
 
120
- const { container } = render(
115
+ const rendered = render(
121
116
  <QualityBadgeForSearch
122
117
  controlMode={"count"}
123
118
  criteria={scoreCriteria}
124
119
  latestScore={latestScore}
125
- />,
126
- renderOpts
120
+ />
127
121
  );
128
-
129
- expect(container).toMatchSnapshot();
122
+ await waitForLoad(rendered);
123
+ expect(rendered.container).toMatchSnapshot();
130
124
  });
131
125
 
132
- it("show status failed", () => {
126
+ it("show status failed", async () => {
133
127
  const latestScore = {
134
128
  result_message: null,
135
129
  status: "failed",
@@ -139,19 +133,18 @@ describe("<QualityBadgeForSearch />", () => {
139
133
  minimum: 10,
140
134
  };
141
135
 
142
- const { queryByText } = render(
136
+ const rendered = render(
143
137
  <QualityBadgeForSearch
144
138
  controlMode={"percentage"}
145
139
  criteria={scoreCriteria}
146
140
  latestScore={latestScore}
147
- />,
148
- renderOpts
141
+ />
149
142
  );
150
-
151
- expect(queryByText(/Failed/i)).toBeInTheDocument();
143
+ await waitForLoad(rendered);
144
+ expect(rendered.queryByText(/failed/i)).toBeInTheDocument();
152
145
  });
153
146
 
154
- it("show no executed", () => {
147
+ it("show no executed", async () => {
155
148
  const scoreCriteria = {
156
149
  goal: 78,
157
150
  maximum: 90,
@@ -159,19 +152,18 @@ describe("<QualityBadgeForSearch />", () => {
159
152
  const latestScore = {
160
153
  result_message: null,
161
154
  };
162
- const { container } = render(
155
+ const rendered = render(
163
156
  <QualityBadgeForSearch
164
157
  controlMode={"count"}
165
158
  criteria={scoreCriteria}
166
159
  latestScore={latestScore}
167
- />,
168
- renderOpts
160
+ />
169
161
  );
170
-
171
- expect(container).toMatchSnapshot();
162
+ await waitForLoad(rendered);
163
+ expect(rendered.container).toMatchSnapshot();
172
164
  });
173
165
 
174
- it("show no results", () => {
166
+ it("show no results", async () => {
175
167
  const scoreCriteria = {
176
168
  goal: 60,
177
169
  maximum: 75,
@@ -187,15 +179,15 @@ describe("<QualityBadgeForSearch />", () => {
187
179
  status: "succeeded",
188
180
  type: "ratio",
189
181
  };
190
- const { queryByText } = render(
182
+ const rendered = render(
191
183
  <QualityBadgeForSearch
192
184
  controlMode={"percentage"}
193
185
  criteria={scoreCriteria}
194
186
  latestScore={latestScore}
195
- />,
196
- renderOpts
187
+ />
197
188
  );
198
-
199
- expect(queryByText(/No results/i)).toBeInTheDocument();
189
+ await waitForLoad(rendered);
190
+ rendered.debug();
191
+ expect(rendered.queryByText(/score.no_results/i)).toBeInTheDocument();
200
192
  });
201
193
  });
@@ -1,10 +1,8 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { waitFor } from "@testing-library/react";
4
3
  import TestFormWrapper from "@truedat/qx/components/common/TestFormWrapper";
5
4
  import userEvent from "@testing-library/user-event";
6
5
  import { templateByNameMock } from "@truedat/test/mocks";
7
- import { messages } from "@truedat/qx/components/__tests__/__fixtures__/helper";
8
6
  import { DOMAINS_QUERY } from "@truedat/core/api/queries";
9
7
  import QualityControl from "../QualityControl";
10
8
  import { qualityControlData } from "./__fixtures__/qualityControlHelper";
@@ -41,8 +39,6 @@ const renderOpts = {
41
39
  createDomainsMock,
42
40
  templateByNameMock({ name: "template1", domainIds: [2] }),
43
41
  ],
44
- messages,
45
- fallback: "loading",
46
42
  };
47
43
 
48
44
  describe("<QualityControl />", () => {
@@ -51,35 +47,28 @@ describe("<QualityControl />", () => {
51
47
  qualityControl: qualityControlData(),
52
48
  actions: ["update_main"],
53
49
  };
54
- const { container, queryByText } = render(
50
+ const rendered = render(
55
51
  <TestFormWrapper context={context}>
56
52
  <QualityControl />
57
53
  </TestFormWrapper>,
58
54
  renderOpts
59
55
  );
60
-
61
- await waitFor(() => {
62
- expect(queryByText(/loading/i)).not.toBeInTheDocument();
63
- expect(container.querySelector(".loader")).not.toBeInTheDocument();
64
- });
65
-
66
- expect(container).toMatchSnapshot();
56
+ await waitForLoad(rendered);
57
+ expect(rendered.container).toMatchSnapshot();
67
58
  });
68
59
 
69
60
  it("do not show edit domain if the user does not have permissions", async () => {
70
61
  const context = { qualityControl: qualityControlData() };
71
- const { container, queryByText } = render(
62
+ const rendered = render(
72
63
  <TestFormWrapper context={context}>
73
64
  <QualityControl />
74
65
  </TestFormWrapper>,
75
66
  renderOpts
76
67
  );
77
- await waitFor(() => {
78
- expect(queryByText(/loading/i)).not.toBeInTheDocument();
79
- expect(
80
- container.querySelector(".pencil alternate icon")
81
- ).not.toBeInTheDocument();
82
- });
68
+ await waitForLoad(rendered);
69
+ expect(
70
+ rendered.container.querySelector(".pencil.alternate.icon")
71
+ ).not.toBeInTheDocument();
83
72
  });
84
73
 
85
74
  it("render popup when edit domain", async () => {
@@ -87,27 +76,25 @@ describe("<QualityControl />", () => {
87
76
  qualityControl: qualityControlData(),
88
77
  actions: ["update_main"],
89
78
  };
90
- const { container, queryByText } = render(
79
+ const rendered = render(
91
80
  <TestFormWrapper context={context}>
92
81
  <QualityControl />
93
82
  </TestFormWrapper>,
94
83
  renderOpts
95
84
  );
85
+ await waitForLoad(rendered);
96
86
 
97
- await waitFor(() => {
98
- expect(queryByText(/loading/i)).not.toBeInTheDocument();
99
- expect(container.querySelector(".loader")).not.toBeInTheDocument();
100
- });
101
-
102
- const pencilButton = container.querySelector(".pencil.alternate.icon");
87
+ const pencilButton = rendered.container.querySelector(
88
+ ".pencil.alternate.icon"
89
+ );
103
90
  userEvent.click(pencilButton);
104
91
 
105
92
  await waitFor(() => {
106
- expect(queryByText(/fooDomain/i)).toBeInTheDocument();
93
+ expect(rendered.queryByText(/foodomain/i)).toBeInTheDocument();
107
94
  });
108
95
  userEvent.click(pencilButton);
109
96
  await waitFor(() => {
110
- expect(queryByText(/fooDomain/i)).not.toBeInTheDocument();
97
+ expect(rendered.queryByText(/foodomain/i)).not.toBeInTheDocument();
111
98
  });
112
99
  });
113
100
 
@@ -115,14 +102,15 @@ describe("<QualityControl />", () => {
115
102
  const context = {
116
103
  qualityControl: qualityControlData({ df_type: undefined }),
117
104
  };
118
- const { queryByText } = render(
105
+ const rendered = render(
119
106
  <TestFormWrapper context={context}>
120
107
  <QualityControl />
121
108
  </TestFormWrapper>,
122
109
  renderOpts
123
110
  );
111
+ await waitForLoad(rendered);
124
112
  await waitFor(() =>
125
- expect(queryByText(/Information/i)).not.toBeInTheDocument()
113
+ expect(rendered.queryByText(/information/i)).not.toBeInTheDocument()
126
114
  );
127
115
  });
128
116
  });
@@ -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";