@itwin/reports-config-widget-react 0.8.2 → 0.9.0

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 (294) hide show
  1. package/CHANGELOG.json +16 -1
  2. package/CHANGELOG.md +10 -2
  3. package/api/reports-config-widget-react.api.md +5 -7
  4. package/api/reports-config-widget-react.exports.csv +13 -13
  5. package/api/temp/reports-config-widget-react.api.md +5 -7
  6. package/coverage/{lcov-report/block-navigation.js → block-navigation.js} +1 -1
  7. package/coverage/clover.xml +1422 -442
  8. package/coverage/coverage-final.json +34 -32
  9. package/coverage/{lcov-report/index.html → index.html} +79 -79
  10. package/coverage/{lcov-report/sorter.js → sorter.js} +21 -7
  11. package/coverage/{lcov-report/src → src}/ReportsConfigWidget.ts.html +30 -30
  12. package/coverage/{lcov-report/src → src}/index.html +35 -20
  13. package/coverage/src/reports-config-widget-react.ts.html +127 -0
  14. package/coverage/{lcov-report/src → src}/test/index.html +34 -19
  15. package/coverage/src/test/setup.ts.html +100 -0
  16. package/coverage/{lcov-report/src → src}/test/test-utils.tsx.html +109 -109
  17. package/coverage/{lcov-report/src → src}/widget/ReportsConfigUiProvider.tsx.html +40 -40
  18. package/coverage/{lcov-report/src → src}/widget/components/ActionPanel.tsx.html +37 -37
  19. package/coverage/{lcov-report/src → src}/widget/components/AddMappingsModal.tsx.html +90 -90
  20. package/coverage/{lcov-report/src → src}/widget/components/BulkExtractor.ts.html +96 -96
  21. package/coverage/{lcov-report/src → src}/widget/components/Constants.ts.html +15 -15
  22. package/coverage/{lcov-report/src → src}/widget/components/DeleteModal.tsx.html +49 -49
  23. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/FailedExtractionState.tsx.html +40 -40
  24. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +19 -19
  25. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/RunningExtractionState.tsx.html +17 -17
  26. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/StartingExtractionState.tsx.html +19 -19
  27. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +28 -28
  28. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStates/index.html +54 -54
  29. package/coverage/{lcov-report/src → src}/widget/components/ExtractionStatus.tsx.html +52 -52
  30. package/coverage/{lcov-report/src → src}/widget/components/ExtractionToast.tsx.html +53 -53
  31. package/coverage/{lcov-report/src → src}/widget/components/HorizontalTile.tsx.html +38 -38
  32. package/coverage/{lcov-report/src → src}/widget/components/LocalizedTablePaginator.tsx.html +29 -29
  33. package/coverage/{lcov-report/src → src}/widget/components/ReportAction.tsx.html +90 -90
  34. package/coverage/{lcov-report/src → src}/widget/components/ReportHorizontalTile.tsx.html +105 -105
  35. package/coverage/{lcov-report/src → src}/widget/components/ReportMappingHorizontalTile.tsx.html +87 -87
  36. package/coverage/{lcov-report/src → src}/widget/components/ReportMappings.tsx.html +166 -166
  37. package/coverage/{lcov-report/src → src}/widget/components/Reports.tsx.html +117 -117
  38. package/coverage/{lcov-report/src → src}/widget/components/ReportsConfigContext.tsx.html +78 -78
  39. package/coverage/{lcov-report/src → src}/widget/components/ReportsContainer.tsx.html +51 -51
  40. package/coverage/{lcov-report/src → src}/widget/components/ReportsHeader.tsx.html +19 -19
  41. package/coverage/{lcov-report/src → src}/widget/components/ReportsRouter.tsx.html +85 -85
  42. package/coverage/{lcov-report/src → src}/widget/components/SearchBar.tsx.html +60 -60
  43. package/coverage/{lcov-report/src → src}/widget/components/SelectIModel.tsx.html +53 -53
  44. package/coverage/src/widget/components/index.html +416 -0
  45. package/coverage/{lcov-report/src → src}/widget/components/utils.tsx.html +76 -76
  46. package/coverage/{lcov-report/src → src}/widget/context/BulkExtractorContext.tsx.html +20 -20
  47. package/coverage/{lcov-report/src → src}/widget/context/ReportsConfigApiContext.tsx.html +30 -30
  48. package/coverage/{lcov-report/src → src}/widget/context/index.html +29 -29
  49. package/coverage/{lcov-report/src → src}/widget/hooks/index.html +18 -18
  50. package/coverage/{lcov-report/src → src}/widget/hooks/useValidator.ts.html +45 -45
  51. package/coverage/{lcov-report/src → src}/widget/index.html +20 -20
  52. package/eslint.config.cjs +40 -0
  53. package/lib/cjs/ReportsConfigWidget.js +2 -0
  54. package/lib/cjs/ReportsConfigWidget.js.map +1 -1
  55. package/lib/cjs/test/AddMappingModal.test.d.ts +1 -1
  56. package/lib/cjs/test/AddMappingModal.test.d.ts.map +1 -1
  57. package/lib/cjs/test/AddMappingModal.test.js +7 -7
  58. package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
  59. package/lib/cjs/test/BulkExtractor.test.js +10 -9
  60. package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
  61. package/lib/cjs/test/DeleteModal.test.d.ts +1 -1
  62. package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
  63. package/lib/cjs/test/DeleteModal.test.js +4 -4
  64. package/lib/cjs/test/DeleteModal.test.js.map +1 -1
  65. package/lib/cjs/test/ReportAction.test.d.ts +1 -1
  66. package/lib/cjs/test/ReportAction.test.d.ts.map +1 -1
  67. package/lib/cjs/test/ReportAction.test.js +14 -14
  68. package/lib/cjs/test/ReportAction.test.js.map +1 -1
  69. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts +1 -1
  70. package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts.map +1 -1
  71. package/lib/cjs/test/ReportMappingHorizontalTile.test.js +5 -5
  72. package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
  73. package/lib/cjs/test/ReportMappings.test.d.ts +1 -1
  74. package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
  75. package/lib/cjs/test/ReportMappings.test.js +19 -19
  76. package/lib/cjs/test/ReportMappings.test.js.map +1 -1
  77. package/lib/cjs/test/Reports.test.d.ts +1 -1
  78. package/lib/cjs/test/Reports.test.d.ts.map +1 -1
  79. package/lib/cjs/test/Reports.test.js +8 -8
  80. package/lib/cjs/test/Reports.test.js.map +1 -1
  81. package/lib/cjs/test/WidgetHeader.test.d.ts +1 -1
  82. package/lib/cjs/test/WidgetHeader.test.d.ts.map +1 -1
  83. package/lib/cjs/test/WidgetHeader.test.js +2 -2
  84. package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
  85. package/lib/cjs/test/setup.d.ts +2 -0
  86. package/lib/cjs/test/setup.d.ts.map +1 -0
  87. package/lib/cjs/test/setup.js +8 -0
  88. package/lib/cjs/test/setup.js.map +1 -0
  89. package/lib/cjs/test/test-utils.d.ts +3 -3
  90. package/lib/cjs/test/test-utils.d.ts.map +1 -1
  91. package/lib/cjs/test/test-utils.js +11 -6
  92. package/lib/cjs/test/test-utils.js.map +1 -1
  93. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  94. package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  95. package/lib/cjs/widget/ReportsConfigUiProvider.js +2 -1
  96. package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
  97. package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
  98. package/lib/cjs/widget/components/AddMappingsModal.d.ts +1 -2
  99. package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
  100. package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
  101. package/lib/cjs/widget/components/BulkExtractor.d.ts +1 -2
  102. package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
  103. package/lib/cjs/widget/components/BulkExtractor.js +12 -6
  104. package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
  105. package/lib/cjs/widget/components/DeleteModal.d.ts +0 -1
  106. package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
  107. package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
  108. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts +0 -1
  109. package/lib/cjs/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  110. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts +0 -1
  111. package/lib/cjs/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  112. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts +0 -1
  113. package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  114. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts +0 -1
  115. package/lib/cjs/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  116. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts +0 -1
  117. package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  118. package/lib/cjs/widget/components/ExtractionStatus.d.ts +0 -1
  119. package/lib/cjs/widget/components/ExtractionStatus.d.ts.map +1 -1
  120. package/lib/cjs/widget/components/ExtractionStatus.js +1 -1
  121. package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
  122. package/lib/cjs/widget/components/ExtractionToast.d.ts +0 -1
  123. package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -1
  124. package/lib/cjs/widget/components/LocalizedTablePaginator.d.ts +0 -1
  125. package/lib/cjs/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  126. package/lib/cjs/widget/components/ReportAction.d.ts +0 -1
  127. package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
  128. package/lib/cjs/widget/components/ReportAction.js.map +1 -1
  129. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +0 -1
  130. package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  131. package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
  132. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +0 -1
  133. package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  134. package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  135. package/lib/cjs/widget/components/ReportMappings.d.ts +2 -3
  136. package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
  137. package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
  138. package/lib/cjs/widget/components/Reports.d.ts +1 -2
  139. package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
  140. package/lib/cjs/widget/components/Reports.js.map +1 -1
  141. package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
  142. package/lib/cjs/widget/components/ReportsContainer.d.ts +1 -2
  143. package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
  144. package/lib/cjs/widget/components/ReportsContainer.js +1 -1
  145. package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
  146. package/lib/cjs/widget/components/ReportsHeader.d.ts +0 -1
  147. package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -1
  148. package/lib/cjs/widget/components/ReportsRouter.d.ts +0 -1
  149. package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -1
  150. package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
  151. package/lib/cjs/widget/components/SearchBar.js.map +1 -1
  152. package/lib/cjs/widget/components/SelectIModel.d.ts +0 -1
  153. package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
  154. package/lib/cjs/widget/components/utils.d.ts +1 -1
  155. package/lib/cjs/widget/components/utils.d.ts.map +1 -1
  156. package/lib/cjs/widget/components/utils.js.map +1 -1
  157. package/lib/cjs/widget/context/BulkExtractorContext.d.ts +1 -1
  158. package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -1
  159. package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
  160. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +1 -1
  161. package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  162. package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
  163. package/lib/cjs/widget/hooks/useValidator.d.ts.map +1 -1
  164. package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
  165. package/lib/esm/ReportsConfigWidget.js +2 -0
  166. package/lib/esm/ReportsConfigWidget.js.map +1 -1
  167. package/lib/esm/test/AddMappingModal.test.d.ts +1 -1
  168. package/lib/esm/test/AddMappingModal.test.d.ts.map +1 -1
  169. package/lib/esm/test/AddMappingModal.test.js +7 -7
  170. package/lib/esm/test/AddMappingModal.test.js.map +1 -1
  171. package/lib/esm/test/BulkExtractor.test.js +10 -9
  172. package/lib/esm/test/BulkExtractor.test.js.map +1 -1
  173. package/lib/esm/test/DeleteModal.test.d.ts +1 -1
  174. package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
  175. package/lib/esm/test/DeleteModal.test.js +4 -4
  176. package/lib/esm/test/DeleteModal.test.js.map +1 -1
  177. package/lib/esm/test/ReportAction.test.d.ts +1 -1
  178. package/lib/esm/test/ReportAction.test.d.ts.map +1 -1
  179. package/lib/esm/test/ReportAction.test.js +14 -14
  180. package/lib/esm/test/ReportAction.test.js.map +1 -1
  181. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts +1 -1
  182. package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts.map +1 -1
  183. package/lib/esm/test/ReportMappingHorizontalTile.test.js +5 -5
  184. package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
  185. package/lib/esm/test/ReportMappings.test.d.ts +1 -1
  186. package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
  187. package/lib/esm/test/ReportMappings.test.js +19 -19
  188. package/lib/esm/test/ReportMappings.test.js.map +1 -1
  189. package/lib/esm/test/Reports.test.d.ts +1 -1
  190. package/lib/esm/test/Reports.test.d.ts.map +1 -1
  191. package/lib/esm/test/Reports.test.js +8 -8
  192. package/lib/esm/test/Reports.test.js.map +1 -1
  193. package/lib/esm/test/WidgetHeader.test.d.ts +1 -1
  194. package/lib/esm/test/WidgetHeader.test.d.ts.map +1 -1
  195. package/lib/esm/test/WidgetHeader.test.js +2 -2
  196. package/lib/esm/test/WidgetHeader.test.js.map +1 -1
  197. package/lib/esm/test/setup.d.ts +2 -0
  198. package/lib/esm/test/setup.d.ts.map +1 -0
  199. package/lib/esm/test/setup.js +6 -0
  200. package/lib/esm/test/setup.js.map +1 -0
  201. package/lib/esm/test/test-utils.d.ts +3 -3
  202. package/lib/esm/test/test-utils.d.ts.map +1 -1
  203. package/lib/esm/test/test-utils.js +2 -2
  204. package/lib/esm/test/test-utils.js.map +1 -1
  205. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  206. package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
  207. package/lib/esm/widget/ReportsConfigUiProvider.js +2 -1
  208. package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
  209. package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
  210. package/lib/esm/widget/components/AddMappingsModal.d.ts +1 -2
  211. package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
  212. package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
  213. package/lib/esm/widget/components/BulkExtractor.d.ts +1 -2
  214. package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
  215. package/lib/esm/widget/components/BulkExtractor.js +12 -6
  216. package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
  217. package/lib/esm/widget/components/DeleteModal.d.ts +0 -1
  218. package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
  219. package/lib/esm/widget/components/DeleteModal.js.map +1 -1
  220. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts +0 -1
  221. package/lib/esm/widget/components/ExtractionStates/FailedExtractionState.d.ts.map +1 -1
  222. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts +0 -1
  223. package/lib/esm/widget/components/ExtractionStates/QueuedExtractionState.d.ts.map +1 -1
  224. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts +0 -1
  225. package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.d.ts.map +1 -1
  226. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts +0 -1
  227. package/lib/esm/widget/components/ExtractionStates/StartingExtractionState.d.ts.map +1 -1
  228. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts +0 -1
  229. package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
  230. package/lib/esm/widget/components/ExtractionStatus.d.ts +0 -1
  231. package/lib/esm/widget/components/ExtractionStatus.d.ts.map +1 -1
  232. package/lib/esm/widget/components/ExtractionStatus.js.map +1 -1
  233. package/lib/esm/widget/components/ExtractionToast.d.ts +0 -1
  234. package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -1
  235. package/lib/esm/widget/components/LocalizedTablePaginator.d.ts +0 -1
  236. package/lib/esm/widget/components/LocalizedTablePaginator.d.ts.map +1 -1
  237. package/lib/esm/widget/components/ReportAction.d.ts +0 -1
  238. package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
  239. package/lib/esm/widget/components/ReportAction.js.map +1 -1
  240. package/lib/esm/widget/components/ReportHorizontalTile.d.ts +0 -1
  241. package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
  242. package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
  243. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +0 -1
  244. package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
  245. package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
  246. package/lib/esm/widget/components/ReportMappings.d.ts +2 -3
  247. package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
  248. package/lib/esm/widget/components/ReportMappings.js.map +1 -1
  249. package/lib/esm/widget/components/Reports.d.ts +1 -2
  250. package/lib/esm/widget/components/Reports.d.ts.map +1 -1
  251. package/lib/esm/widget/components/Reports.js.map +1 -1
  252. package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
  253. package/lib/esm/widget/components/ReportsContainer.d.ts +1 -2
  254. package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
  255. package/lib/esm/widget/components/ReportsHeader.d.ts +0 -1
  256. package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -1
  257. package/lib/esm/widget/components/ReportsRouter.d.ts +0 -1
  258. package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -1
  259. package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
  260. package/lib/esm/widget/components/SearchBar.js.map +1 -1
  261. package/lib/esm/widget/components/SelectIModel.d.ts +0 -1
  262. package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
  263. package/lib/esm/widget/components/utils.d.ts +1 -1
  264. package/lib/esm/widget/components/utils.d.ts.map +1 -1
  265. package/lib/esm/widget/components/utils.js.map +1 -1
  266. package/lib/esm/widget/context/BulkExtractorContext.d.ts +1 -1
  267. package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -1
  268. package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -1
  269. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +1 -1
  270. package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -1
  271. package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -1
  272. package/lib/esm/widget/hooks/useValidator.d.ts.map +1 -1
  273. package/lib/esm/widget/hooks/useValidator.js.map +1 -1
  274. package/package.json +37 -61
  275. package/src/test/AddMappingModal.test.tsx +7 -7
  276. package/src/test/BulkExtractor.test.ts +10 -9
  277. package/src/test/DeleteModal.test.tsx +4 -4
  278. package/src/test/ReportAction.test.tsx +14 -14
  279. package/src/test/ReportMappingHorizontalTile.test.tsx +5 -5
  280. package/src/test/ReportMappings.test.tsx +19 -19
  281. package/src/test/Reports.test.tsx +8 -8
  282. package/src/test/WidgetHeader.test.tsx +2 -2
  283. package/{__mocks__/fileMock.js → src/test/setup.ts} +1 -1
  284. package/src/test/test-utils.tsx +2 -2
  285. package/tsconfig.json +2 -1
  286. package/vitest.config.ts +29 -0
  287. package/coverage/lcov-report/src/widget/components/index.html +0 -416
  288. package/coverage/lcov.info +0 -1629
  289. package/jest.config.js +0 -24
  290. /package/coverage/{lcov-report/base.css → base.css} +0 -0
  291. /package/coverage/{lcov-report/favicon.png → favicon.png} +0 -0
  292. /package/coverage/{lcov-report/prettify.css → prettify.css} +0 -0
  293. /package/coverage/{lcov-report/prettify.js → prettify.js} +0 -0
  294. /package/coverage/{lcov-report/sort-arrow-sprite.png → sort-arrow-sprite.png} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/reports-config-widget-react",
3
- "version": "0.8.2",
3
+ "version": "0.9.0",
4
4
  "description": "An iTwin.js 3D Viewer Widget that interfaces with the iTwin Reporting Platform.",
5
5
  "keywords": [
6
6
  "Bentley",
@@ -34,29 +34,12 @@
34
34
  "cover": "npm test -- --coverage",
35
35
  "dual-build": "npm run -s build:cjs && npm run -s build:esm",
36
36
  "extract-api": "betools extract-api --entry=reports-config-widget-react --apiReportFolder=./api --apiReportTempFolder=./api/temp --apiSummaryFolder=./api",
37
- "lint": "eslint -f visualstudio \"./src/**/*.{ts,tsx}\" 1>&2",
37
+ "lint": "eslint \"./src/**/*.{ts,tsx}\" 1>&2",
38
38
  "lint:fix": "npm run lint -- --fix",
39
39
  "pseudolocalize": "betools pseudolocalize --englishDir ./public/locales/en --out ./public/locales/en-PSEUDO",
40
40
  "rebuild": "npm run clean && npm run build",
41
- "test": "jest",
42
- "test:watch": "jest --watch "
43
- },
44
- "eslintConfig": {
45
- "plugins": [
46
- "@itwin"
47
- ],
48
- "extends": [
49
- "plugin:@itwin/ui",
50
- "prettier"
51
- ],
52
- "rules": {
53
- "no-duplicate-imports": "off",
54
- "@typescript-eslint/consistent-type-imports": "error",
55
- "deprecation/deprecation": "error",
56
- "jsx-a11y/no-static-element-interactions": "off",
57
- "jsx-a11y/click-events-have-key-events": "off",
58
- "jsx-a11y/anchor-is-valid": "off"
59
- }
41
+ "test": "vitest run",
42
+ "test:watch": "vitest"
60
43
  },
61
44
  "dependencies": {
62
45
  "@itwin/imodels-access-common": "^4.1.4",
@@ -71,65 +54,58 @@
71
54
  },
72
55
  "devDependencies": {
73
56
  "@faker-js/faker": "6.2.0",
74
- "@itwin/appui-abstract": "^4.0.0",
75
- "@itwin/appui-layout-react": "^4.0.0",
76
- "@itwin/appui-react": "^4.0.0",
77
- "@itwin/build-tools": "^4.0.0",
78
- "@itwin/components-react": "^4.0.0",
79
- "@itwin/core-bentley": "^4.0.0",
80
- "@itwin/core-common": "^4.0.0",
81
- "@itwin/core-frontend": "^4.0.0",
82
- "@itwin/core-geometry": "^4.0.0",
83
- "@itwin/core-markup": "^4.0.0",
84
- "@itwin/core-orbitgt": "^4.0.0",
85
- "@itwin/core-quantity": "^4.0.0",
86
- "@itwin/core-react": "^4.0.0",
87
- "@itwin/core-telemetry": "^4.0.0",
88
- "@itwin/ecschema-metadata": "^4.0.0",
89
- "@itwin/eslint-plugin": "^3.7.8",
90
- "@itwin/imodel-components-react": "^4.0.0",
91
- "@itwin/presentation-common": "^4.0.0",
92
- "@itwin/presentation-frontend": "^4.0.0",
93
- "@itwin/webgl-compatibility": "^4.0.0",
57
+ "@itwin/appui-abstract": "^5.6.0",
58
+ "@itwin/appui-react": "^5.6.0",
59
+ "@itwin/build-tools": "^5.6.0",
60
+ "@itwin/components-react": "^5.6.0",
61
+ "@itwin/core-bentley": "^5.6.0",
62
+ "@itwin/core-common": "^5.6.0",
63
+ "@itwin/core-frontend": "^5.6.0",
64
+ "@itwin/core-geometry": "^5.6.0",
65
+ "@itwin/core-markup": "^5.6.0",
66
+ "@itwin/core-orbitgt": "^5.6.0",
67
+ "@itwin/core-quantity": "^5.6.0",
68
+ "@itwin/core-react": "^5.6.0",
69
+ "@itwin/ecschema-metadata": "^5.6.0",
70
+ "@itwin/eslint-plugin": "^6.0.0",
71
+ "@itwin/imodel-components-react": "^5.6.0",
72
+ "@itwin/presentation-common": "^5.6.0",
73
+ "@itwin/presentation-frontend": "^5.6.0",
74
+ "@itwin/webgl-compatibility": "^5.6.0",
94
75
  "@testing-library/dom": "^8.12.0",
95
- "@testing-library/jest-dom": "^5.16.3",
76
+ "@testing-library/jest-dom": "^6.6.3",
96
77
  "@testing-library/react": "^12.1.4",
97
78
  "@testing-library/user-event": "^14.1.1",
98
79
  "@types/chai": "4.2.11",
99
80
  "@types/i18next": "^8.4.2",
100
- "@types/jest": "^27.4.1",
101
81
  "@types/node": "^14.14.20",
102
82
  "@types/react": "^17.0.19",
103
83
  "@types/react-dom": "^17.0.9",
104
84
  "@types/react-table": "^7.7.0",
105
- "@types/testing-library__jest-dom": "^5.14.3",
106
- "@typescript-eslint/eslint-plugin": "^5.3.1",
107
- "@typescript-eslint/parser": "^5.10.1",
108
85
  "chai": "^4.2.0",
109
86
  "cpx2": "^3.0.0",
110
- "eslint": "^7.32.0",
111
- "eslint-config-prettier": "^9.1.0",
112
- "eslint-plugin-node": "^11.1.0",
113
- "eslint-plugin-react": "^7.33.2",
114
- "eslint-plugin-react-hooks": "^4.2.0",
115
- "jest": "^27.5.1",
116
- "jest-cli": "^27.5.1",
117
- "jest-transform-stub": "^2.0.0",
87
+ "eslint": "^9.39.2",
88
+ "eslint-config-prettier": "^10.1.8",
89
+ "eslint-plugin-import": "^2.32.0",
90
+ "eslint-plugin-react": "^7.37.5",
91
+ "eslint-plugin-unused-imports": "^4.3.0",
92
+ "jsdom": "^25.0.0",
118
93
  "react": "^17.0.2",
119
94
  "react-dom": "^17.0.2",
120
95
  "react-redux": "^7.2.2",
121
96
  "redux": "^4.1.0",
122
97
  "rimraf": "^3.0.2",
123
- "ts-jest": "^27.1.3",
98
+ "sass-embedded": "^1.86.0",
124
99
  "typemoq": "^2.1.0",
125
- "typescript": "~4.6.0",
126
- "xmlhttprequest": "^1.8.0"
100
+ "typescript": "~5.6.0",
101
+ "@vitest/coverage-v8": "^3.0.0",
102
+ "vitest": "^3.0.0"
127
103
  },
128
104
  "peerDependencies": {
129
- "@itwin/appui-abstract": "^4.0.0",
130
- "@itwin/appui-react": "^4.0.0",
131
- "@itwin/core-bentley": "^4.0.0",
132
- "@itwin/core-frontend": "^4.0.0",
105
+ "@itwin/appui-abstract": "^5.0.0",
106
+ "@itwin/appui-react": "^5.0.0",
107
+ "@itwin/core-bentley": "^5.0.0",
108
+ "@itwin/core-frontend": "^5.0.0",
133
109
  "react": "^17.0.2 || ^18.0.0",
134
110
  "react-dom": "^17.0.2 || ^18.0.0"
135
111
  }
@@ -3,8 +3,8 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
+ import { vi } from "vitest";
6
7
  import faker from "@faker-js/faker";
7
- import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
9
  import { mockIModelId1, mockIModelId2, mockIModelsResponse, mockITwinId, mockReportId, render, screen, waitFor, within } from "./test-utils";
10
10
  import * as moq from "typemoq";
@@ -134,15 +134,15 @@ const mockReportMappingsAndMappingsFactory = (mockMappings: MappingContainer[],
134
134
  return reportMappingsAndMapping;
135
135
  };
136
136
 
137
- jest.mock("@itwin/imodels-client-management", () => ({
138
- ...jest.requireActual("@itwin/imodels-client-management"),
139
- toArray: jest.fn().mockImplementation(async () => {
137
+ vi.mock("@itwin/imodels-client-management", async () => ({
138
+ ...(await vi.importActual("@itwin/imodels-client-management")),
139
+ toArray: vi.fn().mockImplementation(async () => {
140
140
  return mockProjectIModels.iModels;
141
141
  }),
142
142
  }));
143
143
 
144
- const mockGetMappings = jest.fn();
145
- const mockCreateReportMapping = jest.fn();
144
+ const mockGetMappings = vi.fn();
145
+ const mockCreateReportMapping = vi.fn();
146
146
 
147
147
  const mockIModelsClient = moq.Mock.ofType<IModelsClient>();
148
148
  const mockIModelsClientOperations = moq.Mock.ofType<IModelOperations<OperationOptions>>();
@@ -181,7 +181,7 @@ describe("Add Mapping Modal", () => {
181
181
  show={true}
182
182
  reportId={mockReportId}
183
183
  existingMappings={mockReportMappingsAndMappings}
184
- onClose={jest.fn()}
184
+ onClose={vi.fn()}
185
185
  defaultIModelId={mockIModelId1}
186
186
  />,
187
187
  { iTwinId: mockITwinId, reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object },
@@ -2,6 +2,7 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
+ import { vi } from "vitest";
5
6
  import { BulkExtractor } from "../widget/components/BulkExtractor";
6
7
  import { ExtractionStates } from "../widget/components/ExtractionStatus";
7
8
  import { assert } from "chai";
@@ -10,25 +11,25 @@ import { ExtractionClient, ExtractionState, ReportsClient } from "@itwin/insight
10
11
  import type { AccessToken } from "@itwin/core-bentley";
11
12
  import type { ExtractionRequestDetails } from "@itwin/insights-client";
12
13
 
13
- jest.mock("../widget/components/Constants.ts", () => ({
14
+ vi.mock("../widget/components/Constants.ts", () => ({
14
15
  STATUS_CHECK_INTERVAL: -1,
15
16
  }));
16
17
 
17
- jest.mock("../widget/components/ExtractionToast.tsx", () => ({
18
- FailedExtractionToast: jest.fn(),
19
- SuccessfulExtractionToast: jest.fn(),
18
+ vi.mock("../widget/components/ExtractionToast.tsx", () => ({
19
+ FailedExtractionToast: vi.fn(),
20
+ SuccessfulExtractionToast: vi.fn(),
20
21
  }));
21
22
 
22
23
  const mockRunExtraction = moq.Mock.ofType<(accessToken: AccessToken, extractionRequest: ExtractionRequestDetails) => Promise<{ id: string }>>();
23
24
  const mockGetStatus = moq.Mock.ofType<(accessToken: AccessToken, jobId: string) => Promise<{ state: ExtractionState }>>();
24
25
  const mockGetReportMappings = moq.Mock.ofType<(accessToken: AccessToken, reportId: string) => Promise<{ imodelId: string; mappingId: string }[]>>();
25
26
 
26
- jest.mock("@itwin/insights-client", () => ({
27
- ...jest.requireActual("@itwin/insights-client"),
28
- ReportsClient: jest.fn().mockImplementation(() => ({
27
+ vi.mock("@itwin/insights-client", async () => ({
28
+ ...(await vi.importActual("@itwin/insights-client")),
29
+ ReportsClient: vi.fn().mockImplementation(() => ({
29
30
  getReportMappings: mockGetReportMappings.object,
30
31
  })),
31
- ExtractionClient: jest.fn().mockImplementation(() => ({
32
+ ExtractionClient: vi.fn().mockImplementation(() => ({
32
33
  runExtraction: mockRunExtraction.object,
33
34
  getExtractionStatus: mockGetStatus.object,
34
35
  })),
@@ -39,7 +40,7 @@ afterEach(() => {
39
40
  mockGetStatus.reset();
40
41
  });
41
42
 
42
- const mockToastCallback = jest.fn();
43
+ const mockToastCallback = vi.fn();
43
44
 
44
45
  const mockGetAccessToken = async () => "mockAccessToken";
45
46
 
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
- import "@testing-library/jest-dom";
6
+ import { vi } from "vitest";
7
7
  import { render, screen } from "./test-utils";
8
8
  import DeleteModal from "../widget/components/DeleteModal";
9
9
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
@@ -16,13 +16,13 @@ beforeAll(async () => {
16
16
 
17
17
  describe("Delete modal", () => {
18
18
  it("should render", () => {
19
- const { container } = render(<DeleteModal entityName="test" onDelete={jest.fn()} refresh={jest.fn()} onClose={jest.fn()} />);
19
+ const { container } = render(<DeleteModal entityName="test" onDelete={vi.fn()} refresh={vi.fn()} onClose={vi.fn()} />);
20
20
  expect(container).toBeTruthy();
21
21
  });
22
22
 
23
23
  it("should call onDelete when delete button is clicked", async () => {
24
- const onDelete = jest.fn();
25
- const { user } = render(<DeleteModal entityName="test" onDelete={onDelete} refresh={jest.fn()} onClose={jest.fn()} />);
24
+ const onDelete = vi.fn();
25
+ const { user } = render(<DeleteModal entityName="test" onDelete={onDelete} refresh={vi.fn()} onClose={vi.fn()} />);
26
26
  const deleteButton = screen.getByRole("button", {
27
27
  name: /delete/i,
28
28
  });
@@ -3,8 +3,8 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
+ import { vi } from "vitest";
6
7
  import faker from "@faker-js/faker";
7
- import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
9
  import { render, screen, waitForElementToBeRemoved } from "./test-utils";
10
10
  import { ReportAction } from "../widget/components/ReportAction";
@@ -20,9 +20,9 @@ beforeAll(async () => {
20
20
 
21
21
  describe("Reports Action", () => {
22
22
  it("required fields should be filled out", async () => {
23
- const mockReturnFn = jest.fn();
23
+ const mockReturnFn = vi.fn();
24
24
 
25
- render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
25
+ render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />);
26
26
 
27
27
  const addButton = screen.getByRole("button", {
28
28
  name: /add/i,
@@ -36,7 +36,7 @@ describe("Reports Action", () => {
36
36
  });
37
37
 
38
38
  it("should be able to add report", async () => {
39
- const mockReturnFn = jest.fn();
39
+ const mockReturnFn = vi.fn();
40
40
  const mockReport: Report = {
41
41
  id: faker.datatype.uuid(),
42
42
  displayName: "mOcKRePoRt1",
@@ -54,7 +54,7 @@ describe("Reports Action", () => {
54
54
 
55
55
  const reportsClient = new ReportsClient();
56
56
 
57
- jest.spyOn(reportsClient, "createReport").mockImplementation(
57
+ vi.spyOn(reportsClient, "createReport").mockImplementation(
58
58
  async () =>
59
59
  new Promise((resolve) =>
60
60
  setTimeout(() => {
@@ -63,7 +63,7 @@ describe("Reports Action", () => {
63
63
  ),
64
64
  );
65
65
 
66
- const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
66
+ const { user } = render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
67
67
 
68
68
  const addButton = screen.getByRole("button", {
69
69
  name: /add/i,
@@ -95,9 +95,9 @@ describe("Reports Action", () => {
95
95
  });
96
96
 
97
97
  it("No duplicate underscores in the beginning of name", async () => {
98
- const mockReturnFn = jest.fn();
98
+ const mockReturnFn = vi.fn();
99
99
 
100
- const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
100
+ const { user } = render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />);
101
101
 
102
102
  const addButton = screen.getByRole("button", {
103
103
  name: /add/i,
@@ -113,9 +113,9 @@ describe("Reports Action", () => {
113
113
  });
114
114
 
115
115
  it("Only begin with letters or underscores of name", async () => {
116
- const mockReturnFn = jest.fn();
116
+ const mockReturnFn = vi.fn();
117
117
 
118
- const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
118
+ const { user } = render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />);
119
119
 
120
120
  const addButton = screen.getByRole("button", {
121
121
  name: /add/i,
@@ -131,9 +131,9 @@ describe("Reports Action", () => {
131
131
  });
132
132
 
133
133
  it("Only letters underscores and digits of name", async () => {
134
- const mockReturnFn = jest.fn();
134
+ const mockReturnFn = vi.fn();
135
135
 
136
- const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
136
+ const { user } = render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />);
137
137
 
138
138
  const addButton = screen.getByRole("button", {
139
139
  name: /add/i,
@@ -149,9 +149,9 @@ describe("Reports Action", () => {
149
149
  });
150
150
 
151
151
  it("check for character limits of name", async () => {
152
- const mockReturnFn = jest.fn();
152
+ const mockReturnFn = vi.fn();
153
153
 
154
- const { user } = render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
154
+ const { user } = render(<ReportAction onClickCancel={vi.fn()} onSaveSuccess={mockReturnFn} />);
155
155
 
156
156
  const addButton = screen.getByRole("button", {
157
157
  name: /add/i,
@@ -3,8 +3,8 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
+ import { vi } from "vitest";
6
7
  import faker from "@faker-js/faker";
7
- import "@testing-library/jest-dom";
8
8
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
9
9
  import { fireEvent, mockIModelId1, mockIModelsResponse, mockReportId, render, screen, waitFor, within } from "./test-utils";
10
10
  import * as moq from "typemoq";
@@ -120,8 +120,8 @@ const mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {
120
120
  const mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();
121
121
  const mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();
122
122
 
123
- jest.mock("../widget/components/Constants.ts", () => ({
124
- ...jest.requireActual("../widget/components/Constants.ts"),
123
+ vi.mock("../widget/components/Constants.ts", async () => ({
124
+ ...(await vi.importActual("../widget/components/Constants.ts")),
125
125
  STATUS_CHECK_INTERVAL: 10,
126
126
  }));
127
127
 
@@ -220,7 +220,7 @@ describe("Report Mapping Horizontal Tile", () => {
220
220
  .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
221
221
  .returns(async () => ExtractionStates.None);
222
222
 
223
- const mockOnClickDelete = jest.fn();
223
+ const mockOnClickDelete = vi.fn();
224
224
 
225
225
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
226
226
 
@@ -263,7 +263,7 @@ describe("Report Mapping Horizontal Tile", () => {
263
263
  .setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
264
264
  .returns(async () => ExtractionStates.None);
265
265
 
266
- const mockOnClickDelete = jest.fn();
266
+ const mockOnClickDelete = vi.fn();
267
267
 
268
268
  const jobStartEvent = new BeEvent<(iModelId: string) => void>();
269
269
 
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
- import "@testing-library/jest-dom";
6
+ import { vi } from "vitest";
7
7
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
8
8
  import {
9
9
  act,
@@ -127,12 +127,12 @@ const mockMappingsFactory = (mockReportMappings: ReportMappingCollection): Mappi
127
127
  return mockMappings;
128
128
  };
129
129
 
130
- jest.mock("../widget/components/Constants.ts", () => ({
131
- ...jest.requireActual("../widget/components/Constants.ts"),
130
+ vi.mock("../widget/components/Constants.ts", async () => ({
131
+ ...(await vi.importActual("../widget/components/Constants.ts")),
132
132
  STATUS_CHECK_INTERVAL: 10,
133
133
  }));
134
134
 
135
- jest.mock("../widget/components/ReportMappingHorizontalTile", () => ({
135
+ vi.mock("../widget/components/ReportMappingHorizontalTile", () => ({
136
136
  ReportMappingHorizontalTile: (props: ReportMappingHorizontalTileProps) => {
137
137
  return (
138
138
  <div data-testid="horizontal-tile">
@@ -144,25 +144,25 @@ jest.mock("../widget/components/ReportMappingHorizontalTile", () => ({
144
144
  }));
145
145
 
146
146
  let onClose: () => Promise<void>;
147
- jest.mock("../widget/components/AddMappingsModal", () => ({
148
- ...jest.requireActual("../widget/components/AddMappingsModal"),
147
+ vi.mock("../widget/components/AddMappingsModal", async () => ({
148
+ ...(await vi.importActual("../widget/components/AddMappingsModal")),
149
149
  AddMappingsModal: (props: AddMappingsModalProps) => {
150
150
  onClose = props.onClose;
151
151
  return <div data-testid="add-mappings-modal" />;
152
152
  },
153
153
  }));
154
154
 
155
- jest.mock("@itwin/imodels-client-management", () => ({
156
- ...jest.requireActual("@itwin/imodels-client-management"),
155
+ vi.mock("@itwin/imodels-client-management", async () => ({
156
+ ...(await vi.importActual("@itwin/imodels-client-management")),
157
157
 
158
- toArray: jest.fn().mockImplementation(async () => {
158
+ toArray: vi.fn().mockImplementation(async () => {
159
159
  return mockProjectIModels.iModels;
160
160
  }),
161
161
  }));
162
162
 
163
- const mockGetMapping = jest.fn();
164
- const mockGetMappings = jest.fn();
165
- const mockGetReportMappings = jest.fn();
163
+ const mockGetMapping = vi.fn();
164
+ const mockGetMappings = vi.fn();
165
+ const mockGetReportMappings = vi.fn();
166
166
 
167
167
  const mockIModelsClient = moq.Mock.ofType<IModelsClient>();
168
168
  const mockIModelsClientOperations = moq.Mock.ofType<IModelOperations<OperationOptions>>();
@@ -198,7 +198,7 @@ describe("Report Mappings View", () => {
198
198
  mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
199
199
  mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
200
200
 
201
- render(<ReportMappings report={mockReport} onClickClose={jest.fn()} />, {
201
+ render(<ReportMappings report={mockReport} onClickClose={vi.fn()} />, {
202
202
  reportsClient: mockReportsClient.object,
203
203
  mappingsClient: mockMappingsClient.object,
204
204
  iModelsClient: mockIModelsClient.object,
@@ -217,7 +217,7 @@ describe("Report Mappings View", () => {
217
217
  mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
218
218
  mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
219
219
 
220
- const { user } = render(<ReportMappings report={mockReport} onClickClose={jest.fn()} />, {
220
+ const { user } = render(<ReportMappings report={mockReport} onClickClose={vi.fn()} />, {
221
221
  reportsClient: mockReportsClient.object,
222
222
  mappingsClient: mockMappingsClient.object,
223
223
  iModelsClient: mockIModelsClient.object,
@@ -258,7 +258,7 @@ describe("Report Mappings View", () => {
258
258
  mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
259
259
  mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
260
260
 
261
- const { user } = render(<ReportMappings report={mockReport} onClickClose={jest.fn()} />, {
261
+ const { user } = render(<ReportMappings report={mockReport} onClickClose={vi.fn()} />, {
262
262
  reportsClient: mockReportsClient.object,
263
263
  mappingsClient: mockMappingsClient.object,
264
264
  iModelsClient: mockIModelsClient.object,
@@ -288,7 +288,7 @@ describe("Report Mappings View", () => {
288
288
  });
289
289
 
290
290
  it("odata feed url", async () => {
291
- const { user } = render(<ReportMappings report={mockReport} onClickClose={jest.fn()} />, {
291
+ const { user } = render(<ReportMappings report={mockReport} onClickClose={vi.fn()} />, {
292
292
  reportsClient: mockReportsClient.object,
293
293
  mappingsClient: mockMappingsClient.object,
294
294
  iModelsClient: mockIModelsClient.object,
@@ -317,11 +317,11 @@ describe("Report Mappings View", () => {
317
317
  mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
318
318
  mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
319
319
 
320
- const bulkExtractor = new BulkExtractor(new ReportsClient(), new ExtractionClient(), jest.fn().mockResolvedValue("mockAccessToken"), jest.fn, jest.fn);
320
+ const bulkExtractor = new BulkExtractor(new ReportsClient(), new ExtractionClient(), vi.fn().mockResolvedValue("mockAccessToken"), vi.fn, vi.fn);
321
321
 
322
- const runIModelExtractionsMock = jest.spyOn(bulkExtractor, "runIModelExtractions").mockImplementation(async () => Promise.resolve());
322
+ const runIModelExtractionsMock = vi.spyOn(bulkExtractor, "runIModelExtractions").mockImplementation(async () => Promise.resolve());
323
323
 
324
- const { user } = render(<ReportMappings report={mockReport} onClickClose={jest.fn()} />, {
324
+ const { user } = render(<ReportMappings report={mockReport} onClickClose={vi.fn()} />, {
325
325
  reportsClient: mockReportsClient.object,
326
326
  mappingsClient: mockMappingsClient.object,
327
327
  iModelsClient: mockIModelsClient.object,
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
- import "@testing-library/jest-dom";
6
+ import { vi } from "vitest";
7
7
  import { render, screen, waitForElementToBeRemoved, within } from "../test/test-utils";
8
8
  import { Reports } from "../widget/components/Reports";
9
9
  import { ReportsConfigWidget } from "../ReportsConfigWidget";
@@ -36,8 +36,8 @@ const reportsFactory = (): ReportCollection => ({
36
36
  },
37
37
  });
38
38
 
39
- const mockGetReports = jest.fn();
40
- const mockDeleteReport = jest.fn();
39
+ const mockGetReports = vi.fn();
40
+ const mockDeleteReport = vi.fn();
41
41
 
42
42
  const mockReportsClient = moq.Mock.ofType<ReportsClient>();
43
43
 
@@ -57,7 +57,7 @@ afterEach(() => {
57
57
  describe("Reports View", () => {
58
58
  it("call to action button should be clickable with no reports", async () => {
59
59
  mockGetReports.mockReturnValueOnce([]);
60
- const onClickAddMock = jest.fn();
60
+ const onClickAddMock = vi.fn();
61
61
 
62
62
  const { user } = render(<Reports onClickAddReport={onClickAddMock} />, { reportsClient: mockReportsClient.object });
63
63
 
@@ -72,7 +72,7 @@ describe("Reports View", () => {
72
72
  it("be able to add new report", async () => {
73
73
  mockGetReports.mockReturnValueOnce([]);
74
74
 
75
- const onClickAddMock = jest.fn();
75
+ const onClickAddMock = vi.fn();
76
76
  const { user } = render(<Reports onClickAddReport={onClickAddMock} />, { reportsClient: mockReportsClient.object });
77
77
 
78
78
  await waitForElementToBeRemoved(() => screen.getByText(/loading/i));
@@ -104,7 +104,7 @@ describe("Reports View", () => {
104
104
  it("able to modify a report", async () => {
105
105
  const mockedReports: ReportCollection = reportsFactory();
106
106
  mockGetReports.mockReturnValueOnce(mockedReports.reports);
107
- const onClickModifyMock = jest.fn();
107
+ const onClickModifyMock = vi.fn();
108
108
  const { user } = render(<Reports onClickReportModify={onClickModifyMock} />, { reportsClient: mockReportsClient.object });
109
109
 
110
110
  await waitForElementToBeRemoved(() => screen.getByText(/loading/i));
@@ -175,7 +175,7 @@ describe("Reports View", () => {
175
175
  it("modify a report", async () => {
176
176
  const mockedReports: ReportCollection = reportsFactory();
177
177
  mockGetReports.mockReturnValueOnce(mockedReports.reports);
178
- const onClickModifyMock = jest.fn();
178
+ const onClickModifyMock = vi.fn();
179
179
  const { user } = render(<Reports onClickReportModify={onClickModifyMock} />, { reportsClient: mockReportsClient.object });
180
180
 
181
181
  await waitForElementToBeRemoved(() => screen.getByText(/loading/i));
@@ -190,7 +190,7 @@ describe("Reports View", () => {
190
190
  it("click a report", async () => {
191
191
  const mockedReports: ReportCollection = reportsFactory();
192
192
  mockGetReports.mockReturnValueOnce(mockedReports.reports);
193
- const onClickTitleMock = jest.fn();
193
+ const onClickTitleMock = vi.fn();
194
194
  const { user } = render(<Reports onClickReportTitle={onClickTitleMock} />, { reportsClient: mockReportsClient.object });
195
195
 
196
196
  await waitForElementToBeRemoved(() => screen.getByText(/loading/i));
@@ -3,7 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import React from "react";
6
- import "@testing-library/jest-dom";
6
+ import { vi } from "vitest";
7
7
  import { render, screen } from "../test/test-utils";
8
8
  import { WidgetHeader } from "../widget/components/utils";
9
9
  import { faker } from "@faker-js/faker";
@@ -26,7 +26,7 @@ describe("Widget Header Component", () => {
26
26
  });
27
27
 
28
28
  it("header allows return callback", async () => {
29
- const mockReturnFn = jest.fn();
29
+ const mockReturnFn = vi.fn();
30
30
  const { user, container } = render(<WidgetHeader title="" returnFn={mockReturnFn} />);
31
31
 
32
32
  const returnBtn = container.getElementsByClassName("rcw-chevron")[0];
@@ -2,4 +2,4 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- module.exports = {};
5
+ import "@testing-library/jest-dom/vitest";
@@ -103,6 +103,6 @@ function render(ui: React.ReactElement, contextProps?: Partial<ReportsConfigCont
103
103
  };
104
104
  }
105
105
 
106
- export * from "@testing-library/react";
107
- // override React Testing Library's render with our own
106
+ // Re-export everything from @testing-library/react except render
107
+ export { act, cleanup, fireEvent, screen, waitFor, waitForElementToBeRemoved, within } from "@testing-library/react";
108
108
  export { render };
package/tsconfig.json CHANGED
@@ -4,7 +4,8 @@
4
4
  "skipLibCheck": true,
5
5
  "jsx": "react",
6
6
  "preserveSymlinks": true,
7
- "esModuleInterop": true
7
+ "esModuleInterop": true,
8
+ "types": ["vitest/globals"]
8
9
  },
9
10
  "include": ["./src/**/*.ts*"],
10
11
  "exclude": ["lib", "node_modules"]
@@ -0,0 +1,29 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { defineConfig } from "vitest/config";
6
+
7
+ export default defineConfig({
8
+ resolve: {
9
+ alias: {
10
+ "react-dom/client": "react-dom",
11
+ },
12
+ },
13
+ test: {
14
+ globals: true,
15
+ environment: "jsdom",
16
+ setupFiles: ["src/test/setup.ts"],
17
+ dir: "src",
18
+ server: {
19
+ deps: {
20
+ inline: [
21
+ "@itwin/appui-react",
22
+ "@itwin/components-react",
23
+ "@itwin/core-react",
24
+ "@itwin/imodel-components-react",
25
+ ],
26
+ },
27
+ },
28
+ },
29
+ });