@truedat/dq 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 (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 +1 -2
  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 +2 -3
  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 +24 -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,24 +1,12 @@
1
1
  import _ from "lodash/fp";
2
- import React, { Suspense } from "react";
3
- import { render } from "@truedat/test/render";
4
- import messages from "@truedat/dq/messages";
2
+ import { render, waitForLoad } from "@truedat/test/render";
5
3
  import { RuleResultDetails } from "../RuleResultDetails";
6
4
 
7
- jest.mock("react-router-dom", () => ({
8
- ...jest.requireActual("react-router-dom"),
5
+ jest.mock("react-router", () => ({
6
+ ...jest.requireActual("react-router"),
9
7
  useParams: () => ({ rule_result_id: 100 }),
10
8
  }));
11
9
 
12
- const renderOpts = {
13
- messages: {
14
- en: {
15
- ...messages.en,
16
- "ruleResult.details.props.test": "TestMessage",
17
- "actions.create": "create",
18
- },
19
- },
20
- };
21
-
22
10
  const commonProps = {
23
11
  ruleImplementation: {
24
12
  id: 1,
@@ -41,37 +29,28 @@ const commonProps = {
41
29
  };
42
30
 
43
31
  describe("<RuleResultDetails>", () => {
44
- it("matches the latest snapshot", () => {
32
+ it("matches the latest snapshot", async () => {
45
33
  const props = _.update("ruleResult.details", () => ({ Query: "ImZvbyI=" }))(
46
34
  commonProps
47
35
  );
48
36
 
49
- const { container } = render(
50
- <Suspense fallback={null}>
51
- <RuleResultDetails {...props} />
52
- </Suspense>,
53
- renderOpts
54
- );
55
- expect(container).toMatchSnapshot();
37
+ const rendered = render(<RuleResultDetails {...props} />);
38
+ await waitForLoad(rendered);
39
+ expect(rendered.container).toMatchSnapshot();
56
40
  });
57
41
 
58
- it("decodes details with base64 prefix", () => {
42
+ it("decodes details with base64 prefix", async () => {
59
43
  const props = _.update("ruleResult.details", () => ({
60
44
  value: "valor",
61
45
  base64_test: "QmFzZTY0X3ZhbHVl", //base64 for Base64_value
62
46
  }))(commonProps);
63
47
 
64
- const { getByText } = render(
65
- <Suspense fallback={null}>
66
- <RuleResultDetails {...props} />
67
- </Suspense>,
68
- renderOpts
69
- );
70
- expect(getByText("TestMessage")).toBeInTheDocument();
71
- expect(getByText("Base64_value")).toBeInTheDocument();
48
+ const rendered = render(<RuleResultDetails {...props} />);
49
+ await waitForLoad(rendered);
50
+ expect(rendered.getByText(/base64_value/i)).toBeInTheDocument();
72
51
  });
73
52
 
74
- it("with empty datset", () => {
53
+ it("with empty datset", async () => {
75
54
  const props = _.update("ruleResult", () => ({
76
55
  result: "0",
77
56
  records: 0,
@@ -80,17 +59,13 @@ describe("<RuleResultDetails>", () => {
80
59
  hasSegments: false,
81
60
  }))(commonProps);
82
61
 
83
- const { container } = render(
84
- <Suspense fallback={null}>
85
- <RuleResultDetails {...props} />
86
- </Suspense>,
87
- renderOpts
88
- );
89
- expect(container).toMatchSnapshot();
90
- expect(container).toHaveTextContent("Empty dataset");
62
+ const rendered = render(<RuleResultDetails {...props} />);
63
+ await waitForLoad(rendered);
64
+ expect(rendered.container).toMatchSnapshot();
65
+ expect(rendered.container).toHaveTextContent(/empty_dataset/i);
91
66
  });
92
67
 
93
- it("with empty ruleResult", () => {
68
+ it("with empty ruleResult", async () => {
94
69
  const props = {
95
70
  ruleImplementation: {
96
71
  id: 1,
@@ -102,22 +77,14 @@ describe("<RuleResultDetails>", () => {
102
77
  ruleResult: {},
103
78
  };
104
79
 
105
- const { container } = render(
106
- <Suspense fallback={null}>
107
- <RuleResultDetails {...props} />
108
- </Suspense>,
109
- renderOpts
110
- );
111
- expect(container).toMatchSnapshot();
80
+ const rendered = render(<RuleResultDetails {...props} />);
81
+ await waitForLoad(rendered);
82
+ expect(rendered.container).toMatchSnapshot();
112
83
  });
113
84
 
114
- it("without details", () => {
115
- const { container } = render(
116
- <Suspense fallback={null}>
117
- <RuleResultDetails {...commonProps} />
118
- </Suspense>,
119
- renderOpts
120
- );
121
- expect(container).toMatchSnapshot();
85
+ it("without details", async () => {
86
+ const rendered = render(<RuleResultDetails {...commonProps} />);
87
+ await waitForLoad(rendered);
88
+ expect(rendered.container).toMatchSnapshot();
122
89
  });
123
90
  });
@@ -1,33 +1,34 @@
1
- import React from "react";
2
- import { mount } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { RuleResultRemediationLoader } from "../RuleResultRemediationLoader";
4
3
 
5
- jest.mock("react-router-dom", () => ({
6
- ...jest.requireActual("react-router-dom"),
4
+ jest.mock("react-router", () => ({
5
+ ...jest.requireActual("react-router"),
7
6
  useParams: () => ({ propRuleResultId: 123 }),
8
7
  }));
9
8
 
10
9
  describe("<RuleResultRemediationLoader />", () => {
11
- it("calls fetchRemediation when component mounts but not when it unmounts", () => {
10
+ it("calls fetchRemediation when component mounts but not when it unmounts", async () => {
12
11
  const props = {
13
12
  clearRemediation: jest.fn(),
14
13
  fetchRemediation: jest.fn(),
15
14
  propRuleResultId: 123,
16
15
  };
17
- const wrapper = mount(<RuleResultRemediationLoader {...props} />);
18
- expect(props.fetchRemediation.mock.calls.length).toBe(1);
19
- wrapper.unmount();
20
- expect(props.fetchRemediation.mock.calls.length).toBe(1);
16
+ const rendered = render(<RuleResultRemediationLoader {...props} />);
17
+ await waitForLoad(rendered);
18
+ expect(props.fetchRemediation).toHaveBeenCalledTimes(1);
19
+ rendered.unmount();
20
+ expect(props.fetchRemediation).toHaveBeenCalledTimes(1);
21
21
  });
22
22
 
23
- it("calls clearRemediation when component unmounts but not when it mounts", () => {
23
+ it("calls clearRemediation when component unmounts but not when it mounts", async () => {
24
24
  const props = {
25
25
  clearRemediation: jest.fn(),
26
26
  fetchRemediation: jest.fn(),
27
27
  };
28
- const wrapper = mount(<RuleResultRemediationLoader {...props} />);
29
- expect(props.clearRemediation.mock.calls.length).toBe(0);
30
- wrapper.unmount();
31
- expect(props.clearRemediation.mock.calls.length).toBe(1);
28
+ const rendered = render(<RuleResultRemediationLoader {...props} />);
29
+ await waitForLoad(rendered);
30
+ expect(props.clearRemediation).toHaveBeenCalledTimes(0);
31
+ rendered.unmount();
32
+ expect(props.clearRemediation).toHaveBeenCalledTimes(1);
32
33
  });
33
34
  });
@@ -1,10 +1,9 @@
1
- import React from "react";
2
1
  import { render } from "@truedat/test/render";
3
2
  import messages from "@truedat/dq/messages";
4
3
  import { RuleResultRemediations } from "../RuleResultRemediations";
5
4
 
6
- jest.mock("react-router-dom", () => ({
7
- ...jest.requireActual("react-router-dom"),
5
+ jest.mock("react-router", () => ({
6
+ ...jest.requireActual("react-router"),
8
7
  useParams: () => ({ rule_result_id: 1 }),
9
8
  }));
10
9
 
@@ -1,84 +1,108 @@
1
1
  import React from "react";
2
- import { render } from "@truedat/test/render";
2
+ import { render, waitForLoad } from "@truedat/test/render";
3
+ import { RuleResultsRoutes } from "../RuleResultsRoutes";
4
+ import { useAuthorized } from "@truedat/core/hooks/useAuthorized";
5
+ import { IMPLEMENTATION_RESULT_QUERY } from "../../api/queries";
3
6
  import {
4
7
  IMPLEMENTATION_RESULT_DETAILS,
5
8
  IMPLEMENTATION_RESULT_SEGMENTS_RESULTS,
6
9
  IMPLEMENTATION_RESULT_REMEDIATION_PLAN,
7
10
  } from "@truedat/core/routes";
8
- import { IMPLEMENTATION_RESULT_QUERY } from "../../api/queries";
9
- import { RuleResultsRoutes } from "../RuleResultsRoutes";
10
11
 
11
- jest.mock("react-router-dom", () => ({
12
- ...jest.requireActual("react-router-dom"),
13
- useParams: () => ({ rule_result_id: 1 }),
12
+ jest.mock("@truedat/core/hooks/useAuthorized", () => ({
13
+ useAuthorized: jest.fn(() => true),
14
14
  }));
15
15
 
16
- describe("<RuleResultsRoutes>", () => {
17
- const implementationResult = {
18
- implementationResult: {
19
- date: "2022-06-24",
20
- errors: 2,
21
- hasRemediation: true,
22
- hasSegments: true,
23
- id: 1,
24
- records: 31,
25
- details: {},
26
- result: "93.54",
27
- params: {},
28
- resultType: "percentage",
29
- },
30
- };
16
+ // Mock child components
17
+ jest.mock("../RuleResult", () => ({ children }) => (
18
+ <div>RuleResult{children}</div>
19
+ ));
20
+ jest.mock("../RuleResultDetails", () => () => <div>RuleResultDetails</div>);
21
+ jest.mock("../RuleResultSegments", () => () => <div>RuleResultSegments</div>);
22
+ jest.mock("../RuleResultRemediations", () => () => (
23
+ <div>RuleResultRemediations</div>
24
+ ));
25
+ jest.mock("../ImplementationCrumbs", () => () => (
26
+ <div>ImplementationCrumbs</div>
27
+ ));
28
+ jest.mock("../RuleResultSegmentsLoader", () => () => (
29
+ <div>RuleResultSegmentsLoader</div>
30
+ ));
31
31
 
32
- const mock = {
33
- request: { query: IMPLEMENTATION_RESULT_QUERY, variables: { id: 1 } },
34
- result: { data: implementationResult },
32
+ describe("<RuleResultsRoutes />", () => {
33
+ const mockResult = {
34
+ date: "2022-06-24",
35
+ errors: 2,
36
+ hasRemediation: true,
37
+ hasSegments: true,
38
+ id: 1,
39
+ records: 31,
40
+ details: {},
41
+ result: "93.54",
42
+ params: {},
43
+ resultType: "percentage",
35
44
  };
36
- const key = "mi implementación molona";
37
- const state = {
38
- ruleImplementation: {
39
- id: 2,
40
- implementation_key: key,
45
+
46
+ const mocks = [
47
+ {
48
+ request: {
49
+ query: IMPLEMENTATION_RESULT_QUERY,
50
+ variables: { id: "123" },
51
+ },
52
+ result: {
53
+ data: {
54
+ implementationResult: mockResult,
55
+ },
56
+ },
41
57
  },
42
- authentication: { role: "admin" },
43
- };
58
+ ];
44
59
 
45
- const renderOpts = { mocks: [mock], state };
60
+ const renderOpts = { mocks };
46
61
 
47
- it("matches the latest loading snapshot", () => {
48
- const routes = [IMPLEMENTATION_RESULT_DETAILS];
49
- const { container } = render(<RuleResultsRoutes />, {
50
- ...renderOpts,
51
- routes,
62
+ it("renders correctly with default route", async () => {
63
+ const rendered = render(<RuleResultsRoutes />, {
64
+ routes: [IMPLEMENTATION_RESULT_DETAILS.replace(":rule_result_id", "123")],
65
+ renderOpts,
52
66
  });
53
- expect(container).toMatchSnapshot();
67
+ await waitForLoad(rendered);
68
+ expect(rendered.container).toMatchSnapshot();
54
69
  });
55
70
 
56
- it("matches the latest success details route snapshot", async () => {
57
- const routes = [IMPLEMENTATION_RESULT_DETAILS];
58
- const { container, findByText } = render(<RuleResultsRoutes />, {
59
- ...renderOpts,
60
- routes,
71
+ it("renders correctly with segments results route", async () => {
72
+ const rendered = render(<RuleResultsRoutes />, {
73
+ routes: [
74
+ IMPLEMENTATION_RESULT_SEGMENTS_RESULTS.replace(
75
+ ":rule_result_id",
76
+ "123"
77
+ ),
78
+ ],
79
+ renderOpts,
61
80
  });
62
- await findByText(key);
63
- expect(container).toMatchSnapshot();
81
+ await waitForLoad(rendered);
82
+ expect(rendered.container).toMatchSnapshot();
64
83
  });
65
84
 
66
- it("matches the latest success segments route snapshot", async () => {
67
- const routes = [IMPLEMENTATION_RESULT_SEGMENTS_RESULTS];
68
- const { container, findByText } = render(<RuleResultsRoutes />, {
69
- ...renderOpts,
70
- routes,
85
+ it("renders correctly with remediation plan route", async () => {
86
+ const rendered = render(<RuleResultsRoutes />, {
87
+ routes: [
88
+ IMPLEMENTATION_RESULT_REMEDIATION_PLAN.replace(
89
+ ":rule_result_id",
90
+ "123"
91
+ ),
92
+ ],
93
+ renderOpts,
71
94
  });
72
- await findByText(key);
73
- expect(container).toMatchSnapshot();
95
+ await waitForLoad(rendered);
96
+ expect(rendered.container).toMatchSnapshot();
74
97
  });
75
- it("matches the latest success remediation route snapshot", async () => {
76
- const routes = [IMPLEMENTATION_RESULT_REMEDIATION_PLAN];
77
- const { container, findByText } = render(<RuleResultsRoutes />, {
78
- ...renderOpts,
79
- routes,
98
+
99
+ it("renders unauthorized component when not authorized", async () => {
100
+ useAuthorized.mockReturnValueOnce(false);
101
+ const rendered = render(<RuleResultsRoutes />, {
102
+ routes: [IMPLEMENTATION_RESULT_DETAILS.replace(":rule_result_id", "123")],
103
+ renderOpts,
80
104
  });
81
- await findByText(key);
82
- expect(container).toMatchSnapshot();
105
+ await waitForLoad(rendered);
106
+ expect(rendered.container).toMatchSnapshot();
83
107
  });
84
108
  });
@@ -1,5 +1,4 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
2
  import { useAuthorized } from "@truedat/core/hooks";
4
3
  import { render } from "@truedat/test/render";
5
4
  import { RuleResultRow } from "../RuleResultRow";
@@ -1,16 +1,9 @@
1
- import _ from "lodash/fp";
2
- import React from "react";
3
- import { shallow } from "enzyme";
4
- import { intl } from "@truedat/test/intl-stub";
1
+ import { render, waitForLoad } from "@truedat/test/render";
5
2
  import { RuleResultSegmentRow } from "../RuleResultSegmentRow";
6
3
 
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
4
  describe("<RuleResultSegmentRow />", () => {
12
- it("renders customColumns values when passed", () => {
13
- const RuleResultSegmentRowProps = {
5
+ it("renders customColumns values when passed", async () => {
6
+ const props = {
14
7
  rule: { id: 10 },
15
8
  segmentResult: {
16
9
  id: 54,
@@ -20,11 +13,11 @@ describe("<RuleResultSegmentRow />", () => {
20
13
  customColumns: [
21
14
  {
22
15
  name: "m_parm1",
23
- fieldSelector: _.path("params.p1"),
16
+ fieldSelector: (obj) => obj.params.p1,
24
17
  },
25
18
  {
26
19
  name: "m_parm2",
27
- fieldSelector: _.path("params.p2"),
20
+ fieldSelector: (obj) => obj.params.p2,
28
21
  },
29
22
  ],
30
23
  date: "2019-08-12T02:00:00Z",
@@ -36,34 +29,21 @@ describe("<RuleResultSegmentRow />", () => {
36
29
  },
37
30
  };
38
31
 
39
- const wrapper = shallow(
40
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
41
- );
42
-
43
- const customColumn = wrapper
44
- .find("TableRow")
45
- .find("TableCell")
46
- .at(2)
47
- .props().children;
48
-
49
- expect(customColumn).toBe("1");
50
-
51
- const customColumn2 = wrapper
52
- .find("TableRow")
53
- .find("TableCell")
54
- .at(3)
55
- .props().children;
32
+ const rendered = render(<RuleResultSegmentRow {...props} />);
33
+ await waitForLoad(rendered);
56
34
 
57
- expect(customColumn2).toBe("2");
35
+ expect(rendered.getByText(/1/i)).toBeInTheDocument();
36
+ expect(rendered.getByText(/2/i)).toBeInTheDocument();
58
37
 
59
- expect(wrapper.find("TableRow").find("TableCell")).toHaveLength(4);
38
+ // Check that we have the right number of cells
39
+ const cells = rendered.container.querySelectorAll("td");
40
+ expect(cells.length).toBe(4);
60
41
  });
61
42
 
62
- it("green icon when result is over goal", () => {
63
- const RuleResultSegmentRowProps = {
43
+ it("green icon when result is over goal", async () => {
44
+ const props = {
64
45
  rule: { id: 10 },
65
46
  segmentResult: { id: 54, result: 80, params: { segment_name: "foo" } },
66
-
67
47
  date: "2019-08-12T02:00:00Z",
68
48
  ruleImplementation: {
69
49
  id: 23,
@@ -73,20 +53,15 @@ describe("<RuleResultSegmentRow />", () => {
73
53
  },
74
54
  };
75
55
 
76
- const wrapper = shallow(
77
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
78
- );
79
- const cell = wrapper.find("TableRow").find("TableCell").at(1).dive();
80
-
81
- expect(cell.find("td").find("Icon")).toHaveLength(1);
56
+ const rendered = render(<RuleResultSegmentRow {...props} />);
57
+ await waitForLoad(rendered);
82
58
 
83
- const icon = cell.find("td").find("Icon").at(0);
84
-
85
- expect(icon.props().color).toBe("green");
59
+ const icon = rendered.container.querySelector("i.green.icon");
60
+ expect(icon).toBeInTheDocument();
86
61
  });
87
62
 
88
- it("red icon when result is under minimum", () => {
89
- const RuleResultSegmentRowProps = {
63
+ it("red icon when result is under minimum", async () => {
64
+ const props = {
90
65
  rule: { id: 10 },
91
66
  segmentResult: { id: 54, result: 80, params: { segment_name: "foo" } },
92
67
  date: "2019-08-12T02:00:00Z",
@@ -98,20 +73,15 @@ describe("<RuleResultSegmentRow />", () => {
98
73
  },
99
74
  };
100
75
 
101
- const wrapper = shallow(
102
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
103
- );
104
- const cell = wrapper.find("TableRow").find("TableCell").at(1).dive();
105
-
106
- expect(cell.find("td").find("Icon")).toHaveLength(1);
76
+ const rendered = render(<RuleResultSegmentRow {...props} />);
77
+ await waitForLoad(rendered);
107
78
 
108
- const icon = cell.find("td").find("Icon").at(0);
109
-
110
- expect(icon.props().color).toBe("red");
79
+ const icon = rendered.container.querySelector("i.red.icon");
80
+ expect(icon).toBeInTheDocument();
111
81
  });
112
82
 
113
- it("yellow icon when result is between minimum and goal", () => {
114
- const RuleResultSegmentRowProps = {
83
+ it("yellow icon when result is between minimum and goal", async () => {
84
+ const props = {
115
85
  rule: { id: 10 },
116
86
  ruleImplementation: {
117
87
  id: 23,
@@ -123,20 +93,15 @@ describe("<RuleResultSegmentRow />", () => {
123
93
  date: "2019-08-12T02:00:00Z",
124
94
  };
125
95
 
126
- const wrapper = shallow(
127
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
128
- );
129
- const cell = wrapper.find("TableRow").find("TableCell").at(1).dive();
130
-
131
- expect(cell.find("td").find("Icon")).toHaveLength(1);
96
+ const rendered = render(<RuleResultSegmentRow {...props} />);
97
+ await waitForLoad(rendered);
132
98
 
133
- const icon = cell.find("td").find("Icon").at(0);
134
-
135
- expect(icon.props().color).toBe("yellow");
99
+ const icon = rendered.container.querySelector("i.yellow.icon");
100
+ expect(icon).toBeInTheDocument();
136
101
  });
137
102
 
138
- it("renders delete cell in RuleResultSegmentRow when user isAdmin is true", () => {
139
- const RuleResultSegmentRowProps = {
103
+ it("renders delete cell in RuleResultSegmentRow when user isAdmin is true", async () => {
104
+ const props = {
140
105
  rule: { id: 10 },
141
106
  ruleImplementation: {
142
107
  id: 23,
@@ -149,19 +114,16 @@ describe("<RuleResultSegmentRow />", () => {
149
114
  isAdmin: true,
150
115
  deleteRuleResult: jest.fn(),
151
116
  };
152
- const wrapper = shallow(
153
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
154
- );
155
- const modal = wrapper
156
- .find("TableRow")
157
- .find("TableCell")
158
- .at(2)
159
- .find("ConfirmModal");
160
- expect(modal).toHaveLength(1);
117
+
118
+ const rendered = render(<RuleResultSegmentRow {...props} />);
119
+ await waitForLoad(rendered);
120
+
121
+ const deleteButton = rendered.container.querySelector(".trash");
122
+ expect(deleteButton).toBeInTheDocument();
161
123
  });
162
124
 
163
- it("does not render delete cell in RuleResultSegmentRow when user isAdmin is false", () => {
164
- const RuleResultSegmentRowProps = {
125
+ it("does not render delete cell in RuleResultSegmentRow when user isAdmin is false", async () => {
126
+ const props = {
165
127
  rule: { id: 10 },
166
128
  ruleImplementation: {
167
129
  id: 23,
@@ -174,10 +136,11 @@ describe("<RuleResultSegmentRow />", () => {
174
136
  isAdmin: false,
175
137
  deleteRuleResult: jest.fn(),
176
138
  };
177
- const wrapper = shallow(
178
- <RuleResultSegmentRow {...RuleResultSegmentRowProps} />
179
- );
180
- const modal = wrapper.find("ConfirmModal");
181
- expect(modal).toHaveLength(0);
139
+
140
+ const rendered = render(<RuleResultSegmentRow {...props} />);
141
+ await waitForLoad(rendered);
142
+
143
+ const deleteButton = rendered.container.querySelector("button");
144
+ expect(deleteButton).not.toBeInTheDocument();
182
145
  });
183
146
  });
@@ -1,16 +1,10 @@
1
1
  import _ from "lodash/fp";
2
- import React from "react";
3
- import { shallow } from "enzyme";
4
- import { intl } from "@truedat/test/intl-stub";
2
+ import { render, waitForLoad } from "@truedat/test/render";
5
3
  import {
6
4
  RuleResultSegments,
7
5
  getCustomColumnsWithData,
8
6
  } from "../RuleResultSegments";
9
7
 
10
- // workaround for enzyme issue with React.useContext
11
- // see https://github.com/airbnb/enzyme/issues/2176#issuecomment-532361526
12
- jest.spyOn(React, "useContext").mockImplementation(() => intl);
13
-
14
8
  describe("<RuleResultSegments />", () => {
15
9
  const rule = {
16
10
  resultType: "percentage",
@@ -27,9 +21,10 @@ describe("<RuleResultSegments />", () => {
27
21
  customColumns,
28
22
  };
29
23
 
30
- it("matches the latest snapshot", () => {
31
- const wrapper = shallow(<RuleResultSegments {...props} />);
32
- expect(wrapper).toMatchSnapshot();
24
+ it("matches the latest snapshot", async () => {
25
+ const rendered = render(<RuleResultSegments {...props} />);
26
+ await waitForLoad(rendered);
27
+ expect(rendered.container).toMatchSnapshot();
33
28
  });
34
29
  });
35
30
 
@@ -1,32 +1,33 @@
1
- import React from "react";
2
- import { mount } from "enzyme";
1
+ import { render, waitForLoad } from "@truedat/test/render";
3
2
  import { RuleResultSegmentsLoader } from "../RuleResultSegmentsLoader";
4
3
 
5
- jest.mock("react-router-dom", () => ({
6
- ...jest.requireActual("react-router-dom"),
4
+ jest.mock("react-router", () => ({
5
+ ...jest.requireActual("react-router"),
7
6
  useParams: () => ({ rule_result_id: 123 }),
8
7
  }));
9
8
 
10
9
  describe("<RuleResultSegmentsLoader />", () => {
11
- it("calls fetchSegmentResults when component mounts but not when it unmounts", () => {
10
+ it("calls fetchSegmentResults when component mounts but not when it unmounts", async () => {
12
11
  const props = {
13
12
  clearSegmentResults: jest.fn(),
14
13
  fetchSegmentResults: jest.fn(),
15
14
  };
16
- const wrapper = mount(<RuleResultSegmentsLoader {...props} />);
17
- expect(props.fetchSegmentResults.mock.calls.length).toBe(1);
18
- wrapper.unmount();
19
- expect(props.fetchSegmentResults.mock.calls.length).toBe(1);
15
+ const rendered = render(<RuleResultSegmentsLoader {...props} />);
16
+ await waitForLoad(rendered);
17
+ expect(props.fetchSegmentResults).toHaveBeenCalledTimes(1);
18
+ rendered.unmount();
19
+ expect(props.fetchSegmentResults).toHaveBeenCalledTimes(1);
20
20
  });
21
21
 
22
- it("calls clearSegmentResults when component unmounts but not when it mounts", () => {
22
+ it("calls clearSegmentResults when component unmounts but not when it mounts", async () => {
23
23
  const props = {
24
24
  clearSegmentResults: jest.fn(),
25
25
  fetchSegmentResults: jest.fn(),
26
26
  };
27
- const wrapper = mount(<RuleResultSegmentsLoader {...props} />);
28
- expect(props.clearSegmentResults.mock.calls.length).toBe(0);
29
- wrapper.unmount();
30
- expect(props.clearSegmentResults.mock.calls.length).toBe(1);
27
+ const rendered = render(<RuleResultSegmentsLoader {...props} />);
28
+ await waitForLoad(rendered);
29
+ expect(props.clearSegmentResults).toHaveBeenCalledTimes(0);
30
+ rendered.unmount();
31
+ expect(props.clearSegmentResults).toHaveBeenCalledTimes(1);
31
32
  });
32
33
  });
@@ -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 RuleResultsUpload from "../RuleResultsUpload";