@truedat/dq 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 (350) hide show
  1. package/package.json +41 -71
  2. package/src/components/ConceptRules.js +1 -2
  3. package/src/components/ConditionCell.js +17 -16
  4. package/src/components/ConditionSummary.js +1 -1
  5. package/src/components/EditRule.js +0 -1
  6. package/src/components/ExecutionForm.js +2 -4
  7. package/src/components/ExecutionGroup.js +0 -1
  8. package/src/components/ExecutionGroupBreadcrumbs.js +1 -2
  9. package/src/components/ExecutionGroupContent.js +3 -3
  10. package/src/components/ExecutionGroupLink.js +1 -2
  11. package/src/components/ExecutionGroupLoader.js +1 -1
  12. package/src/components/ExecutionGroupMessage.js +0 -1
  13. package/src/components/ExecutionGroups.js +1 -2
  14. package/src/components/ExecutionGroupsTable.js +0 -1
  15. package/src/components/ExecutionPopup.js +1 -1
  16. package/src/components/FieldSummary.js +1 -2
  17. package/src/components/ImplementationActions.js +11 -6
  18. package/src/components/ImplementationCrumbs.js +2 -3
  19. package/src/components/ImplementationExecutionFilters.js +2 -2
  20. package/src/components/ImplementationExecutions.js +2 -2
  21. package/src/components/ImplementationResultBar.js +14 -15
  22. package/src/components/ImplementationSearchResults.js +6 -4
  23. package/src/components/ImplementationStructureDelete.js +0 -1
  24. package/src/components/ImplementationStructureLink.js +1 -2
  25. package/src/components/ImplementationStructureLinksActions.js +1 -2
  26. package/src/components/ImplementationStructures.js +2 -2
  27. package/src/components/ImplementationStructuresNew.js +3 -4
  28. package/src/components/ImplementationSummary.js +3 -7
  29. package/src/components/Implementations.js +3 -3
  30. package/src/components/ImplementationsHeader.js +4 -5
  31. package/src/components/ImplementationsRoutes.js +379 -322
  32. package/src/components/ImplementationsUploadButton.js +0 -1
  33. package/src/components/InformationSummary.js +0 -1
  34. package/src/components/JoinTypeIcon.js +8 -9
  35. package/src/components/MoveImplementation.js +0 -1
  36. package/src/components/NewBasicRuleImplementation.js +4 -4
  37. package/src/components/NewRemediation.js +1 -1
  38. package/src/components/NewRule.js +1 -2
  39. package/src/components/NewRuleImplementation.js +4 -4
  40. package/src/components/QualityEventError.js +4 -9
  41. package/src/components/QualityRoutes.js +52 -26
  42. package/src/components/RawContent.js +0 -1
  43. package/src/components/RemediationCrumbs.js +2 -2
  44. package/src/components/RemediationForm.js +4 -4
  45. package/src/components/RemediationPlan.js +4 -5
  46. package/src/components/Rule.js +0 -1
  47. package/src/components/RuleActions.js +13 -7
  48. package/src/components/RuleCrumbs.js +2 -3
  49. package/src/components/RuleEventDecorator.js +0 -1
  50. package/src/components/RuleEventRow.js +0 -1
  51. package/src/components/RuleEvents.js +0 -1
  52. package/src/components/RuleForm.js +11 -21
  53. package/src/components/RuleFormImplementations.js +0 -1
  54. package/src/components/RuleImplementation.js +0 -1
  55. package/src/components/RuleImplementationActions.js +2 -2
  56. package/src/components/RuleImplementationEventRow.js +0 -1
  57. package/src/components/RuleImplementationEvents.js +0 -1
  58. package/src/components/RuleImplementationHistory.js +1 -2
  59. package/src/components/RuleImplementationHistoryRow.js +1 -2
  60. package/src/components/RuleImplementationLink.js +1 -2
  61. package/src/components/RuleImplementationLoader.js +2 -2
  62. package/src/components/RuleImplementationProperties.js +3 -4
  63. package/src/components/RuleImplementationResultTabs.js +7 -11
  64. package/src/components/RuleImplementationResults.js +2 -3
  65. package/src/components/RuleImplementationResultsLink.js +1 -2
  66. package/src/components/RuleImplementationRow.js +0 -1
  67. package/src/components/RuleImplementationTabs.js +31 -21
  68. package/src/components/RuleImplementationsActions.js +1 -2
  69. package/src/components/RuleImplementationsDownload.js +0 -1
  70. package/src/components/RuleImplementationsFromRuleLoader.js +2 -2
  71. package/src/components/RuleImplementationsLabelResults.js +5 -6
  72. package/src/components/RuleImplementationsOptions.js +1 -2
  73. package/src/components/RuleImplementationsSearch.js +0 -1
  74. package/src/components/RuleImplementationsTable.js +1 -1
  75. package/src/components/RuleLink.js +1 -2
  76. package/src/components/RuleLoader.js +2 -2
  77. package/src/components/RuleProperties.js +4 -6
  78. package/src/components/RuleResult.js +0 -1
  79. package/src/components/RuleResultDecorator.js +5 -6
  80. package/src/components/RuleResultDetails.js +0 -4
  81. package/src/components/RuleResultRemediationLoader.js +1 -1
  82. package/src/components/RuleResultRemediations.js +0 -1
  83. package/src/components/RuleResultRow.js +1 -2
  84. package/src/components/RuleResultSegmentRow.js +0 -1
  85. package/src/components/RuleResultSegments.js +0 -1
  86. package/src/components/RuleResultSegmentsLoader.js +1 -1
  87. package/src/components/RuleResultsRoutes.js +41 -41
  88. package/src/components/RuleResultsTable.js +0 -1
  89. package/src/components/RuleResultsUpload.js +0 -1
  90. package/src/components/RuleRoutes.js +72 -67
  91. package/src/components/RuleRow.js +1 -2
  92. package/src/components/RuleSelectionForm.js +0 -1
  93. package/src/components/RuleSelector.js +0 -1
  94. package/src/components/RuleSubscriptionLoader.js +1 -1
  95. package/src/components/RuleSummary.js +1 -1
  96. package/src/components/RuleTabs.js +8 -7
  97. package/src/components/Rules.js +2 -2
  98. package/src/components/RulesActions.js +1 -2
  99. package/src/components/RulesLabelResults.js +2 -3
  100. package/src/components/RulesRoutes.js +32 -21
  101. package/src/components/RulesSearch.js +0 -1
  102. package/src/components/RulesUploadButton.js +0 -1
  103. package/src/components/Subscription.js +3 -3
  104. package/src/components/TaxonomySummary.js +0 -1
  105. package/src/components/__tests__/ConceptRules.spec.js +0 -1
  106. package/src/components/__tests__/ConceptRulesLoader.spec.js +19 -22
  107. package/src/components/__tests__/ConditionSummary.spec.js +0 -1
  108. package/src/components/__tests__/EditRule.spec.js +10 -7
  109. package/src/components/__tests__/ExecutionForm.spec.js +5 -14
  110. package/src/components/__tests__/ExecutionGroup.spec.js +18 -11
  111. package/src/components/__tests__/ExecutionGroupBreadcrumbs.spec.js +0 -1
  112. package/src/components/__tests__/ExecutionGroupContent.spec.js +0 -2
  113. package/src/components/__tests__/ExecutionGroupLink.spec.js +0 -1
  114. package/src/components/__tests__/ExecutionGroupLoader.spec.js +18 -18
  115. package/src/components/__tests__/ExecutionGroupMessage.spec.js +9 -13
  116. package/src/components/__tests__/ExecutionGroups.spec.js +0 -1
  117. package/src/components/__tests__/ExecutionGroupsTable.spec.js +0 -1
  118. package/src/components/__tests__/ExecutionPopup.spec.js +0 -1
  119. package/src/components/__tests__/ImplementationActions.spec.js +0 -1
  120. package/src/components/__tests__/ImplementationExecutionFilters.spec.js +2 -3
  121. package/src/components/__tests__/ImplementationExecutions.spec.js +2 -3
  122. package/src/components/__tests__/ImplementationResultBar.spec.js +44 -27
  123. package/src/components/__tests__/ImplementationSearchResults.spec.js +13 -22
  124. package/src/components/__tests__/ImplementationStructureDelete.spec.js +0 -1
  125. package/src/components/__tests__/ImplementationStructureLink.spec.js +0 -1
  126. package/src/components/__tests__/ImplementationStructures.spec.js +1 -2
  127. package/src/components/__tests__/ImplementationStructuresNew.spec.js +43 -23
  128. package/src/components/__tests__/ImplementationSummary.spec.js +65 -37
  129. package/src/components/__tests__/Implementations.spec.js +4 -10
  130. package/src/components/__tests__/ImplementationsRoutes.spec.js +133 -0
  131. package/src/components/__tests__/ImplementationsUploadButton.spec.js +51 -32
  132. package/src/components/__tests__/InformationSummary.spec.js +0 -1
  133. package/src/components/__tests__/MoveImplementation.spec.js +0 -1
  134. package/src/components/__tests__/NewBasicRuleImplementation.spec.js +19 -23
  135. package/src/components/__tests__/NewRule.spec.js +23 -14
  136. package/src/components/__tests__/NewRuleImplementation.spec.js +101 -101
  137. package/src/components/__tests__/QualityEventError.spec.js +4 -4
  138. package/src/components/__tests__/QualityRoutes.spec.js +86 -0
  139. package/src/components/__tests__/RawContent.spec.js +0 -1
  140. package/src/components/__tests__/RemediationForm.spec.js +0 -2
  141. package/src/components/__tests__/RemediationPlan.spec.js +23 -29
  142. package/src/components/__tests__/Rule.spec.js +19 -5
  143. package/src/components/__tests__/RuleActions.spec.js +11 -8
  144. package/src/components/__tests__/RuleCrumbs.spec.js +12 -11
  145. package/src/components/__tests__/RuleEventDecorator.spec.js +0 -1
  146. package/src/components/__tests__/RuleEventRow.spec.js +0 -1
  147. package/src/components/__tests__/RuleEvents.spec.js +0 -1
  148. package/src/components/__tests__/RuleForm.spec.js +30 -73
  149. package/src/components/__tests__/RuleFormImplementations.spec.js +15 -16
  150. package/src/components/__tests__/RuleImplementation.spec.js +23 -30
  151. package/src/components/__tests__/RuleImplementationEvents.spec.js +0 -1
  152. package/src/components/__tests__/RuleImplementationHistory.spec.js +7 -22
  153. package/src/components/__tests__/RuleImplementationLoader.spec.js +2 -3
  154. package/src/components/__tests__/RuleImplementationProperties.spec.js +56 -82
  155. package/src/components/__tests__/RuleImplementationResultTabs.spec.js +5 -17
  156. package/src/components/__tests__/RuleImplementationResults.spec.js +2 -3
  157. package/src/components/__tests__/RuleImplementationResultsLink.spec.js +5 -5
  158. package/src/components/__tests__/RuleImplementationTabs.spec.js +0 -1
  159. package/src/components/__tests__/RuleImplementationsActions.spec.js +58 -35
  160. package/src/components/__tests__/RuleImplementationsFromRuleLoader.spec.js +34 -24
  161. package/src/components/__tests__/RuleImplementationsLoader.spec.js +22 -14
  162. package/src/components/__tests__/RuleImplementationsOptions.spec.js +0 -1
  163. package/src/components/__tests__/RuleImplementationsSearch.spec.js +14 -23
  164. package/src/components/__tests__/RuleImplementationsTable.spec.js +30 -56
  165. package/src/components/__tests__/RuleProperties.spec.js +4 -10
  166. package/src/components/__tests__/RuleResult.spec.js +10 -22
  167. package/src/components/__tests__/RuleResultDecorator.spec.js +36 -26
  168. package/src/components/__tests__/RuleResultDetails.spec.js +24 -57
  169. package/src/components/__tests__/RuleResultRemediationLoader.spec.js +15 -14
  170. package/src/components/__tests__/RuleResultRemediations.spec.js +2 -3
  171. package/src/components/__tests__/RuleResultRoutes.spec.js +83 -59
  172. package/src/components/__tests__/RuleResultRow.spec.js +0 -1
  173. package/src/components/__tests__/RuleResultSegmentRow.spec.js +46 -83
  174. package/src/components/__tests__/RuleResultSegments.spec.js +5 -10
  175. package/src/components/__tests__/RuleResultSegmentsLoader.spec.js +15 -14
  176. package/src/components/__tests__/RuleResultsUpload.spec.js +0 -1
  177. package/src/components/__tests__/RuleRoutes.spec.js +90 -14
  178. package/src/components/__tests__/RuleRow.spec.js +0 -2
  179. package/src/components/__tests__/RuleSearch.spec.js +10 -15
  180. package/src/components/__tests__/RuleSelectionForm.spec.js +0 -1
  181. package/src/components/__tests__/RuleSubscriptionLoader.spec.js +19 -18
  182. package/src/components/__tests__/RuleSummary.spec.js +0 -1
  183. package/src/components/__tests__/Rules.spec.js +58 -24
  184. package/src/components/__tests__/RulesActions.spec.js +17 -13
  185. package/src/components/__tests__/RulesLoader.spec.js +9 -9
  186. package/src/components/__tests__/RulesRoutes.spec.js +51 -0
  187. package/src/components/__tests__/RulesUploadButton.spec.js +0 -1
  188. package/src/components/__tests__/Subscription.spec.js +18 -19
  189. package/src/components/__tests__/TaxonomySummary.spec.js +0 -1
  190. package/src/components/__tests__/__snapshots__/ConceptRules.spec.js.snap +3 -0
  191. package/src/components/__tests__/__snapshots__/ConditionSummary.spec.js.snap +1 -0
  192. package/src/components/__tests__/__snapshots__/EditRule.spec.js.snap +120 -80
  193. package/src/components/__tests__/__snapshots__/ExecutionForm.spec.js.snap +6 -6
  194. package/src/components/__tests__/__snapshots__/ExecutionGroup.spec.js.snap +12 -10
  195. package/src/components/__tests__/__snapshots__/ExecutionGroupBreadcrumbs.spec.js.snap +2 -1
  196. package/src/components/__tests__/__snapshots__/ExecutionGroupLink.spec.js.snap +1 -0
  197. package/src/components/__tests__/__snapshots__/ExecutionGroupMessage.spec.js.snap +36 -9
  198. package/src/components/__tests__/__snapshots__/ExecutionGroups.spec.js.snap +9 -6
  199. package/src/components/__tests__/__snapshots__/ExecutionGroupsTable.spec.js.snap +6 -5
  200. package/src/components/__tests__/__snapshots__/ImplementationActions.spec.js.snap +6 -5
  201. package/src/components/__tests__/__snapshots__/ImplementationExecutionFilters.spec.js.snap +4 -0
  202. package/src/components/__tests__/__snapshots__/ImplementationExecutions.spec.js.snap +10 -5
  203. package/src/components/__tests__/__snapshots__/ImplementationResultBar.spec.js.snap +10 -20
  204. package/src/components/__tests__/__snapshots__/ImplementationSearchResults.spec.js.snap +249 -71
  205. package/src/components/__tests__/__snapshots__/ImplementationStructureLink.spec.js.snap +1 -0
  206. package/src/components/__tests__/__snapshots__/ImplementationStructures.spec.js.snap +3 -1
  207. package/src/components/__tests__/__snapshots__/ImplementationStructuresNew.spec.js.snap +220 -9
  208. package/src/components/__tests__/__snapshots__/ImplementationSummary.spec.js.snap +312 -166
  209. package/src/components/__tests__/__snapshots__/Implementations.spec.js.snap +9 -21
  210. package/src/components/__tests__/__snapshots__/ImplementationsRoutes.spec.js.snap +37 -0
  211. package/src/components/__tests__/__snapshots__/InformationSummary.spec.js.snap +10 -10
  212. package/src/components/__tests__/__snapshots__/MoveImplementation.spec.js.snap +1 -0
  213. package/src/components/__tests__/__snapshots__/NewBasicRuleImplementation.spec.js.snap +76 -20
  214. package/src/components/__tests__/__snapshots__/NewRule.spec.js.snap +125 -54
  215. package/src/components/__tests__/__snapshots__/NewRuleImplementation.spec.js.snap +157 -79
  216. package/src/components/__tests__/__snapshots__/QualityEventError.spec.js.snap +31 -10
  217. package/src/components/__tests__/__snapshots__/QualityRoutes.spec.js.snap +51 -0
  218. package/src/components/__tests__/__snapshots__/RawContent.spec.js.snap +26 -26
  219. package/src/components/__tests__/__snapshots__/RemediationForm.spec.js.snap +4 -5
  220. package/src/components/__tests__/__snapshots__/RemediationPlan.spec.js.snap +2 -4
  221. package/src/components/__tests__/__snapshots__/Rule.spec.js.snap +42 -41
  222. package/src/components/__tests__/__snapshots__/RuleActions.spec.js.snap +41 -43
  223. package/src/components/__tests__/__snapshots__/RuleCrumbs.spec.js.snap +40 -60
  224. package/src/components/__tests__/__snapshots__/RuleForm.spec.js.snap +194 -45
  225. package/src/components/__tests__/__snapshots__/RuleFormImplementations.spec.js.snap +20 -8
  226. package/src/components/__tests__/__snapshots__/RuleImplementation.spec.js.snap +23 -14
  227. package/src/components/__tests__/__snapshots__/RuleImplementationEvents.spec.js.snap +3 -3
  228. package/src/components/__tests__/__snapshots__/RuleImplementationHistory.spec.js.snap +7 -4
  229. package/src/components/__tests__/__snapshots__/RuleImplementationProperties.spec.js.snap +123 -98
  230. package/src/components/__tests__/__snapshots__/RuleImplementationResultTabs.spec.js.snap +2 -1
  231. package/src/components/__tests__/__snapshots__/RuleImplementationResults.spec.js.snap +12 -6
  232. package/src/components/__tests__/__snapshots__/RuleImplementationResultsLink.spec.js.snap +8 -5
  233. package/src/components/__tests__/__snapshots__/RuleImplementationTabs.spec.js.snap +14 -7
  234. package/src/components/__tests__/__snapshots__/RuleImplementationsActions.spec.js.snap +105 -68
  235. package/src/components/__tests__/__snapshots__/RuleImplementationsFromRuleLoader.spec.js.snap +1 -35
  236. package/src/components/__tests__/__snapshots__/RuleImplementationsLoader.spec.js.snap +1 -31
  237. package/src/components/__tests__/__snapshots__/RuleImplementationsOptions.spec.js.snap +4 -4
  238. package/src/components/__tests__/__snapshots__/RuleImplementationsSearch.spec.js.snap +46 -15
  239. package/src/components/__tests__/__snapshots__/RuleImplementationsTable.spec.js.snap +54 -107
  240. package/src/components/__tests__/__snapshots__/RuleProperties.spec.js.snap +3 -3
  241. package/src/components/__tests__/__snapshots__/RuleResult.spec.js.snap +17 -1
  242. package/src/components/__tests__/__snapshots__/RuleResultDecorator.spec.js.snap +4 -4
  243. package/src/components/__tests__/__snapshots__/RuleResultDetails.spec.js.snap +17 -17
  244. package/src/components/__tests__/__snapshots__/RuleResultRoutes.spec.js.snap +4 -321
  245. package/src/components/__tests__/__snapshots__/RuleResultSegments.spec.js.snap +1 -1
  246. package/src/components/__tests__/__snapshots__/RuleResultsUpload.spec.js.snap +1 -1
  247. package/src/components/__tests__/__snapshots__/RuleRoutes.spec.js.snap +32 -1
  248. package/src/components/__tests__/__snapshots__/RuleRow.spec.js.snap +4 -6
  249. package/src/components/__tests__/__snapshots__/RuleSearch.spec.js.snap +46 -15
  250. package/src/components/__tests__/__snapshots__/RuleSelectionForm.spec.js.snap +1 -0
  251. package/src/components/__tests__/__snapshots__/RuleSubscriptionLoader.spec.js.snap +1 -1
  252. package/src/components/__tests__/__snapshots__/Rules.spec.js.snap +128 -173
  253. package/src/components/__tests__/__snapshots__/RulesActions.spec.js.snap +5 -7
  254. package/src/components/__tests__/__snapshots__/RulesRoutes.spec.js.snap +60 -0
  255. package/src/components/__tests__/__snapshots__/Subscription.spec.js.snap +127 -184
  256. package/src/components/ruleImplementationForm/DatasetForm.js +8 -7
  257. package/src/components/ruleImplementationForm/DateField.js +0 -1
  258. package/src/components/ruleImplementationForm/DateTimeField.js +0 -1
  259. package/src/components/ruleImplementationForm/FieldModifier.js +3 -3
  260. package/src/components/ruleImplementationForm/FieldsGrid.js +1 -1
  261. package/src/components/ruleImplementationForm/FieldsGroup.js +3 -3
  262. package/src/components/ruleImplementationForm/FiltersField.js +5 -5
  263. package/src/components/ruleImplementationForm/FiltersFormGroup.js +5 -6
  264. package/src/components/ruleImplementationForm/FiltersGrid.js +1 -1
  265. package/src/components/ruleImplementationForm/FiltersGroup.js +6 -1
  266. package/src/components/ruleImplementationForm/FixedListField.js +6 -7
  267. package/src/components/ruleImplementationForm/InformationForm.js +3 -4
  268. package/src/components/ruleImplementationForm/LimitsForm.js +0 -1
  269. package/src/components/ruleImplementationForm/NumberField.js +0 -1
  270. package/src/components/ruleImplementationForm/PopulationForm.js +0 -1
  271. package/src/components/ruleImplementationForm/RuleImplementationBasicForm.js +6 -7
  272. package/src/components/ruleImplementationForm/RuleImplementationForm.js +8 -8
  273. package/src/components/ruleImplementationForm/RuleImplementationRawForm.js +10 -9
  274. package/src/components/ruleImplementationForm/SegmentsForm.js +0 -1
  275. package/src/components/ruleImplementationForm/StringField.js +2 -3
  276. package/src/components/ruleImplementationForm/StringListField.js +2 -3
  277. package/src/components/ruleImplementationForm/ValidationsForm.js +0 -1
  278. package/src/components/ruleImplementationForm/ValueConditions.js +3 -3
  279. package/src/components/ruleImplementationForm/__tests__/DataSetForm.spec.js +5 -18
  280. package/src/components/ruleImplementationForm/__tests__/FiltersField.spec.js +5 -10
  281. package/src/components/ruleImplementationForm/__tests__/FiltersFormGroup.spec.js +7 -21
  282. package/src/components/ruleImplementationForm/__tests__/FiltersGroup.spec.js +12 -21
  283. package/src/components/ruleImplementationForm/__tests__/InformationForm.spec.js +9 -3
  284. package/src/components/ruleImplementationForm/__tests__/LimitsForm.spec.js +74 -57
  285. package/src/components/ruleImplementationForm/__tests__/RuleImplementationBasicForm.spec.js +41 -27
  286. package/src/components/ruleImplementationForm/__tests__/RuleImplementationForm.spec.js +0 -2
  287. package/src/components/ruleImplementationForm/__tests__/RuleImplementationRawForm.spec.js +81 -52
  288. package/src/components/ruleImplementationForm/__tests__/ValueConditions.spec.js +11 -21
  289. package/src/components/ruleImplementationForm/__tests__/__snapshots__/DataSetForm.spec.js.snap +6 -6
  290. package/src/components/ruleImplementationForm/__tests__/__snapshots__/FiltersField.spec.js.snap +24 -48
  291. package/src/components/ruleImplementationForm/__tests__/__snapshots__/FiltersFormGroup.spec.js.snap +102 -6
  292. package/src/components/ruleImplementationForm/__tests__/__snapshots__/FiltersGroup.spec.js.snap +69 -6
  293. package/src/components/ruleImplementationForm/__tests__/__snapshots__/InformationForm.spec.js.snap +88 -18
  294. package/src/components/ruleImplementationForm/__tests__/__snapshots__/LimitsForm.spec.js.snap +68 -68
  295. package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationBasicForm.spec.js.snap +78 -17
  296. package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationForm.spec.js.snap +23 -24
  297. package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationRawForm.spec.js.snap +87 -30
  298. package/src/components/ruleImplementationForm/__tests__/__snapshots__/ValueConditions.spec.js.snap +69 -6
  299. package/src/components/ruleImplementationForm/limitsValidation.js +11 -10
  300. package/src/hooks/useConcept.js +4 -1
  301. package/src/sagas/__tests__/createImplementationStructure.spec.js +2 -2
  302. package/src/sagas/__tests__/createRemediation.spec.js +3 -3
  303. package/src/sagas/__tests__/deleteImplementation.spec.js +1 -1
  304. package/src/sagas/__tests__/deleteImplementationStructure.spec.js +2 -2
  305. package/src/sagas/__tests__/deleteRemediation.spec.js +3 -3
  306. package/src/sagas/__tests__/deleteRule.spec.js +1 -1
  307. package/src/sagas/__tests__/deleteRuleResult.spec.js +2 -2
  308. package/src/sagas/__tests__/fetchRemediation.spec.js +2 -2
  309. package/src/sagas/__tests__/fetchRule.spec.js +2 -2
  310. package/src/sagas/__tests__/fetchRuleImplementation.spec.js +3 -3
  311. package/src/sagas/__tests__/fetchRuleImplementations.spec.js +3 -3
  312. package/src/sagas/__tests__/fetchSegmentResults.spec.js +3 -3
  313. package/src/sagas/__tests__/updateRemediation.spec.js +3 -3
  314. package/src/sagas/__tests__/updateRule.spec.js +1 -1
  315. package/src/sagas/__tests__/updateRuleImplementation.spec.js +5 -5
  316. package/src/sagas/createImplementationStructure.js +3 -1
  317. package/src/sagas/createRemediation.js +3 -1
  318. package/src/sagas/deleteImplementation.js +1 -1
  319. package/src/sagas/deleteImplementationStructure.js +1 -1
  320. package/src/sagas/deleteRemediation.js +3 -1
  321. package/src/sagas/deleteRule.js +2 -2
  322. package/src/sagas/deleteRuleResult.js +1 -1
  323. package/src/sagas/fetchConceptRules.js +1 -1
  324. package/src/sagas/fetchExecutionGroup.js +1 -1
  325. package/src/sagas/fetchRemediation.js +1 -1
  326. package/src/sagas/fetchRuleImplementations.js +1 -1
  327. package/src/sagas/fetchSegmentResults.js +1 -1
  328. package/src/sagas/updateRemediation.js +3 -1
  329. package/src/sagas/updateRule.js +1 -1
  330. package/src/sagas/updateRuleImplementation.js +1 -1
  331. package/src/selectors/__tests__/getPreviousRuleImplementationQuery.spec.js +2 -2
  332. package/src/selectors/__tests__/getRuleImplementationColumns.spec.js +1 -1
  333. package/src/selectors/__tests__/getRuleImplementationForm.spec.js +16 -16
  334. package/src/selectors/__tests__/getRuleImplementationSelectedFilterActiveValues.spec.js +2 -2
  335. package/src/selectors/getImplementationStructureLinksColumns.js +0 -1
  336. package/src/selectors/getImplementationsExecution.js +2 -2
  337. package/src/selectors/getLinkedImplementationsToRulesColumns.js +0 -1
  338. package/src/selectors/getPreviousRuleImplementationQuery.js +1 -1
  339. package/src/selectors/getRuleImplementationColumns.js +0 -1
  340. package/src/selectors/getRuleImplementationForm.js +5 -5
  341. package/src/selectors/getRuleImplementationSelectedFilters.js +1 -1
  342. package/src/selectors/ruleColumnsSelector.js +0 -1
  343. package/src/styles/ruleSummary.less +21 -21
  344. package/src/components/RuleRangeNumber.js +0 -46
  345. package/src/components/RuleRangePercentage.js +0 -116
  346. package/src/components/__tests__/RuleRangeNumber.spec.js +0 -20
  347. package/src/components/__tests__/RuleRangePercentage.spec.js +0 -34
  348. package/src/components/__tests__/UploadModal.spec.js +0 -158
  349. package/src/components/__tests__/__snapshots__/RuleRangeNumber.spec.js.snap +0 -50
  350. package/src/components/__tests__/__snapshots__/RuleRangePercentage.spec.js.snap +0 -303
@@ -1,10 +1,7 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
3
- import { intl } from "@truedat/test/intl-stub";
1
+ import { render, waitForLoad } from "@truedat/test/render";
2
+ import userEvent from "@testing-library/user-event";
4
3
  import { RuleImplementationsActions } from "../RuleImplementationsActions";
5
4
 
6
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
7
-
8
5
  describe("<RuleImplementationsActions />", () => {
9
6
  const addImplementationFilter = jest.fn();
10
7
  const toggleImplementationFilterValue = jest.fn();
@@ -29,57 +26,73 @@ describe("<RuleImplementationsActions />", () => {
29
26
  removeImplementationFilter,
30
27
  };
31
28
 
32
- it("matches the latest snapshot", () => {
33
- const wrapper = shallow(<RuleImplementationsActions {...props} />);
34
- expect(wrapper).toMatchSnapshot();
29
+ it("matches the latest snapshot", async () => {
30
+ const rendered = render(<RuleImplementationsActions {...props} />);
31
+ await waitForLoad(rendered);
32
+ expect(rendered.container).toMatchSnapshot();
35
33
  });
36
34
 
37
- it("as user with permissions I see execute implementations button and checkbox", () => {
38
- const props = {
35
+ it("as user with permissions I see execute implementations button and checkbox", async () => {
36
+ const userProps = {
39
37
  actions: { execute: {} },
40
38
  executionGroupLoading: false,
41
39
  ruleImplementationCount: 12,
42
40
  implementationsExecution: true,
43
41
  role: "user",
44
42
  };
45
- const wrapper = shallow(<RuleImplementationsActions {...props} />);
46
- expect(wrapper.find({ id: "execute_checkbox" }).length).toBe(1);
47
- expect(wrapper.find("Connect(ExecutionPopup)").length).toBe(1);
43
+ const rendered = render(<RuleImplementationsActions {...userProps} />);
44
+ await waitForLoad(rendered);
45
+ expect(
46
+ rendered.container.querySelector("#execute_checkbox")
47
+ ).toBeInTheDocument();
48
+ expect(
49
+ rendered.getByText(/ruleimplementations.actions.upload.tooltip/i)
50
+ ).toBeInTheDocument();
48
51
  });
49
52
 
50
- it("as user I do not see execute rules actions if I have no permission", () => {
51
- const props = {
53
+ it("as user I do not see execute rules actions if I have no permission", async () => {
54
+ const noPermProps = {
52
55
  actions: {},
53
56
  executionGroupLoading: false,
54
57
  ruleImplementationCount: 12,
55
58
  implementationsExecution: true,
56
59
  };
57
- const wrapper = shallow(<RuleImplementationsActions {...props} />);
58
- expect(wrapper.find("Checkbox").length).toBe(0);
59
- expect(wrapper.find("Connect(ExecutionPopup)").length).toBe(0);
60
- expect(wrapper.find({ id: "execute_button" }).length).toBe(0);
60
+ const rendered = render(<RuleImplementationsActions {...noPermProps} />);
61
+ await waitForLoad(rendered);
62
+ expect(
63
+ rendered.container.querySelector("#execute_checkbox")
64
+ ).not.toBeInTheDocument();
65
+ expect(rendered.queryByTestId(/execute_button/i)).not.toBeInTheDocument();
61
66
  });
62
67
 
63
- it("as non admin user I can see an active checkbox if executeImplementationsOn", () => {
64
- const props = {
68
+ it("as non admin user I can see an active checkbox if executeImplementationsOn", async () => {
69
+ const activeProps = {
65
70
  actions: { execute: {} },
66
71
  executionGroupLoading: false,
67
72
  ruleImplementationCount: 12,
68
73
  implementationsExecution: true,
69
74
  executeImplementationsOn: true,
70
75
  };
71
- const wrapper = shallow(<RuleImplementationsActions {...props} />);
72
- expect(wrapper.find("Checkbox").length).toBe(1);
73
- expect(wrapper.find("Checkbox").props().checked).toBeTruthy();
74
- expect(wrapper.find("Connect(ExecutionPopup)").length).toBe(1);
76
+ const rendered = render(<RuleImplementationsActions {...activeProps} />);
77
+ await waitForLoad(rendered);
78
+ const checkbox = rendered.container.querySelector("#execute_checkbox");
79
+ expect(checkbox).toBeInTheDocument();
80
+ expect(checkbox).toBeChecked();
81
+ expect(
82
+ rendered.getByText(/implementations.actions.download.tooltip/i)
83
+ ).toBeInTheDocument();
75
84
  });
76
85
 
77
- it("handles checkbox onChange", () => {
78
- const wrapper = shallow(<RuleImplementationsActions {...props} />);
79
- const toCheck = wrapper.find("Checkbox");
80
- expect(toCheck.length).toBe(1);
81
- expect(toCheck.props().checked).toBeFalsy();
82
- toCheck.simulate("change");
86
+ it("handles checkbox onChange", async () => {
87
+ const user = userEvent.setup({ delay: null }); // Asynchronous userEvent setup
88
+ const rendered = render(<RuleImplementationsActions {...props} />);
89
+ await waitForLoad(rendered);
90
+
91
+ const checkbox = rendered.container.querySelector("#execute_checkbox");
92
+ expect(checkbox).toBeInTheDocument();
93
+ expect(checkbox).not.toBeChecked();
94
+
95
+ await user.click(checkbox);
83
96
  expect(setMode).toHaveBeenCalledWith(true);
84
97
  expect(addImplementationFilter).toHaveBeenCalledWith({
85
98
  filter: "executable",
@@ -88,11 +101,21 @@ describe("<RuleImplementationsActions />", () => {
88
101
  filter: "executable",
89
102
  value: true,
90
103
  });
91
- wrapper.setProps({ executeImplementationsOn: true });
104
+
105
+ // Reset and test unchecking
92
106
  setMode.mockReset();
93
- const toUncheck = wrapper.find("Checkbox");
94
- expect(toUncheck.props().checked).toBeTruthy();
95
- toUncheck.simulate("change");
107
+ rendered.rerender(
108
+ <RuleImplementationsActions
109
+ {...{ ...props, executeImplementationsOn: true }}
110
+ />
111
+ );
112
+ await waitForLoad(rendered);
113
+
114
+ const updatedCheckbox =
115
+ rendered.container.querySelector("#execute_checkbox");
116
+ expect(updatedCheckbox).toBeChecked();
117
+
118
+ await user.click(updatedCheckbox);
96
119
  expect(setMode).toHaveBeenCalledWith(false);
97
120
  expect(removeImplementationFilter).toHaveBeenCalledWith({
98
121
  filter: "executable",
@@ -1,53 +1,63 @@
1
- import React from "react";
2
- import { mount } from "enzyme";
1
+ import { useParams } from "react-router";
2
+ import { render, waitForLoad } from "@truedat/test/render";
3
3
  import { RuleImplementationsFromRuleLoader } from "../RuleImplementationsFromRuleLoader";
4
4
 
5
- jest.mock("react-router-dom", () => ({
6
- ...jest.requireActual("react-router-dom"),
7
- useParams: () => ({ id: 1 }),
5
+ jest.mock("react-router", () => ({
6
+ ...jest.requireActual("react-router"),
7
+ useParams: jest.fn(),
8
8
  }));
9
9
 
10
10
  afterEach(() => {
11
11
  jest.clearAllMocks();
12
12
  });
13
13
 
14
- const fetchRuleImplementations = jest.fn();
15
- const clearRuleImplementations = jest.fn();
16
- const deletionQuery = { deleted: false };
14
+ describe("<RuleImplementationsFromRuleLoader />", () => {
15
+ const fetchRuleImplementations = jest.fn();
16
+ const clearRuleImplementations = jest.fn();
17
+ const deletionQuery = { deleted: false };
17
18
 
18
- const props = {
19
- deletionQuery,
20
- fetchRuleImplementations,
21
- clearRuleImplementations,
22
- ruleImplementationsLoading: false,
23
- };
19
+ const props = {
20
+ deletionQuery,
21
+ fetchRuleImplementations,
22
+ clearRuleImplementations,
23
+ ruleImplementationsLoading: false,
24
+ };
24
25
 
25
- describe("<RuleImplementationsFromRuleLoader />", () => {
26
- it("matches the latest snapshot", () => {
27
- const wrapper = mount(<RuleImplementationsFromRuleLoader {...props} />);
28
- expect(wrapper).toMatchSnapshot();
26
+ beforeEach(() => {
27
+ useParams.mockImplementation(() => ({ id: 1 }));
28
+ });
29
+
30
+ it("matches the latest snapshot", async () => {
31
+ const rendered = render(<RuleImplementationsFromRuleLoader {...props} />);
32
+ await waitForLoad(rendered);
33
+ expect(rendered.container).toMatchSnapshot();
29
34
  });
30
35
 
31
- it("calls fetchRuleImplementations when component mounts, clearRuleImplementations when component unmounts", () => {
32
- const wrapper = mount(<RuleImplementationsFromRuleLoader {...props} />);
36
+ it("calls fetchRuleImplementations when component mounts, clearRuleImplementations when component unmounts", async () => {
37
+ const rendered = render(<RuleImplementationsFromRuleLoader {...props} />);
38
+ await waitForLoad(rendered);
39
+
33
40
  expect(clearRuleImplementations).toHaveBeenCalledTimes(0);
34
41
  expect(fetchRuleImplementations).toHaveBeenCalledTimes(1);
35
42
  expect(fetchRuleImplementations).toHaveBeenCalledWith({
36
43
  id: 1,
37
44
  filters: { must_not: { status: ["versioned"] } },
38
45
  });
39
- wrapper.unmount();
46
+
47
+ rendered.unmount();
40
48
  expect(clearRuleImplementations).toHaveBeenCalledTimes(1);
41
49
  expect(fetchRuleImplementations).toHaveBeenCalledTimes(1);
42
50
  });
43
51
 
44
- it("renders dimmer when rule implementations loading", () => {
45
- const wrapper = mount(
52
+ it("renders dimmer when rule implementations loading", async () => {
53
+ const rendered = render(
46
54
  <RuleImplementationsFromRuleLoader
47
55
  {...props}
48
56
  ruleImplementationsLoading
49
57
  />
50
58
  );
51
- expect(wrapper.find("Dimmer").prop("active")).toBeTruthy();
59
+ expect(
60
+ rendered.container.querySelector(".dimmer.active")
61
+ ).toBeInTheDocument();
52
62
  });
53
63
  });
@@ -1,5 +1,4 @@
1
- import React from "react";
2
- import { mount } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { RuleImplementationsLoader } from "../RuleImplementationsLoader";
4
3
 
5
4
  afterEach(() => {
@@ -11,17 +10,18 @@ describe("<RuleImplementationsLoader />", () => {
11
10
  const clearRuleImplementations = jest.fn();
12
11
  const searchRuleImplementations = jest.fn();
13
12
 
14
- it("matches the latest snapshot", () => {
13
+ it("matches the latest snapshot", async () => {
15
14
  const props = {
16
15
  searchRuleImplementations,
17
16
  clearRuleImplementations,
18
- payload: defaultFilters
17
+ payload: defaultFilters,
19
18
  };
20
- const wrapper = mount(<RuleImplementationsLoader {...props} />);
21
- expect(wrapper).toMatchSnapshot();
19
+ const rendered = render(<RuleImplementationsLoader {...props} />);
20
+ await waitForLoad(rendered);
21
+ expect(rendered.container).toMatchSnapshot();
22
22
  });
23
23
 
24
- it("calls searchRuleImplementations when component mounts, clearRuleImplementations when component unmounts", () => {
24
+ it("calls searchRuleImplementations when component mounts, clearRuleImplementations when component unmounts", async () => {
25
25
  const defaultFilters = { structure_id: 1 };
26
26
  const clearRuleImplementations = jest.fn();
27
27
  const searchRuleImplementations = jest.fn();
@@ -29,18 +29,19 @@ describe("<RuleImplementationsLoader />", () => {
29
29
  const props = {
30
30
  clearRuleImplementations,
31
31
  searchRuleImplementations,
32
- defaultFilters
32
+ defaultFilters,
33
33
  };
34
34
 
35
- const wrapper = mount(<RuleImplementationsLoader {...props} />);
35
+ const rendered = render(<RuleImplementationsLoader {...props} />);
36
+ await waitForLoad(rendered);
36
37
  expect(clearRuleImplementations).toHaveBeenCalledTimes(0);
37
38
  expect(searchRuleImplementations).toHaveBeenCalledTimes(1);
38
- wrapper.unmount();
39
+ rendered.unmount();
39
40
  expect(clearRuleImplementations).toHaveBeenCalledTimes(1);
40
41
  expect(searchRuleImplementations).toHaveBeenCalledTimes(1);
41
42
  });
42
43
 
43
- it("calls searchRuleImplementations when component updates", () => {
44
+ it("calls searchRuleImplementations when component updates", async () => {
44
45
  const defaultFilters = { structure_id: 1 };
45
46
  const clearRuleImplementations = jest.fn();
46
47
  const searchRuleImplementations = jest.fn();
@@ -48,11 +49,18 @@ describe("<RuleImplementationsLoader />", () => {
48
49
  const props = {
49
50
  clearRuleImplementations,
50
51
  searchRuleImplementations,
51
- defaultFilters
52
+ defaultFilters,
52
53
  };
53
- const wrapper = mount(<RuleImplementationsLoader {...props} />);
54
+ const rendered = render(<RuleImplementationsLoader {...props} />);
55
+ await waitForLoad(rendered);
54
56
  expect(searchRuleImplementations).toHaveBeenCalledTimes(1);
55
- wrapper.setProps({ payload: { filters: { structure_id: 2 } } });
57
+
58
+ rendered.rerender(
59
+ <RuleImplementationsLoader
60
+ {...props}
61
+ payload={{ filters: { structure_id: 2 } }}
62
+ />
63
+ );
56
64
  expect(searchRuleImplementations).toHaveBeenCalledTimes(2);
57
65
  });
58
66
  });
@@ -1,4 +1,3 @@
1
- import React from "react";
2
1
  import { waitFor } from "@testing-library/react";
3
2
  import { render } from "@truedat/test/render";
4
3
  import RuleImplementationsOptions from "../RuleImplementationsOptions";
@@ -1,38 +1,29 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
3
- import { Input } from "semantic-ui-react";
4
- import { intl } from "@truedat/test/intl-stub";
1
+ import userEvent from "@testing-library/user-event";
2
+ import { render, waitForLoad } from "@truedat/test/render";
5
3
  import { RuleImplementationsSearch } from "../RuleImplementationsSearch";
6
4
 
7
- // workaround for enzyme issue with React.useContext
8
- // see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
9
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
10
-
11
5
  describe("<RuleImplementationsSearch/>", () => {
12
- it("matches the latest snapshot", () => {
6
+ it("matches the latest snapshot", async () => {
13
7
  const searchImplementations = jest.fn();
14
8
  const loading = false;
15
9
  const query = "";
16
10
  const props = { searchImplementations, loading, query };
17
- const wrapper = shallow(<RuleImplementationsSearch {...props} />);
18
- expect(wrapper).toMatchSnapshot();
11
+ const rendered = render(<RuleImplementationsSearch {...props} />);
12
+ await waitForLoad(rendered);
13
+ expect(rendered.container).toMatchSnapshot();
19
14
  });
20
15
 
21
- it("dispatches onChange when Input changes", () => {
16
+ it("dispatches onChange when Input changes", async () => {
22
17
  const searchImplementations = jest.fn();
23
18
  const loading = false;
24
19
  const query = "";
25
20
  const props = { searchImplementations, loading, query };
26
- const eventMock = {
27
- data: {
28
- value: {
29
- toLowerCase: jest.fn()
30
- }
31
- }
32
- };
33
- const wrapper = shallow(<RuleImplementationsSearch {...props} />);
34
- expect(props.searchImplementations.mock.calls.length).toBe(0);
35
- wrapper.find(Input).simulate("change", null, eventMock);
36
- expect(props.searchImplementations.mock.calls.length).toBe(1);
21
+ const rendered = render(<RuleImplementationsSearch {...props} />);
22
+ await waitForLoad(rendered);
23
+
24
+ const user = userEvent.setup({ delay: null });
25
+ await user.type(rendered.getByRole("textbox"), "test");
26
+
27
+ expect(searchImplementations).toHaveBeenCalled();
37
28
  });
38
29
  });
@@ -1,17 +1,12 @@
1
- import React from "react";
2
- import { shallow } from "enzyme";
3
- import { intl } from "@truedat/test/intl-stub";
1
+ import userEvent from "@testing-library/user-event";
2
+ import { render, waitForLoad } from "@truedat/test/render";
4
3
  import { RuleImplementationsTable } from "../RuleImplementationsTable";
5
4
 
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
-
10
5
  describe("<RuleImplementationsTable />", () => {
11
- const ruleImplementations = [1, 2, 3].map(id => ({ id }));
6
+ const ruleImplementations = [1, 2, 3].map((id) => ({ id }));
12
7
  const columns = [
13
8
  { name: "rule", sort: { name: "name.raw" } },
14
- { name: "result", sort: { name: "bar.raw" } }
9
+ { name: "result", sort: { name: "bar.raw" } },
15
10
  ];
16
11
  const implementationsSort = [{ "name.raw": "desc" }];
17
12
  const sortImplementations = jest.fn();
@@ -21,62 +16,41 @@ describe("<RuleImplementationsTable />", () => {
21
16
  columns,
22
17
  ruleImplementationsLoading,
23
18
  implementationsSort,
24
- sortImplementations
19
+ sortImplementations,
25
20
  };
26
21
 
27
- it("matches the latest snapshot", () => {
28
- const wrapper = shallow(<RuleImplementationsTable {...props} />);
29
- expect(wrapper).toMatchSnapshot();
22
+ it("matches the latest snapshot", async () => {
23
+ const rendered = render(<RuleImplementationsTable {...props} />);
24
+ await waitForLoad(rendered);
25
+ expect(rendered.container).toMatchSnapshot();
30
26
  });
31
27
 
32
- it("sorts column in the direction specified", () => {
33
- const wrapper = shallow(<RuleImplementationsTable {...props} />);
34
- const tableHeaderCells = wrapper
35
- .find("TableHeader")
36
- .find("TableRow")
37
- .dive()
38
- .find("TableHeaderCell");
28
+ it("sorts column in the direction specified", async () => {
29
+ const rendered = render(<RuleImplementationsTable {...props} />);
30
+ await waitForLoad(rendered);
39
31
 
40
- expect(tableHeaderCells.at(0).props().sorted).toEqual("descending");
41
- expect(tableHeaderCells.at(1).props().sorted).toEqual(null);
32
+ const headerCells = rendered.container.querySelectorAll("th");
33
+ expect(headerCells[0].getAttribute("class")).toContain("descending sorted");
34
+ expect(headerCells[1].getAttribute("class")).not.toContain("sorted");
42
35
  });
43
36
 
44
- it("handles sort when column header is clicked", () => {
45
- const wrapper = shallow(<RuleImplementationsTable {...props} />);
37
+ it("handles sort when column header is clicked", async () => {
38
+ const user = userEvent.setup({ delay: null });
39
+ const rendered = render(<RuleImplementationsTable {...props} />);
40
+ await waitForLoad(rendered);
41
+
42
+ const headerCells = rendered.container.querySelectorAll("th");
43
+
44
+ // Click on the second header cell
45
+ await user.click(headerCells[1]);
46
46
 
47
- wrapper
48
- .find("TableHeader")
49
- .find("TableRow")
50
- .dive()
51
- .find("TableHeaderCell")
52
- .at(1)
53
- .simulate("click");
47
+ // Check that it's now sorted ascending
48
+ expect(headerCells[1].getAttribute("class")).toContain("ascending sorted");
54
49
 
55
- expect(
56
- wrapper
57
- .find("TableHeader")
58
- .find("TableRow")
59
- .dive()
60
- .find("TableHeaderCell")
61
- .at(1)
62
- .props().sorted
63
- ).toEqual("ascending");
50
+ // Click again to sort descending
51
+ await user.click(headerCells[1]);
64
52
 
65
- wrapper
66
- .find("TableHeader")
67
- .find("TableRow")
68
- .dive()
69
- .find("TableHeaderCell")
70
- .at(1)
71
- .simulate("click");
72
- expect(
73
- wrapper
74
- .find("TableHeader")
75
- .find("TableRow")
76
- .dive()
77
- .find("TableHeaderCell")
78
- .at(1)
79
- .props().sorted
80
- ).toEqual("descending");
53
+ // Check that it's now sorted descending
54
+ expect(headerCells[1].getAttribute("class")).toContain("descending sorted");
81
55
  });
82
56
  });
@@ -1,6 +1,4 @@
1
- import React from "react";
2
- import { waitFor } from "@testing-library/react";
3
- import { render } from "@truedat/test/render";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import RuleProperties from "../RuleProperties";
5
3
 
6
4
  const rule = {
@@ -34,16 +32,12 @@ const rule = {
34
32
 
35
33
  const renderOpts = {
36
34
  state: { rule },
37
- fallback: "lazy",
38
35
  };
39
36
 
40
37
  describe("<RuleProperties />", () => {
41
38
  it("matches the latest snapshot", async () => {
42
- const { container, queryByText } = render(<RuleProperties />, renderOpts);
43
- await waitFor(() => expect(queryByText(/lazy/i)).not.toBeInTheDocument());
44
- await waitFor(() =>
45
- expect(queryByText(/loading/i)).not.toBeInTheDocument()
46
- );
47
- expect(container).toMatchSnapshot();
39
+ const rendered = render(<RuleProperties />, renderOpts);
40
+ await waitForLoad(rendered);
41
+ expect(rendered.container).toMatchSnapshot();
48
42
  });
49
43
  });
@@ -1,34 +1,22 @@
1
- import React, { Suspense } from "react";
2
- import { render } from "@truedat/test/render";
3
- import messages from "@truedat/dq/messages";
1
+ import { render, waitForLoad } from "@truedat/test/render";
4
2
  import { RuleResult } from "../RuleResult";
5
3
 
6
- jest.mock("react-router-dom", () => ({
7
- ...jest.requireActual("react-router-dom"),
4
+ jest.mock("react-router", () => ({
5
+ ...jest.requireActual("react-router"),
8
6
  }));
9
7
 
10
- const renderOpts = {
11
- messages: {
12
- en: {
13
- ...messages.en,
14
- },
15
- },
16
- };
17
-
18
8
  describe("<RuleResult>", () => {
19
- it("matches the latest snapshot", () => {
9
+ it("matches the latest snapshot", async () => {
20
10
  const props = {
21
- ruleImplementation: {
11
+ ruleResult: {
22
12
  results: [{ foo: "bar", id: 100, details: { Query: "ImZvbyI=" } }],
23
13
  },
24
14
  ruleResultId: 123,
25
15
  };
26
- const { container } = render(
27
- <Suspense fallback={null}>
28
- <RuleResult {...props} />
29
- </Suspense>,
30
- renderOpts
31
- );
32
- expect(container).toMatchSnapshot();
16
+
17
+ const rendered = render(<RuleResult {...props} />);
18
+ await waitForLoad(rendered);
19
+
20
+ expect(rendered.container).toMatchSnapshot();
33
21
  });
34
22
  });
@@ -1,5 +1,4 @@
1
- import React from "react";
2
- import { render } from "@truedat/test/render";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { RuleResultDecorator } from "../RuleResultDecorator";
4
3
 
5
4
  describe("<RuleResultDecorator />", () => {
@@ -11,39 +10,46 @@ describe("<RuleResultDecorator />", () => {
11
10
  },
12
11
  };
13
12
 
14
- it("decorates a percentage result", () => {
13
+ it("decorates a percentage result", async () => {
15
14
  const ruleImplementation = { resultType: "percentage" };
16
- const { container, queryByTitle } = render(
15
+ const rendered = render(
17
16
  <RuleResultDecorator ruleImplementation={ruleImplementation} {...props} />
18
17
  );
19
- expect(container).toMatchSnapshot();
20
- expect(container).toHaveTextContent("42%");
21
- expect(queryByTitle("Something happened")).toBeInTheDocument();
18
+ await waitForLoad(rendered);
19
+ expect(rendered.container).toMatchSnapshot();
20
+
21
+ expect(rendered.container).toHaveTextContent(
22
+ /quality.result.percentage.description/
23
+ );
24
+ expect(rendered.queryByTitle("Something happened")).toBeInTheDocument();
22
25
  });
23
26
 
24
- it("decorates an error count result", () => {
27
+ it("decorates an error count result", async () => {
25
28
  const ruleImplementation = { resultType: "errors_number" };
26
- const { container, queryByTitle } = render(
29
+ const rendered = render(
27
30
  <RuleResultDecorator ruleImplementation={ruleImplementation} {...props} />
28
31
  );
29
- expect(container).toMatchSnapshot();
30
- expect(container).toHaveTextContent("1,234 errors");
31
- expect(queryByTitle("Something happened")).toBeInTheDocument();
32
+ await waitForLoad(rendered);
33
+ expect(rendered.container).toMatchSnapshot();
34
+ expect(rendered.container).toHaveTextContent(
35
+ /quality.result.errors_number.description/
36
+ );
37
+ expect(rendered.queryByTitle("Something happened")).toBeInTheDocument();
32
38
  });
33
39
 
34
- it("decorates an implementation without result data", () => {
40
+ it("decorates an implementation without result data", async () => {
35
41
  const ruleImplementation = { resultType: "errors_number" };
36
42
  const ruleResult = { result_text: "no_data" };
37
43
  const props = { ruleImplementation, ruleResult };
38
- const { container, queryByTitle } = render(
39
- <RuleResultDecorator {...props} />
40
- );
41
- expect(container).toMatchSnapshot();
42
- expect(container).toHaveTextContent("No information about quality");
43
- expect(queryByTitle("no_data")).toBeInTheDocument();
44
+ const rendered = render(<RuleResultDecorator {...props} />);
45
+ await waitForLoad(rendered);
46
+ expect(rendered.container).toMatchSnapshot();
47
+
48
+ expect(rendered.container).toHaveTextContent(/quality.result.no.data/i);
49
+ expect(rendered.queryByTitle("no_data")).toBeInTheDocument();
44
50
  });
45
51
 
46
- it("decorates a empty dataset result", () => {
52
+ it("decorates a empty dataset result", async () => {
47
53
  const ruleImplementation = { resultType: "percentage" };
48
54
  const props = {
49
55
  ruleResult: {
@@ -53,15 +59,19 @@ describe("<RuleResultDecorator />", () => {
53
59
  result_text: "Empty dataset",
54
60
  },
55
61
  };
56
- const { container } = render(
62
+ const rendered = render(
57
63
  <RuleResultDecorator ruleImplementation={ruleImplementation} {...props} />
58
64
  );
59
- expect(container).toMatchSnapshot();
60
- expect(container).toHaveTextContent("Empty dataset");
65
+ await waitForLoad(rendered);
66
+ expect(rendered.container).toMatchSnapshot();
67
+ expect(rendered.container).toHaveTextContent(
68
+ /quality_result.empty_dataset/
69
+ );
61
70
  });
62
71
 
63
- it("handles missing execution result", () => {
64
- const { container } = render(<RuleResultDecorator />);
65
- expect(container).toBeEmptyDOMElement();
72
+ it("handles missing execution result", async () => {
73
+ const rendered = render(<RuleResultDecorator />);
74
+ await waitForLoad(rendered);
75
+ expect(rendered.container).toBeEmptyDOMElement();
66
76
  });
67
77
  });