@itwin/reports-config-widget-react 0.2.1 → 0.4.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.
- package/.rush/temp/operation/rebuild/all.log +9 -0
- package/.rush/temp/operation/rebuild/state.json +3 -0
- package/.rush/temp/package-deps_rebuild.json +48 -44
- package/.rush/temp/shrinkwrap-deps.json +228 -207
- package/CHANGELOG.json +44 -0
- package/CHANGELOG.md +24 -1
- package/coverage/clover.xml +562 -542
- package/coverage/coverage-final.json +24 -20
- package/coverage/lcov-report/index.html +51 -51
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +22 -22
- package/coverage/lcov-report/src/index.html +21 -21
- package/coverage/lcov-report/src/test/index.html +11 -11
- package/coverage/lcov-report/src/test/test-utils.tsx.html +20 -140
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +14 -35
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +26 -20
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +94 -109
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +55 -52
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +1 -1
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +28 -46
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +1 -1
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +3 -3
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +36 -81
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +38 -41
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +46 -46
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +127 -142
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +189 -312
- package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +370 -0
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +111 -33
- package/coverage/lcov-report/src/widget/components/ReportsHeader.tsx.html +166 -0
- package/coverage/lcov-report/src/widget/components/ReportsRouter.tsx.html +274 -0
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +22 -7
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +40 -94
- package/coverage/lcov-report/src/widget/components/index.html +142 -97
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +22 -19
- package/coverage/lcov-report/src/widget/context/{ReportsApiConfigContext.tsx.html → BulkExtractorContext.tsx.html} +23 -26
- package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
- package/coverage/lcov-report/src/widget/context/index.html +30 -15
- package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +11 -11
- package/coverage/lcov-report/src/widget/index.html +13 -13
- package/coverage/lcov.info +1036 -1034
- package/jest.config.js +1 -0
- package/lib/cjs/ReportsConfigWidget.js +1 -1
- package/lib/cjs/ReportsConfigWidget.js.map +1 -1
- package/lib/cjs/reports-config-widget-react.d.ts +5 -0
- package/lib/cjs/reports-config-widget-react.d.ts.map +1 -1
- package/lib/cjs/reports-config-widget-react.js +11 -0
- package/lib/cjs/reports-config-widget-react.js.map +1 -1
- package/lib/cjs/test/AddMappingModal.test.js +20 -34
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
- package/lib/cjs/test/BulkExtractor.test.js +13 -19
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
- package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -1
- package/lib/cjs/test/DeleteModal.test.js +4 -62
- package/lib/cjs/test/DeleteModal.test.js.map +1 -1
- package/lib/cjs/test/ReportAction.test.js +14 -79
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +20 -54
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/cjs/test/ReportMappings.test.d.ts.map +1 -1
- package/lib/cjs/test/ReportMappings.test.js +51 -106
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +41 -96
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/test/WidgetHeader.test.js +9 -3
- package/lib/cjs/test/WidgetHeader.test.js.map +1 -1
- package/lib/cjs/test/test-utils.d.ts +3 -8
- package/lib/cjs/test/test-utils.d.ts.map +1 -1
- package/lib/cjs/test/test-utils.js +6 -34
- package/lib/cjs/test/test-utils.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/cjs/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/cjs/widget/ReportsConfigUiProvider.js +5 -7
- package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts +3 -3
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +4 -4
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.scss +2 -3
- package/lib/cjs/widget/components/AddMappingsModal.d.ts +4 -4
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +39 -43
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.scss +1 -2
- package/lib/cjs/widget/components/BulkExtractor.d.ts +4 -4
- package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/cjs/widget/components/BulkExtractor.js +8 -8
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.d.ts +4 -5
- package/lib/cjs/widget/components/DeleteModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +11 -15
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.scss +2 -3
- package/lib/cjs/widget/components/ExtractionStatus.js +2 -2
- package/lib/cjs/widget/components/ExtractionStatus.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStatus.scss +6 -7
- package/lib/cjs/widget/components/HorizontalTile.js +2 -2
- package/lib/cjs/widget/components/HorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/HorizontalTile.scss +11 -14
- package/lib/cjs/widget/components/LocalizedTablePaginator.js +2 -2
- package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.d.ts +4 -5
- package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +24 -26
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.scss +1 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts +4 -4
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportHorizontalTile.js +33 -20
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +36 -21
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts +4 -6
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +50 -63
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +10 -11
- package/lib/cjs/widget/components/Reports.d.ts +6 -1
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +53 -94
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +15 -15
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts +18 -0
- package/lib/cjs/widget/components/ReportsConfigContext.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsConfigContext.js +79 -0
- package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -0
- package/lib/cjs/widget/components/ReportsContainer.d.ts +14 -0
- package/lib/cjs/widget/components/ReportsContainer.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +27 -16
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
- package/lib/cjs/widget/components/ReportsHeader.d.ts +7 -0
- package/lib/cjs/widget/components/ReportsHeader.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsHeader.js +20 -0
- package/lib/cjs/widget/components/ReportsHeader.js.map +1 -0
- package/lib/cjs/widget/components/ReportsRouter.d.ts +8 -0
- package/lib/cjs/widget/components/ReportsRouter.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportsRouter.js +51 -0
- package/lib/cjs/widget/components/ReportsRouter.js.map +1 -0
- package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/cjs/widget/components/SearchBar.js +4 -5
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +1 -2
- package/lib/cjs/widget/components/SelectIModel.d.ts +3 -3
- package/lib/cjs/widget/components/SelectIModel.d.ts.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.js +10 -30
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.scss +2 -3
- package/lib/cjs/widget/components/utils.d.ts +1 -1
- package/lib/cjs/widget/components/utils.d.ts.map +1 -1
- package/lib/cjs/widget/components/utils.js +1 -1
- package/lib/cjs/widget/components/utils.js.map +1 -1
- package/lib/cjs/widget/components/utils.scss +16 -8
- package/lib/cjs/widget/context/BulkExtractorContext.d.ts +10 -0
- package/lib/cjs/widget/context/BulkExtractorContext.d.ts.map +1 -0
- package/lib/cjs/widget/context/{ReportsApiConfigContext.js → BulkExtractorContext.js} +7 -10
- package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts +16 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.js +43 -0
- package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -0
- package/lib/cjs/widget/hooks/useValidator.js +1 -1
- package/lib/cjs/widget/hooks/useValidator.js.map +1 -1
- package/lib/esm/ReportsConfigWidget.js +1 -1
- package/lib/esm/ReportsConfigWidget.js.map +1 -1
- package/lib/esm/reports-config-widget-react.d.ts +5 -0
- package/lib/esm/reports-config-widget-react.d.ts.map +1 -1
- package/lib/esm/reports-config-widget-react.js +5 -0
- package/lib/esm/reports-config-widget-react.js.map +1 -1
- package/lib/esm/test/AddMappingModal.test.js +17 -31
- package/lib/esm/test/AddMappingModal.test.js.map +1 -1
- package/lib/esm/test/BulkExtractor.test.js +14 -17
- package/lib/esm/test/BulkExtractor.test.js.map +1 -1
- package/lib/esm/test/DeleteModal.test.d.ts.map +1 -1
- package/lib/esm/test/DeleteModal.test.js +5 -44
- package/lib/esm/test/DeleteModal.test.js.map +1 -1
- package/lib/esm/test/ReportAction.test.js +14 -60
- package/lib/esm/test/ReportAction.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +4 -38
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/esm/test/ReportMappings.test.d.ts.map +1 -1
- package/lib/esm/test/ReportMappings.test.js +43 -98
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +24 -60
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/test/WidgetHeader.test.js +8 -2
- package/lib/esm/test/WidgetHeader.test.js.map +1 -1
- package/lib/esm/test/test-utils.d.ts +3 -8
- package/lib/esm/test/test-utils.d.ts.map +1 -1
- package/lib/esm/test/test-utils.js +4 -31
- package/lib/esm/test/test-utils.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts +3 -3
- package/lib/esm/widget/ReportsConfigUiProvider.d.ts.map +1 -1
- package/lib/esm/widget/ReportsConfigUiProvider.js +2 -4
- package/lib/esm/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts +3 -3
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js +4 -4
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/ActionPanel.scss +2 -3
- package/lib/esm/widget/components/AddMappingsModal.d.ts +4 -4
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +35 -39
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
- package/lib/esm/widget/components/BulkExtractor.d.ts +4 -4
- package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/esm/widget/components/BulkExtractor.js +7 -8
- package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.d.ts +4 -5
- package/lib/esm/widget/components/DeleteModal.d.ts.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +11 -15
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.scss +2 -3
- package/lib/esm/widget/components/ExtractionStatus.scss +6 -7
- package/lib/esm/widget/components/HorizontalTile.scss +11 -14
- package/lib/esm/widget/components/ReportAction.d.ts +4 -5
- package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportAction.js +17 -21
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportAction.scss +1 -2
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts +4 -4
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportHorizontalTile.js +6 -9
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +12 -13
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.d.ts +4 -6
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +43 -56
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +10 -11
- package/lib/esm/widget/components/Reports.d.ts +6 -1
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +46 -87
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +15 -15
- package/lib/esm/widget/components/ReportsConfigContext.d.ts +18 -0
- package/lib/esm/widget/components/ReportsConfigContext.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsConfigContext.js +56 -0
- package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -0
- package/lib/esm/widget/components/ReportsContainer.d.ts +14 -0
- package/lib/esm/widget/components/ReportsContainer.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +27 -17
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +1 -3
- package/lib/esm/widget/components/ReportsHeader.d.ts +7 -0
- package/lib/esm/widget/components/ReportsHeader.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsHeader.js +13 -0
- package/lib/esm/widget/components/ReportsHeader.js.map +1 -0
- package/lib/esm/widget/components/ReportsRouter.d.ts +8 -0
- package/lib/esm/widget/components/ReportsRouter.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportsRouter.js +44 -0
- package/lib/esm/widget/components/ReportsRouter.js.map +1 -0
- package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/esm/widget/components/SearchBar.js +2 -3
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +1 -2
- package/lib/esm/widget/components/SelectIModel.d.ts +3 -3
- package/lib/esm/widget/components/SelectIModel.d.ts.map +1 -1
- package/lib/esm/widget/components/SelectIModel.js +7 -27
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/SelectIModel.scss +2 -3
- package/lib/esm/widget/components/utils.d.ts +1 -1
- package/lib/esm/widget/components/utils.d.ts.map +1 -1
- package/lib/esm/widget/components/utils.js +2 -2
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/components/utils.scss +16 -8
- package/lib/esm/widget/context/BulkExtractorContext.d.ts +10 -0
- package/lib/esm/widget/context/BulkExtractorContext.d.ts.map +1 -0
- package/lib/esm/widget/context/BulkExtractorContext.js +11 -0
- package/lib/esm/widget/context/BulkExtractorContext.js.map +1 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.d.ts +16 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.d.ts.map +1 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.js +20 -0
- package/lib/esm/widget/context/ReportsConfigApiContext.js.map +1 -0
- package/lib/public/locales/en/ReportsConfigWidget.json +6 -1
- package/package.json +29 -29
- package/public/locales/en/ReportsConfigWidget.json +6 -1
- package/reports-config-widget-react.build.error.log +6 -6
- package/reports-config-widget-react.build.log +52 -49
- package/src/reports-config-widget-react.ts +6 -0
- package/src/test/AddMappingModal.test.tsx +20 -37
- package/src/test/BulkExtractor.test.ts +15 -17
- package/src/test/DeleteModal.test.tsx +4 -73
- package/src/test/ReportAction.test.tsx +17 -90
- package/src/test/ReportMappingHorizontalTile.test.tsx +3 -54
- package/src/test/ReportMappings.test.tsx +50 -135
- package/src/test/Reports.test.tsx +21 -80
- package/src/test/WidgetHeader.test.tsx +9 -2
- package/src/test/test-utils.tsx +9 -49
- package/src/widget/ReportsConfigUiProvider.tsx +7 -14
- package/src/widget/components/ActionPanel.scss +2 -3
- package/src/widget/components/ActionPanel.tsx +17 -15
- package/src/widget/components/AddMappingsModal.scss +1 -2
- package/src/widget/components/AddMappingsModal.tsx +55 -60
- package/src/widget/components/BulkExtractor.ts +11 -10
- package/src/widget/components/DeleteModal.scss +2 -3
- package/src/widget/components/DeleteModal.tsx +17 -23
- package/src/widget/components/ExtractionStatus.scss +6 -7
- package/src/widget/components/HorizontalTile.scss +11 -14
- package/src/widget/components/ReportAction.scss +1 -2
- package/src/widget/components/ReportAction.tsx +18 -33
- package/src/widget/components/ReportHorizontalTile.tsx +11 -12
- package/src/widget/components/ReportMappingHorizontalTile.tsx +30 -30
- package/src/widget/components/ReportMappings.scss +10 -11
- package/src/widget/components/ReportMappings.tsx +67 -72
- package/src/widget/components/Reports.scss +15 -15
- package/src/widget/components/Reports.tsx +140 -181
- package/src/widget/components/ReportsConfigContext.tsx +95 -0
- package/src/widget/components/ReportsContainer.scss +1 -3
- package/src/widget/components/ReportsContainer.tsx +47 -21
- package/src/widget/components/ReportsHeader.tsx +27 -0
- package/src/widget/components/ReportsRouter.tsx +63 -0
- package/src/widget/components/SearchBar.scss +1 -2
- package/src/widget/components/SearchBar.tsx +7 -2
- package/src/widget/components/SelectIModel.scss +2 -3
- package/src/widget/components/SelectIModel.tsx +11 -29
- package/src/widget/components/utils.scss +16 -8
- package/src/widget/components/utils.tsx +8 -7
- package/src/widget/context/{ReportsApiConfigContext.tsx → BulkExtractorContext.tsx} +9 -10
- package/src/widget/context/ReportsConfigApiContext.tsx +39 -0
- package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts +0 -9
- package/lib/cjs/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
- package/lib/cjs/widget/context/ReportsApiConfigContext.js.map +0 -1
- package/lib/esm/widget/context/ReportsApiConfigContext.d.ts +0 -9
- package/lib/esm/widget/context/ReportsApiConfigContext.d.ts.map +0 -1
- package/lib/esm/widget/context/ReportsApiConfigContext.js +0 -14
- package/lib/esm/widget/context/ReportsApiConfigContext.js.map +0 -1
|
@@ -2,11 +2,11 @@
|
|
|
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 BulkExtractor from "../widget/components/BulkExtractor";
|
|
5
|
+
import { BulkExtractor } from "../widget/components/BulkExtractor";
|
|
6
6
|
import { ExtractionStates } from "../widget/components/ExtractionStatus";
|
|
7
7
|
import { assert } from "chai";
|
|
8
8
|
import * as moq from "typemoq";
|
|
9
|
-
import { ExtractorState } from "@itwin/insights-client";
|
|
9
|
+
import { ExtractionClient, ExtractorState, ReportsClient } from "@itwin/insights-client";
|
|
10
10
|
import type { AccessToken } from "@itwin/core-bentley";
|
|
11
11
|
|
|
12
12
|
jest.mock("../widget/components/Constants.ts", () => ({
|
|
@@ -40,6 +40,8 @@ afterEach(() => {
|
|
|
40
40
|
|
|
41
41
|
const mockToastCallback = jest.fn();
|
|
42
42
|
|
|
43
|
+
const mockGetAccessToken = async () => "mockAccessToken";
|
|
44
|
+
|
|
43
45
|
const mockIModelId = "mockIModelId";
|
|
44
46
|
const mockIModelId1 = "mockIModelId1";
|
|
45
47
|
const mockReportId = "mockReportId";
|
|
@@ -47,13 +49,9 @@ const mockRunId = "mockRunId";
|
|
|
47
49
|
const mockRunId1 = "mockRunId1";
|
|
48
50
|
|
|
49
51
|
describe("BulkExtractor", () => {
|
|
50
|
-
const mockApiConfig = {
|
|
51
|
-
getAccessToken: async () => "mockAccessToken",
|
|
52
|
-
baseUrl: "",
|
|
53
|
-
};
|
|
54
52
|
|
|
55
53
|
it("should return status none for unknown iModel", async () => {
|
|
56
|
-
const sut = new BulkExtractor(
|
|
54
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
57
55
|
const result = await sut.getIModelState(mockIModelId, "", "");
|
|
58
56
|
assert.strictEqual(result, ExtractionStates.None);
|
|
59
57
|
});
|
|
@@ -67,7 +65,7 @@ describe("BulkExtractor", () => {
|
|
|
67
65
|
async () => ({ state: ExtractorState.Running })
|
|
68
66
|
);
|
|
69
67
|
|
|
70
|
-
const sut = new BulkExtractor(
|
|
68
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
71
69
|
await sut.runIModelExtraction(mockIModelId);
|
|
72
70
|
const result = await sut.getIModelState(mockIModelId, "", "");
|
|
73
71
|
assert.strictEqual(result, ExtractionStates.Running);
|
|
@@ -82,7 +80,7 @@ describe("BulkExtractor", () => {
|
|
|
82
80
|
async () => ({ state: ExtractorState.Failed })
|
|
83
81
|
);
|
|
84
82
|
|
|
85
|
-
const sut = new BulkExtractor(
|
|
83
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
86
84
|
await sut.runIModelExtraction(mockIModelId);
|
|
87
85
|
const result = await sut.getIModelState(mockIModelId, "", "");
|
|
88
86
|
assert.strictEqual(result, ExtractionStates.Failed);
|
|
@@ -105,7 +103,7 @@ describe("BulkExtractor", () => {
|
|
|
105
103
|
async () => ({ state: ExtractorState.Succeeded })
|
|
106
104
|
);
|
|
107
105
|
|
|
108
|
-
const sut = new BulkExtractor(
|
|
106
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
109
107
|
await sut.runIModelExtraction(mockIModelId);
|
|
110
108
|
|
|
111
109
|
let result = await sut.getIModelState(mockIModelId, "", "");
|
|
@@ -137,7 +135,7 @@ describe("BulkExtractor", () => {
|
|
|
137
135
|
async () => ({ state: ExtractorState.Queued })
|
|
138
136
|
);
|
|
139
137
|
|
|
140
|
-
const sut = new BulkExtractor(
|
|
138
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
141
139
|
|
|
142
140
|
await sut.runIModelExtractions(mockIModelIds);
|
|
143
141
|
|
|
@@ -149,7 +147,7 @@ describe("BulkExtractor", () => {
|
|
|
149
147
|
});
|
|
150
148
|
|
|
151
149
|
it("should return status none for unknown report", async () => {
|
|
152
|
-
const sut = new BulkExtractor(
|
|
150
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
153
151
|
const result = await sut.getReportState(mockReportId);
|
|
154
152
|
assert.strictEqual(result, ExtractionStates.None);
|
|
155
153
|
});
|
|
@@ -167,7 +165,7 @@ describe("BulkExtractor", () => {
|
|
|
167
165
|
async () => ([{ imodelId: mockIModelId }])
|
|
168
166
|
);
|
|
169
167
|
|
|
170
|
-
const sut = new BulkExtractor(
|
|
168
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
171
169
|
|
|
172
170
|
await sut.runReportExtractions([mockReportId]);
|
|
173
171
|
|
|
@@ -196,7 +194,7 @@ describe("BulkExtractor", () => {
|
|
|
196
194
|
async () => ([{ imodelId: mockIModelId }, { imodelId: mockIModelId1 }])
|
|
197
195
|
);
|
|
198
196
|
|
|
199
|
-
const sut = new BulkExtractor(
|
|
197
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
200
198
|
|
|
201
199
|
await sut.runReportExtractions([mockReportId]);
|
|
202
200
|
|
|
@@ -228,7 +226,7 @@ describe("BulkExtractor", () => {
|
|
|
228
226
|
async () => ([{ imodelId: mockIModelId }, { imodelId: mockIModelId1 }])
|
|
229
227
|
);
|
|
230
228
|
|
|
231
|
-
const sut = new BulkExtractor(
|
|
229
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
232
230
|
|
|
233
231
|
await sut.runReportExtractions([mockReportId]);
|
|
234
232
|
|
|
@@ -257,7 +255,7 @@ describe("BulkExtractor", () => {
|
|
|
257
255
|
async () => ([{ imodelId: mockIModelId1 }, { imodelId: mockIModelId1 }])
|
|
258
256
|
);
|
|
259
257
|
|
|
260
|
-
const sut = new BulkExtractor(
|
|
258
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
261
259
|
|
|
262
260
|
await sut.runReportExtractions([mockReportId]);
|
|
263
261
|
|
|
@@ -286,7 +284,7 @@ describe("BulkExtractor", () => {
|
|
|
286
284
|
async () => ([{ imodelId: mockIModelId }])
|
|
287
285
|
);
|
|
288
286
|
|
|
289
|
-
const sut = new BulkExtractor(
|
|
287
|
+
const sut = new BulkExtractor(new ReportsClient(), new ExtractionClient(), mockGetAccessToken, mockToastCallback, mockToastCallback);
|
|
290
288
|
await sut.runReportExtractions([mockReportId]);
|
|
291
289
|
|
|
292
290
|
let result = await sut.getReportState(mockReportId);
|
|
@@ -3,67 +3,18 @@
|
|
|
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 faker from "@faker-js/faker";
|
|
7
6
|
import "@testing-library/jest-dom";
|
|
8
|
-
import type {
|
|
9
|
-
IModelConnection,
|
|
10
|
-
SelectionSet,
|
|
11
|
-
SelectionSetEvent,
|
|
12
|
-
} from "@itwin/core-frontend";
|
|
13
|
-
import { NoRenderApp } from "@itwin/core-frontend";
|
|
14
7
|
import {
|
|
15
8
|
render,
|
|
16
9
|
screen,
|
|
17
|
-
TestUtils,
|
|
18
10
|
} from "./test-utils";
|
|
19
|
-
import * as moq from "typemoq";
|
|
20
|
-
import type {
|
|
21
|
-
SelectionManager,
|
|
22
|
-
SelectionScopesManager,
|
|
23
|
-
} from "@itwin/presentation-frontend";
|
|
24
|
-
import {
|
|
25
|
-
Presentation,
|
|
26
|
-
SelectionChangeEvent,
|
|
27
|
-
} from "@itwin/presentation-frontend";
|
|
28
|
-
import type { BeEvent } from "@itwin/core-bentley";
|
|
29
11
|
import DeleteModal from "../widget/components/DeleteModal";
|
|
30
12
|
import { ReportsConfigWidget } from "../ReportsConfigWidget";
|
|
31
13
|
import { EmptyLocalization } from "@itwin/core-common";
|
|
32
14
|
|
|
33
|
-
const mockITwinId = faker.datatype.uuid();
|
|
34
|
-
const mockIModelId1 = faker.datatype.uuid();
|
|
35
|
-
|
|
36
|
-
const connectionMock = moq.Mock.ofType<IModelConnection>();
|
|
37
|
-
const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
|
|
38
|
-
const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
|
|
39
|
-
|
|
40
15
|
beforeAll(async () => {
|
|
41
|
-
|
|
42
|
-
await
|
|
43
|
-
const selectionSet = moq.Mock.ofType<SelectionSet>();
|
|
44
|
-
const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
|
|
45
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
46
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
47
|
-
connectionMock
|
|
48
|
-
.setup((x) => x.selectionSet)
|
|
49
|
-
.returns(() => selectionSet.object);
|
|
50
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
|
|
51
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
52
|
-
|
|
53
|
-
selectionManagerMock
|
|
54
|
-
.setup((x) => x.selectionChange)
|
|
55
|
-
.returns(() => new SelectionChangeEvent());
|
|
56
|
-
|
|
57
|
-
selectionScopesManagerMock
|
|
58
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
59
|
-
.returns(async () => []);
|
|
60
|
-
selectionManagerMock
|
|
61
|
-
.setup((x) => x.scopes)
|
|
62
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
63
|
-
|
|
64
|
-
Presentation.setSelectionManager(selectionManagerMock.object);
|
|
65
|
-
await TestUtils.initializeUiFramework(connectionMock.object);
|
|
66
|
-
await ReportsConfigWidget.initialize();
|
|
16
|
+
const localization = new EmptyLocalization();
|
|
17
|
+
await ReportsConfigWidget.initialize(localization);
|
|
67
18
|
});
|
|
68
19
|
|
|
69
20
|
describe("Delete modal", () => {
|
|
@@ -71,10 +22,9 @@ describe("Delete modal", () => {
|
|
|
71
22
|
const { container } = render(
|
|
72
23
|
<DeleteModal
|
|
73
24
|
entityName="test"
|
|
74
|
-
show={true}
|
|
75
|
-
setShow={jest.fn()}
|
|
76
25
|
onDelete={jest.fn()}
|
|
77
26
|
refresh={jest.fn()}
|
|
27
|
+
onClose={jest.fn()}
|
|
78
28
|
/>
|
|
79
29
|
);
|
|
80
30
|
expect(container).toBeTruthy();
|
|
@@ -85,10 +35,9 @@ describe("Delete modal", () => {
|
|
|
85
35
|
const { user } = render(
|
|
86
36
|
<DeleteModal
|
|
87
37
|
entityName="test"
|
|
88
|
-
show={true}
|
|
89
|
-
setShow={jest.fn()}
|
|
90
38
|
onDelete={onDelete}
|
|
91
39
|
refresh={jest.fn()}
|
|
40
|
+
onClose={jest.fn()}
|
|
92
41
|
/>
|
|
93
42
|
);
|
|
94
43
|
const deleteButton = screen.getByRole("button", {
|
|
@@ -97,22 +46,4 @@ describe("Delete modal", () => {
|
|
|
97
46
|
await user.click(deleteButton);
|
|
98
47
|
expect(onDelete).toHaveBeenCalled();
|
|
99
48
|
});
|
|
100
|
-
|
|
101
|
-
it("should call setShow when cancel button is clicked", async () => {
|
|
102
|
-
const setShow = jest.fn();
|
|
103
|
-
const { user } = render(
|
|
104
|
-
<DeleteModal
|
|
105
|
-
entityName="test"
|
|
106
|
-
show={true}
|
|
107
|
-
setShow={setShow}
|
|
108
|
-
onDelete={jest.fn()}
|
|
109
|
-
refresh={jest.fn()}
|
|
110
|
-
/>
|
|
111
|
-
);
|
|
112
|
-
const cancelButton = screen.getByRole("button", {
|
|
113
|
-
name: /cancel/i,
|
|
114
|
-
});
|
|
115
|
-
await user.click(cancelButton);
|
|
116
|
-
expect(setShow).toHaveBeenCalled();
|
|
117
|
-
});
|
|
118
49
|
});
|
|
@@ -5,97 +5,28 @@
|
|
|
5
5
|
import React from "react";
|
|
6
6
|
import faker from "@faker-js/faker";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
|
-
import type {
|
|
9
|
-
IModelConnection,
|
|
10
|
-
SelectionSet,
|
|
11
|
-
SelectionSetEvent,
|
|
12
|
-
} from "@itwin/core-frontend";
|
|
13
|
-
import { NoRenderApp } from "@itwin/core-frontend";
|
|
14
8
|
import { ReportsConfigWidget } from "../ReportsConfigWidget";
|
|
15
|
-
import { setupServer } from "msw/node";
|
|
16
9
|
import {
|
|
17
10
|
render,
|
|
18
11
|
screen,
|
|
19
|
-
TestUtils,
|
|
20
12
|
waitForElementToBeRemoved,
|
|
21
13
|
} from "./test-utils";
|
|
22
|
-
import ReportAction from "../widget/components/ReportAction";
|
|
14
|
+
import { ReportAction } from "../widget/components/ReportAction";
|
|
23
15
|
import userEvent from "@testing-library/user-event";
|
|
24
|
-
import { rest } from "msw";
|
|
25
|
-
import type { Report } from "@itwin/insights-client";
|
|
26
|
-
import * as moq from "typemoq";
|
|
27
|
-
import { REPORTS_CONFIG_BASE_URL } from "../widget/ReportsConfigUiProvider";
|
|
28
|
-
import type {
|
|
29
|
-
SelectionManager,
|
|
30
|
-
SelectionScopesManager,
|
|
31
|
-
} from "@itwin/presentation-frontend";
|
|
32
|
-
import {
|
|
33
|
-
Presentation,
|
|
34
|
-
SelectionChangeEvent,
|
|
35
|
-
} from "@itwin/presentation-frontend";
|
|
36
|
-
import type { BeEvent } from "@itwin/core-bentley";
|
|
37
16
|
import { EmptyLocalization } from "@itwin/core-common";
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const mockIModelId = faker.datatype.uuid();
|
|
41
|
-
|
|
42
|
-
const connectionMock = moq.Mock.ofType<IModelConnection>();
|
|
43
|
-
const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
|
|
44
|
-
const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
|
|
45
|
-
|
|
46
|
-
jest.mock("../widget/components/ReportMappings", () => ({
|
|
47
|
-
ReportMappings: () => "MockReportMappings",
|
|
48
|
-
}));
|
|
49
|
-
|
|
50
|
-
jest.mock("@itwin/appui-react", () => ({
|
|
51
|
-
...jest.requireActual("@itwin/appui-react"),
|
|
52
|
-
useActiveIModelConnection: () => connectionMock.object,
|
|
53
|
-
}));
|
|
54
|
-
|
|
55
|
-
const server = setupServer();
|
|
17
|
+
import type { Report } from "@itwin/insights-client";
|
|
18
|
+
import { ReportsClient } from "@itwin/insights-client";
|
|
56
19
|
|
|
57
20
|
beforeAll(async () => {
|
|
58
|
-
|
|
59
|
-
await
|
|
60
|
-
const selectionSet = moq.Mock.ofType<SelectionSet>();
|
|
61
|
-
const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
|
|
62
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
63
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
64
|
-
connectionMock
|
|
65
|
-
.setup((x) => x.selectionSet)
|
|
66
|
-
.returns(() => selectionSet.object);
|
|
67
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);
|
|
68
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
69
|
-
|
|
70
|
-
selectionManagerMock
|
|
71
|
-
.setup((x) => x.selectionChange)
|
|
72
|
-
.returns(() => new SelectionChangeEvent());
|
|
73
|
-
|
|
74
|
-
selectionScopesManagerMock
|
|
75
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
76
|
-
.returns(async () => []);
|
|
77
|
-
selectionManagerMock
|
|
78
|
-
.setup((x) => x.scopes)
|
|
79
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
80
|
-
|
|
81
|
-
Presentation.setSelectionManager(selectionManagerMock.object);
|
|
82
|
-
await TestUtils.initializeUiFramework(connectionMock.object);
|
|
83
|
-
await ReportsConfigWidget.initialize();
|
|
84
|
-
server.listen();
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
afterAll(() => {
|
|
88
|
-
TestUtils.terminateUiFramework();
|
|
89
|
-
server.close();
|
|
21
|
+
const localization = new EmptyLocalization();
|
|
22
|
+
await ReportsConfigWidget.initialize(localization);
|
|
90
23
|
});
|
|
91
24
|
|
|
92
|
-
afterEach(() => server.resetHandlers());
|
|
93
|
-
|
|
94
25
|
describe("Reports Action", () => {
|
|
95
26
|
it("required fields should be filled out", async () => {
|
|
96
27
|
const mockReturnFn = jest.fn();
|
|
97
28
|
|
|
98
|
-
render(<ReportAction
|
|
29
|
+
render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);
|
|
99
30
|
|
|
100
31
|
const addButton = screen.getByRole("button", {
|
|
101
32
|
name: /add/i,
|
|
@@ -109,6 +40,7 @@ describe("Reports Action", () => {
|
|
|
109
40
|
});
|
|
110
41
|
|
|
111
42
|
it("should be able to add report", async () => {
|
|
43
|
+
const mockReturnFn = jest.fn();
|
|
112
44
|
const mockReport: Report = {
|
|
113
45
|
id: faker.datatype.uuid(),
|
|
114
46
|
displayName: "mOcKRePoRt1",
|
|
@@ -120,21 +52,16 @@ describe("Reports Action", () => {
|
|
|
120
52
|
},
|
|
121
53
|
},
|
|
122
54
|
};
|
|
123
|
-
server.use(
|
|
124
|
-
rest.post(
|
|
125
|
-
`${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,
|
|
126
|
-
async (_req, res, ctx) => {
|
|
127
|
-
return res(ctx.delay(400), ctx.status(200), ctx.json(mockReport));
|
|
128
|
-
}
|
|
129
|
-
)
|
|
130
|
-
);
|
|
131
55
|
|
|
132
|
-
const
|
|
56
|
+
const reportsClient = new ReportsClient();
|
|
133
57
|
|
|
134
|
-
|
|
135
|
-
|
|
58
|
+
jest.spyOn(reportsClient, "createReport").mockImplementation(async () =>
|
|
59
|
+
new Promise((resolve) => setTimeout(() => { resolve(mockReport); }, 100))
|
|
136
60
|
);
|
|
137
61
|
|
|
62
|
+
const { user } = render(
|
|
63
|
+
<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });
|
|
64
|
+
|
|
138
65
|
const addButton = screen.getByRole("button", {
|
|
139
66
|
name: /add/i,
|
|
140
67
|
});
|
|
@@ -170,7 +97,7 @@ describe("Reports Action", () => {
|
|
|
170
97
|
const mockReturnFn = jest.fn();
|
|
171
98
|
|
|
172
99
|
const { user } = render(
|
|
173
|
-
<ReportAction
|
|
100
|
+
<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
|
|
174
101
|
);
|
|
175
102
|
|
|
176
103
|
const addButton = screen.getByRole("button", {
|
|
@@ -192,7 +119,7 @@ describe("Reports Action", () => {
|
|
|
192
119
|
const mockReturnFn = jest.fn();
|
|
193
120
|
|
|
194
121
|
const { user } = render(
|
|
195
|
-
<ReportAction
|
|
122
|
+
<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
|
|
196
123
|
);
|
|
197
124
|
|
|
198
125
|
const addButton = screen.getByRole("button", {
|
|
@@ -214,7 +141,7 @@ describe("Reports Action", () => {
|
|
|
214
141
|
const mockReturnFn = jest.fn();
|
|
215
142
|
|
|
216
143
|
const { user } = render(
|
|
217
|
-
<ReportAction
|
|
144
|
+
<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
|
|
218
145
|
);
|
|
219
146
|
|
|
220
147
|
const addButton = screen.getByRole("button", {
|
|
@@ -238,7 +165,7 @@ describe("Reports Action", () => {
|
|
|
238
165
|
const mockReturnFn = jest.fn();
|
|
239
166
|
|
|
240
167
|
const { user } = render(
|
|
241
|
-
<ReportAction
|
|
168
|
+
<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />
|
|
242
169
|
);
|
|
243
170
|
|
|
244
171
|
const addButton = screen.getByRole("button", {
|
|
@@ -5,18 +5,11 @@
|
|
|
5
5
|
import React from "react";
|
|
6
6
|
import faker from "@faker-js/faker";
|
|
7
7
|
import "@testing-library/jest-dom";
|
|
8
|
-
import type {
|
|
9
|
-
IModelConnection,
|
|
10
|
-
SelectionSet,
|
|
11
|
-
SelectionSetEvent,
|
|
12
|
-
} from "@itwin/core-frontend";
|
|
13
|
-
import { NoRenderApp } from "@itwin/core-frontend";
|
|
14
8
|
import { ReportsConfigWidget } from "../ReportsConfigWidget";
|
|
15
9
|
import {
|
|
16
10
|
fireEvent,
|
|
17
11
|
render,
|
|
18
12
|
screen,
|
|
19
|
-
TestUtils,
|
|
20
13
|
waitFor,
|
|
21
14
|
within,
|
|
22
15
|
} from "./test-utils";
|
|
@@ -28,19 +21,11 @@ import type {
|
|
|
28
21
|
import type { ReportMappingAndMapping } from "../widget/components/ReportMappings";
|
|
29
22
|
import type { GetSingleIModelParams, IModelOperations, OperationOptions } from "@itwin/imodels-client-management";
|
|
30
23
|
import { IModelState } from "@itwin/imodels-client-management";
|
|
31
|
-
import type {
|
|
32
|
-
SelectionManager,
|
|
33
|
-
SelectionScopesManager,
|
|
34
|
-
} from "@itwin/presentation-frontend";
|
|
35
|
-
import {
|
|
36
|
-
Presentation,
|
|
37
|
-
SelectionChangeEvent,
|
|
38
|
-
} from "@itwin/presentation-frontend";
|
|
39
24
|
import { BeEvent } from "@itwin/core-bentley";
|
|
40
|
-
import type BulkExtractor from "../widget/components/BulkExtractor";
|
|
41
25
|
import { ExtractionStates } from "../widget/components/ExtractionStatus";
|
|
42
26
|
import { ReportMappingHorizontalTile } from "../widget/components/ReportMappingHorizontalTile";
|
|
43
27
|
import { EmptyLocalization } from "@itwin/core-common";
|
|
28
|
+
import type { BulkExtractor } from "../widget/components/BulkExtractor";
|
|
44
29
|
|
|
45
30
|
const mockITwinId = faker.datatype.uuid();
|
|
46
31
|
// Lets work with two iModels for now.
|
|
@@ -202,54 +187,18 @@ const mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {
|
|
|
202
187
|
return reportMappingsAndMapping;
|
|
203
188
|
};
|
|
204
189
|
|
|
205
|
-
const connectionMock = moq.Mock.ofType<IModelConnection>();
|
|
206
190
|
const mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();
|
|
207
|
-
const selectionManagerMock = moq.Mock.ofType<SelectionManager>();
|
|
208
|
-
const selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();
|
|
209
191
|
const mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();
|
|
210
192
|
|
|
211
193
|
jest.mock("../widget/components/Constants.ts", () => ({
|
|
212
194
|
STATUS_CHECK_INTERVAL: 10,
|
|
213
195
|
}));
|
|
214
196
|
|
|
215
|
-
jest.mock("@itwin/appui-react", () => ({
|
|
216
|
-
...jest.requireActual("@itwin/appui-react"),
|
|
217
|
-
useActiveIModelConnection: () => connectionMock.object,
|
|
218
|
-
}));
|
|
219
|
-
|
|
220
197
|
const mockOdataFeedUrl = "mockOdataFeedUrl";
|
|
221
198
|
|
|
222
199
|
beforeAll(async () => {
|
|
223
|
-
|
|
224
|
-
await
|
|
225
|
-
const selectionSet = moq.Mock.ofType<SelectionSet>();
|
|
226
|
-
const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();
|
|
227
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
228
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
229
|
-
connectionMock
|
|
230
|
-
.setup((x) => x.selectionSet)
|
|
231
|
-
.returns(() => selectionSet.object);
|
|
232
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
|
|
233
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
234
|
-
|
|
235
|
-
selectionManagerMock
|
|
236
|
-
.setup((x) => x.selectionChange)
|
|
237
|
-
.returns(() => new SelectionChangeEvent());
|
|
238
|
-
|
|
239
|
-
selectionScopesManagerMock
|
|
240
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
241
|
-
.returns(async () => []);
|
|
242
|
-
selectionManagerMock
|
|
243
|
-
.setup((x) => x.scopes)
|
|
244
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
245
|
-
|
|
246
|
-
Presentation.setSelectionManager(selectionManagerMock.object);
|
|
247
|
-
await TestUtils.initializeUiFramework(connectionMock.object);
|
|
248
|
-
await ReportsConfigWidget.initialize();
|
|
249
|
-
});
|
|
250
|
-
|
|
251
|
-
afterAll(() => {
|
|
252
|
-
TestUtils.terminateUiFramework();
|
|
200
|
+
const localization = new EmptyLocalization();
|
|
201
|
+
await ReportsConfigWidget.initialize(localization);
|
|
253
202
|
});
|
|
254
203
|
|
|
255
204
|
afterEach(() => {
|