@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
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
4
|
};
|
|
@@ -27,67 +8,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
27
8
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
28
9
|
*--------------------------------------------------------------------------------------------*/
|
|
29
10
|
const react_1 = __importDefault(require("react"));
|
|
30
|
-
const faker_1 = __importDefault(require("@faker-js/faker"));
|
|
31
11
|
require("@testing-library/jest-dom");
|
|
32
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
33
12
|
const test_utils_1 = require("./test-utils");
|
|
34
|
-
const moq = __importStar(require("typemoq"));
|
|
35
|
-
const presentation_frontend_1 = require("@itwin/presentation-frontend");
|
|
36
13
|
const DeleteModal_1 = __importDefault(require("../widget/components/DeleteModal"));
|
|
37
14
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
38
15
|
const core_common_1 = require("@itwin/core-common");
|
|
39
|
-
const mockITwinId = faker_1.default.datatype.uuid();
|
|
40
|
-
const mockIModelId1 = faker_1.default.datatype.uuid();
|
|
41
|
-
const connectionMock = moq.Mock.ofType();
|
|
42
|
-
const selectionManagerMock = moq.Mock.ofType();
|
|
43
|
-
const selectionScopesManagerMock = moq.Mock.ofType();
|
|
44
16
|
beforeAll(async () => {
|
|
45
|
-
|
|
46
|
-
await
|
|
47
|
-
const selectionSet = moq.Mock.ofType();
|
|
48
|
-
const onChanged = moq.Mock.ofType();
|
|
49
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
50
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
51
|
-
connectionMock
|
|
52
|
-
.setup((x) => x.selectionSet)
|
|
53
|
-
.returns(() => selectionSet.object);
|
|
54
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
|
|
55
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
56
|
-
selectionManagerMock
|
|
57
|
-
.setup((x) => x.selectionChange)
|
|
58
|
-
.returns(() => new presentation_frontend_1.SelectionChangeEvent());
|
|
59
|
-
selectionScopesManagerMock
|
|
60
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
61
|
-
.returns(async () => []);
|
|
62
|
-
selectionManagerMock
|
|
63
|
-
.setup((x) => x.scopes)
|
|
64
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
65
|
-
presentation_frontend_1.Presentation.setSelectionManager(selectionManagerMock.object);
|
|
66
|
-
await test_utils_1.TestUtils.initializeUiFramework(connectionMock.object);
|
|
67
|
-
await ReportsConfigWidget_1.ReportsConfigWidget.initialize();
|
|
17
|
+
const localization = new core_common_1.EmptyLocalization();
|
|
18
|
+
await ReportsConfigWidget_1.ReportsConfigWidget.initialize(localization);
|
|
68
19
|
});
|
|
69
20
|
describe("Delete modal", () => {
|
|
70
21
|
it("should render", () => {
|
|
71
|
-
const { container } = test_utils_1.render(react_1.default.createElement(DeleteModal_1.default, { entityName: "test",
|
|
22
|
+
const { container } = (0, test_utils_1.render)(react_1.default.createElement(DeleteModal_1.default, { entityName: "test", onDelete: jest.fn(), refresh: jest.fn(), onClose: jest.fn() }));
|
|
72
23
|
expect(container).toBeTruthy();
|
|
73
24
|
});
|
|
74
25
|
it("should call onDelete when delete button is clicked", async () => {
|
|
75
26
|
const onDelete = jest.fn();
|
|
76
|
-
const { user } = test_utils_1.render(react_1.default.createElement(DeleteModal_1.default, { entityName: "test",
|
|
27
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(DeleteModal_1.default, { entityName: "test", onDelete: onDelete, refresh: jest.fn(), onClose: jest.fn() }));
|
|
77
28
|
const deleteButton = test_utils_1.screen.getByRole("button", {
|
|
78
29
|
name: /delete/i,
|
|
79
30
|
});
|
|
80
31
|
await user.click(deleteButton);
|
|
81
32
|
expect(onDelete).toHaveBeenCalled();
|
|
82
33
|
});
|
|
83
|
-
it("should call setShow when cancel button is clicked", async () => {
|
|
84
|
-
const setShow = jest.fn();
|
|
85
|
-
const { user } = test_utils_1.render(react_1.default.createElement(DeleteModal_1.default, { entityName: "test", show: true, setShow: setShow, onDelete: jest.fn(), refresh: jest.fn() }));
|
|
86
|
-
const cancelButton = test_utils_1.screen.getByRole("button", {
|
|
87
|
-
name: /cancel/i,
|
|
88
|
-
});
|
|
89
|
-
await user.click(cancelButton);
|
|
90
|
-
expect(setShow).toHaveBeenCalled();
|
|
91
|
-
});
|
|
92
34
|
});
|
|
93
35
|
//# sourceMappingURL=DeleteModal.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteModal.test.js","sourceRoot":"","sources":["../../../src/test/DeleteModal.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeleteModal.test.js","sourceRoot":"","sources":["../../../src/test/DeleteModal.test.tsx"],"names":[],"mappings":";;;;;AAAA;;;+FAG+F;AAC/F,kDAA0B;AAC1B,qCAAmC;AACnC,6CAGsB;AACtB,mFAA2D;AAC3D,gEAA6D;AAC7D,oDAAuD;AAEvD,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,MAAM,YAAY,GAAG,IAAI,+BAAiB,EAAE,CAAC;IAC7C,MAAM,yCAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,mBAAM,EAC1B,8BAAC,qBAAW,IACV,UAAU,EAAC,MAAM,EACjB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EACnB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,EAClB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,GAClB,CACH,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAM,EACrB,8BAAC,qBAAW,IACV,UAAU,EAAC,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,EAClB,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,GAClB,CACH,CAAC;QACF,MAAM,YAAY,GAAG,mBAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC9C,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport \"@testing-library/jest-dom\";\nimport {\n render,\n screen,\n} from \"./test-utils\";\nimport DeleteModal from \"../widget/components/DeleteModal\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\n\nbeforeAll(async () => {\n const localization = new EmptyLocalization();\n await ReportsConfigWidget.initialize(localization);\n});\n\ndescribe(\"Delete modal\", () => {\n it(\"should render\", () => {\n const { container } = render(\n <DeleteModal\n entityName=\"test\"\n onDelete={jest.fn()}\n refresh={jest.fn()}\n onClose={jest.fn()}\n />\n );\n expect(container).toBeTruthy();\n });\n\n it(\"should call onDelete when delete button is clicked\", async () => {\n const onDelete = jest.fn();\n const { user } = render(\n <DeleteModal\n entityName=\"test\"\n onDelete={onDelete}\n refresh={jest.fn()}\n onClose={jest.fn()}\n />\n );\n const deleteButton = screen.getByRole(\"button\", {\n name: /delete/i,\n });\n await user.click(deleteButton);\n expect(onDelete).toHaveBeenCalled();\n });\n});\n"]}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
4
|
};
|
|
@@ -29,65 +10,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
10
|
const react_1 = __importDefault(require("react"));
|
|
30
11
|
const faker_1 = __importDefault(require("@faker-js/faker"));
|
|
31
12
|
require("@testing-library/jest-dom");
|
|
32
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
33
13
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
34
|
-
const node_1 = require("msw/node");
|
|
35
14
|
const test_utils_1 = require("./test-utils");
|
|
36
|
-
const ReportAction_1 =
|
|
15
|
+
const ReportAction_1 = require("../widget/components/ReportAction");
|
|
37
16
|
const user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
38
|
-
const msw_1 = require("msw");
|
|
39
|
-
const moq = __importStar(require("typemoq"));
|
|
40
|
-
const ReportsConfigUiProvider_1 = require("../widget/ReportsConfigUiProvider");
|
|
41
|
-
const presentation_frontend_1 = require("@itwin/presentation-frontend");
|
|
42
17
|
const core_common_1 = require("@itwin/core-common");
|
|
43
|
-
const
|
|
44
|
-
const mockIModelId = faker_1.default.datatype.uuid();
|
|
45
|
-
const connectionMock = moq.Mock.ofType();
|
|
46
|
-
const selectionManagerMock = moq.Mock.ofType();
|
|
47
|
-
const selectionScopesManagerMock = moq.Mock.ofType();
|
|
48
|
-
jest.mock("../widget/components/ReportMappings", () => ({
|
|
49
|
-
ReportMappings: () => "MockReportMappings",
|
|
50
|
-
}));
|
|
51
|
-
jest.mock("@itwin/appui-react", () => ({
|
|
52
|
-
...jest.requireActual("@itwin/appui-react"),
|
|
53
|
-
useActiveIModelConnection: () => connectionMock.object,
|
|
54
|
-
}));
|
|
55
|
-
const server = node_1.setupServer();
|
|
18
|
+
const insights_client_1 = require("@itwin/insights-client");
|
|
56
19
|
beforeAll(async () => {
|
|
57
|
-
|
|
58
|
-
await
|
|
59
|
-
const selectionSet = moq.Mock.ofType();
|
|
60
|
-
const onChanged = moq.Mock.ofType();
|
|
61
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
62
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
63
|
-
connectionMock
|
|
64
|
-
.setup((x) => x.selectionSet)
|
|
65
|
-
.returns(() => selectionSet.object);
|
|
66
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);
|
|
67
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
68
|
-
selectionManagerMock
|
|
69
|
-
.setup((x) => x.selectionChange)
|
|
70
|
-
.returns(() => new presentation_frontend_1.SelectionChangeEvent());
|
|
71
|
-
selectionScopesManagerMock
|
|
72
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
73
|
-
.returns(async () => []);
|
|
74
|
-
selectionManagerMock
|
|
75
|
-
.setup((x) => x.scopes)
|
|
76
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
77
|
-
presentation_frontend_1.Presentation.setSelectionManager(selectionManagerMock.object);
|
|
78
|
-
await test_utils_1.TestUtils.initializeUiFramework(connectionMock.object);
|
|
79
|
-
await ReportsConfigWidget_1.ReportsConfigWidget.initialize();
|
|
80
|
-
server.listen();
|
|
81
|
-
});
|
|
82
|
-
afterAll(() => {
|
|
83
|
-
test_utils_1.TestUtils.terminateUiFramework();
|
|
84
|
-
server.close();
|
|
20
|
+
const localization = new core_common_1.EmptyLocalization();
|
|
21
|
+
await ReportsConfigWidget_1.ReportsConfigWidget.initialize(localization);
|
|
85
22
|
});
|
|
86
|
-
afterEach(() => server.resetHandlers());
|
|
87
23
|
describe("Reports Action", () => {
|
|
88
24
|
it("required fields should be filled out", async () => {
|
|
89
25
|
const mockReturnFn = jest.fn();
|
|
90
|
-
test_utils_1.render(react_1.default.createElement(ReportAction_1.
|
|
26
|
+
(0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }));
|
|
91
27
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
92
28
|
name: /add/i,
|
|
93
29
|
});
|
|
@@ -98,6 +34,7 @@ describe("Reports Action", () => {
|
|
|
98
34
|
expect(addButton).toBeDisabled();
|
|
99
35
|
});
|
|
100
36
|
it("should be able to add report", async () => {
|
|
37
|
+
const mockReturnFn = jest.fn();
|
|
101
38
|
const mockReport = {
|
|
102
39
|
id: faker_1.default.datatype.uuid(),
|
|
103
40
|
displayName: "mOcKRePoRt1",
|
|
@@ -109,11 +46,9 @@ describe("Reports Action", () => {
|
|
|
109
46
|
},
|
|
110
47
|
},
|
|
111
48
|
};
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}));
|
|
115
|
-
const mockReturnFn = jest.fn();
|
|
116
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportAction_1.default, { iTwinId: mockITwinId, returnFn: mockReturnFn }));
|
|
49
|
+
const reportsClient = new insights_client_1.ReportsClient();
|
|
50
|
+
jest.spyOn(reportsClient, "createReport").mockImplementation(async () => new Promise((resolve) => setTimeout(() => { resolve(mockReport); }, 100)));
|
|
51
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }), { reportsClient });
|
|
117
52
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
118
53
|
name: /add/i,
|
|
119
54
|
});
|
|
@@ -134,12 +69,12 @@ describe("Reports Action", () => {
|
|
|
134
69
|
expect(addButton).toBeDisabled();
|
|
135
70
|
expect(cancelButton).toBeDisabled();
|
|
136
71
|
expect(nameInput).toBeDisabled();
|
|
137
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByTestId(/loading\-spinner/i));
|
|
72
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByTestId(/loading\-spinner/i));
|
|
138
73
|
expect(mockReturnFn).toHaveBeenCalledTimes(1);
|
|
139
74
|
});
|
|
140
75
|
it("No duplicate underscores in the beginning of name", async () => {
|
|
141
76
|
const mockReturnFn = jest.fn();
|
|
142
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportAction_1.
|
|
77
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }));
|
|
143
78
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
144
79
|
name: /add/i,
|
|
145
80
|
});
|
|
@@ -152,7 +87,7 @@ describe("Reports Action", () => {
|
|
|
152
87
|
});
|
|
153
88
|
it("Only begin with letters or underscores of name", async () => {
|
|
154
89
|
const mockReturnFn = jest.fn();
|
|
155
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportAction_1.
|
|
90
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }));
|
|
156
91
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
157
92
|
name: /add/i,
|
|
158
93
|
});
|
|
@@ -165,7 +100,7 @@ describe("Reports Action", () => {
|
|
|
165
100
|
});
|
|
166
101
|
it("Only letters underscores and digits of name", async () => {
|
|
167
102
|
const mockReturnFn = jest.fn();
|
|
168
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportAction_1.
|
|
103
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }));
|
|
169
104
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
170
105
|
name: /add/i,
|
|
171
106
|
});
|
|
@@ -178,7 +113,7 @@ describe("Reports Action", () => {
|
|
|
178
113
|
});
|
|
179
114
|
it("check for character limits of name", async () => {
|
|
180
115
|
const mockReturnFn = jest.fn();
|
|
181
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportAction_1.
|
|
116
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportAction_1.ReportAction, { onClickCancel: jest.fn(), onSaveSuccess: mockReturnFn }));
|
|
182
117
|
const addButton = test_utils_1.screen.getByRole("button", {
|
|
183
118
|
name: /add/i,
|
|
184
119
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportAction.test.js","sourceRoot":"","sources":["../../../src/test/ReportAction.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport faker from \"@faker-js/faker\";\nimport \"@testing-library/jest-dom\";\nimport type {\n IModelConnection,\n SelectionSet,\n SelectionSetEvent,\n} from \"@itwin/core-frontend\";\nimport { NoRenderApp } from \"@itwin/core-frontend\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport { setupServer } from \"msw/node\";\nimport {\n render,\n screen,\n TestUtils,\n waitForElementToBeRemoved,\n} from \"./test-utils\";\nimport ReportAction from \"../widget/components/ReportAction\";\nimport userEvent from \"@testing-library/user-event\";\nimport { rest } from \"msw\";\nimport type { Report } from \"@itwin/insights-client\";\nimport * as moq from \"typemoq\";\nimport { REPORTS_CONFIG_BASE_URL } from \"../widget/ReportsConfigUiProvider\";\nimport type {\n SelectionManager,\n SelectionScopesManager,\n} from \"@itwin/presentation-frontend\";\nimport {\n Presentation,\n SelectionChangeEvent,\n} from \"@itwin/presentation-frontend\";\nimport type { BeEvent } from \"@itwin/core-bentley\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\n\nconst mockITwinId = faker.datatype.uuid();\nconst mockIModelId = faker.datatype.uuid();\n\nconst connectionMock = moq.Mock.ofType<IModelConnection>();\nconst selectionManagerMock = moq.Mock.ofType<SelectionManager>();\nconst selectionScopesManagerMock = moq.Mock.ofType<SelectionScopesManager>();\n\njest.mock(\"../widget/components/ReportMappings\", () => ({\n ReportMappings: () => \"MockReportMappings\",\n}));\n\njest.mock(\"@itwin/appui-react\", () => ({\n ...jest.requireActual(\"@itwin/appui-react\"),\n useActiveIModelConnection: () => connectionMock.object,\n}));\n\nconst server = setupServer();\n\nbeforeAll(async () => {\n await NoRenderApp.startup({localization: new EmptyLocalization()});\n await Presentation.initialize();\n const selectionSet = moq.Mock.ofType<SelectionSet>();\n const onChanged = moq.Mock.ofType<BeEvent<(ev: SelectionSetEvent) => void>>();\n selectionSet.setup((x) => x.elements).returns(() => new Set([]));\n selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);\n connectionMock\n .setup((x) => x.selectionSet)\n .returns(() => selectionSet.object);\n connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId);\n connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);\n\n selectionManagerMock\n .setup((x) => x.selectionChange)\n .returns(() => new SelectionChangeEvent());\n\n selectionScopesManagerMock\n .setup(async (x) => x.getSelectionScopes(connectionMock.object))\n .returns(async () => []);\n selectionManagerMock\n .setup((x) => x.scopes)\n .returns(() => selectionScopesManagerMock.object);\n\n Presentation.setSelectionManager(selectionManagerMock.object);\n await TestUtils.initializeUiFramework(connectionMock.object);\n await ReportsConfigWidget.initialize();\n server.listen();\n});\n\nafterAll(() => {\n TestUtils.terminateUiFramework();\n server.close();\n});\n\nafterEach(() => server.resetHandlers());\n\ndescribe(\"Reports Action\", () => {\n it(\"required fields should be filled out\", async () => {\n const mockReturnFn = jest.fn();\n\n render(<ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />);\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n const cancelButton = screen.getByRole(\"button\", {\n name: /cancel/i,\n });\n\n expect(cancelButton).toBeEnabled();\n expect(addButton).toBeDisabled();\n });\n\n it(\"should be able to add report\", async () => {\n const mockReport: Report = {\n id: faker.datatype.uuid(),\n displayName: \"mOcKRePoRt1\",\n description: \"\",\n deleted: false,\n _links: {\n project: {\n href: \"\",\n },\n },\n };\n server.use(\n rest.post(\n `${REPORTS_CONFIG_BASE_URL}/insights/reporting/reports`,\n async (_req, res, ctx) => {\n return res(ctx.delay(400), ctx.status(200), ctx.json(mockReport));\n }\n )\n );\n\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n const cancelButton = screen.getByRole(\"button\", {\n name: /cancel/i,\n });\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n const descriptionInput = screen.getByRole(\"textbox\", {\n name: /description/i,\n });\n\n await userEvent.type(nameInput, \"mOcKTeXt\");\n await userEvent.type(descriptionInput, \"moCk DeScRiPtIoN\");\n expect(cancelButton).toBeEnabled();\n expect(addButton).toBeEnabled();\n\n await user.click(addButton);\n\n expect(addButton).toBeDisabled();\n expect(cancelButton).toBeDisabled();\n expect(nameInput).toBeDisabled();\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/loading\\-spinner/i)\n );\n\n expect(mockReturnFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"No duplicate underscores in the beginning of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"__testName\");\n await user.click(addButton);\n expect(\n screen.getByText(/validators\\.noduplicateunderscore/i)\n ).toBeInTheDocument();\n });\n\n it(\"Only begin with letters or underscores of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"$testName\");\n await user.click(addButton);\n expect(\n screen.getByText(/validators\\.onlybeginswithletterorunderscore/i)\n ).toBeInTheDocument();\n });\n\n it(\"Only letters underscores and digits of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"_# \");\n await user.click(addButton);\n expect(\n screen.getByText(\n /validators\\.FollowedByLettersUnderscoresSpacesAndDigits/i\n )\n ).toBeInTheDocument();\n });\n\n it(\"check for character limits of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction iTwinId={mockITwinId} returnFn={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, faker.random.alpha(200));\n await user.click(addButton);\n expect(screen.getByText(/validators\\.charlimit/i)).toBeInTheDocument();\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ReportAction.test.js","sourceRoot":"","sources":["../../../src/test/ReportAction.test.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport React from \"react\";\nimport faker from \"@faker-js/faker\";\nimport \"@testing-library/jest-dom\";\nimport { ReportsConfigWidget } from \"../ReportsConfigWidget\";\nimport {\n render,\n screen,\n waitForElementToBeRemoved,\n} from \"./test-utils\";\nimport { ReportAction } from \"../widget/components/ReportAction\";\nimport userEvent from \"@testing-library/user-event\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\nimport type { Report } from \"@itwin/insights-client\";\nimport { ReportsClient } from \"@itwin/insights-client\";\n\nbeforeAll(async () => {\n const localization = new EmptyLocalization();\n await ReportsConfigWidget.initialize(localization);\n});\n\ndescribe(\"Reports Action\", () => {\n it(\"required fields should be filled out\", async () => {\n const mockReturnFn = jest.fn();\n\n render(<ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />);\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n const cancelButton = screen.getByRole(\"button\", {\n name: /cancel/i,\n });\n\n expect(cancelButton).toBeEnabled();\n expect(addButton).toBeDisabled();\n });\n\n it(\"should be able to add report\", async () => {\n const mockReturnFn = jest.fn();\n const mockReport: Report = {\n id: faker.datatype.uuid(),\n displayName: \"mOcKRePoRt1\",\n description: \"\",\n deleted: false,\n _links: {\n project: {\n href: \"\",\n },\n },\n };\n\n const reportsClient = new ReportsClient();\n\n jest.spyOn(reportsClient, \"createReport\").mockImplementation(async () =>\n new Promise((resolve) => setTimeout(() => { resolve(mockReport); }, 100))\n );\n\n const { user } = render(\n <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />, { reportsClient });\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n const cancelButton = screen.getByRole(\"button\", {\n name: /cancel/i,\n });\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n const descriptionInput = screen.getByRole(\"textbox\", {\n name: /description/i,\n });\n\n await userEvent.type(nameInput, \"mOcKTeXt\");\n await userEvent.type(descriptionInput, \"moCk DeScRiPtIoN\");\n expect(cancelButton).toBeEnabled();\n expect(addButton).toBeEnabled();\n\n await user.click(addButton);\n\n expect(addButton).toBeDisabled();\n expect(cancelButton).toBeDisabled();\n expect(nameInput).toBeDisabled();\n\n await waitForElementToBeRemoved(() =>\n screen.getByTestId(/loading\\-spinner/i)\n );\n\n expect(mockReturnFn).toHaveBeenCalledTimes(1);\n });\n\n it(\"No duplicate underscores in the beginning of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"__testName\");\n await user.click(addButton);\n expect(\n screen.getByText(/validators\\.noduplicateunderscore/i)\n ).toBeInTheDocument();\n });\n\n it(\"Only begin with letters or underscores of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"$testName\");\n await user.click(addButton);\n expect(\n screen.getByText(/validators\\.onlybeginswithletterorunderscore/i)\n ).toBeInTheDocument();\n });\n\n it(\"Only letters underscores and digits of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, \"_# \");\n await user.click(addButton);\n expect(\n screen.getByText(\n /validators\\.FollowedByLettersUnderscoresSpacesAndDigits/i\n )\n ).toBeInTheDocument();\n });\n\n it(\"check for character limits of name\", async () => {\n const mockReturnFn = jest.fn();\n\n const { user } = render(\n <ReportAction onClickCancel={jest.fn()} onSaveSuccess={mockReturnFn} />\n );\n\n const addButton = screen.getByRole(\"button\", {\n name: /add/i,\n });\n\n const nameInput = screen.getByRole(\"textbox\", {\n name: /name/i,\n });\n\n await userEvent.type(nameInput, faker.random.alpha(200));\n await user.click(addButton);\n expect(screen.getByText(/validators\\.charlimit/i)).toBeInTheDocument();\n });\n});\n"]}
|
|
@@ -29,12 +29,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
const react_1 = __importDefault(require("react"));
|
|
30
30
|
const faker_1 = __importDefault(require("@faker-js/faker"));
|
|
31
31
|
require("@testing-library/jest-dom");
|
|
32
|
-
const core_frontend_1 = require("@itwin/core-frontend");
|
|
33
32
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
34
33
|
const test_utils_1 = require("./test-utils");
|
|
35
34
|
const moq = __importStar(require("typemoq"));
|
|
36
35
|
const imodels_client_management_1 = require("@itwin/imodels-client-management");
|
|
37
|
-
const presentation_frontend_1 = require("@itwin/presentation-frontend");
|
|
38
36
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
39
37
|
const ExtractionStatus_1 = require("../widget/components/ExtractionStatus");
|
|
40
38
|
const ReportMappingHorizontalTile_1 = require("../widget/components/ReportMappingHorizontalTile");
|
|
@@ -174,59 +172,27 @@ const mockReportMappingsAndMappingsFactory = () => {
|
|
|
174
172
|
const reportMappings = mockReportMappingsFactory();
|
|
175
173
|
const mockMappings = mockMappingsFactory(reportMappings);
|
|
176
174
|
const reportMappingsAndMapping = reportMappings.mappings.map((reportMapping) => {
|
|
177
|
-
var _a;
|
|
178
175
|
const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId).mapping;
|
|
179
176
|
const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId).displayName;
|
|
180
177
|
const reportMappingAndMapping = {
|
|
181
178
|
...reportMapping,
|
|
182
179
|
iModelName,
|
|
183
180
|
mappingName: mapping.mappingName,
|
|
184
|
-
mappingDescription:
|
|
181
|
+
mappingDescription: mapping.description ?? "",
|
|
185
182
|
};
|
|
186
183
|
return reportMappingAndMapping;
|
|
187
184
|
});
|
|
188
185
|
return reportMappingsAndMapping;
|
|
189
186
|
};
|
|
190
|
-
const connectionMock = moq.Mock.ofType();
|
|
191
187
|
const mockBulkExtractor = moq.Mock.ofType();
|
|
192
|
-
const selectionManagerMock = moq.Mock.ofType();
|
|
193
|
-
const selectionScopesManagerMock = moq.Mock.ofType();
|
|
194
188
|
const mockIModelsClient = moq.Mock.ofType();
|
|
195
189
|
jest.mock("../widget/components/Constants.ts", () => ({
|
|
196
190
|
STATUS_CHECK_INTERVAL: 10,
|
|
197
191
|
}));
|
|
198
|
-
jest.mock("@itwin/appui-react", () => ({
|
|
199
|
-
...jest.requireActual("@itwin/appui-react"),
|
|
200
|
-
useActiveIModelConnection: () => connectionMock.object,
|
|
201
|
-
}));
|
|
202
192
|
const mockOdataFeedUrl = "mockOdataFeedUrl";
|
|
203
193
|
beforeAll(async () => {
|
|
204
|
-
|
|
205
|
-
await
|
|
206
|
-
const selectionSet = moq.Mock.ofType();
|
|
207
|
-
const onChanged = moq.Mock.ofType();
|
|
208
|
-
selectionSet.setup((x) => x.elements).returns(() => new Set([]));
|
|
209
|
-
selectionSet.setup((x) => x.onChanged).returns(() => onChanged.object);
|
|
210
|
-
connectionMock
|
|
211
|
-
.setup((x) => x.selectionSet)
|
|
212
|
-
.returns(() => selectionSet.object);
|
|
213
|
-
connectionMock.setup((x) => x.iModelId).returns(() => mockIModelId1);
|
|
214
|
-
connectionMock.setup((x) => x.iTwinId).returns(() => mockITwinId);
|
|
215
|
-
selectionManagerMock
|
|
216
|
-
.setup((x) => x.selectionChange)
|
|
217
|
-
.returns(() => new presentation_frontend_1.SelectionChangeEvent());
|
|
218
|
-
selectionScopesManagerMock
|
|
219
|
-
.setup(async (x) => x.getSelectionScopes(connectionMock.object))
|
|
220
|
-
.returns(async () => []);
|
|
221
|
-
selectionManagerMock
|
|
222
|
-
.setup((x) => x.scopes)
|
|
223
|
-
.returns(() => selectionScopesManagerMock.object);
|
|
224
|
-
presentation_frontend_1.Presentation.setSelectionManager(selectionManagerMock.object);
|
|
225
|
-
await test_utils_1.TestUtils.initializeUiFramework(connectionMock.object);
|
|
226
|
-
await ReportsConfigWidget_1.ReportsConfigWidget.initialize();
|
|
227
|
-
});
|
|
228
|
-
afterAll(() => {
|
|
229
|
-
test_utils_1.TestUtils.terminateUiFramework();
|
|
194
|
+
const localization = new core_common_1.EmptyLocalization();
|
|
195
|
+
await ReportsConfigWidget_1.ReportsConfigWidget.initialize(localization);
|
|
230
196
|
});
|
|
231
197
|
afterEach(() => {
|
|
232
198
|
mockIModelsClient.reset();
|
|
@@ -237,9 +203,9 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
237
203
|
const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
|
|
238
204
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
239
205
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
240
|
-
test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: new core_bentley_1.BeEvent(), mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
206
|
+
(0, test_utils_1.render)(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: new core_bentley_1.BeEvent(), mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
241
207
|
mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
|
|
242
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
208
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
243
209
|
expect(test_utils_1.screen.getByText(firstMockMapping.mappingName)).toBeInTheDocument();
|
|
244
210
|
expect(test_utils_1.screen.getByTitle(firstMockMapping.mappingDescription)).toBeInTheDocument();
|
|
245
211
|
expect(test_utils_1.screen.getByText(firstMockMapping.iModelName)).toBeInTheDocument();
|
|
@@ -253,9 +219,9 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
253
219
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
254
220
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
255
221
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
256
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
222
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
257
223
|
mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
|
|
258
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
224
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
259
225
|
const startExtractionButton = test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i });
|
|
260
226
|
await user.click(startExtractionButton);
|
|
261
227
|
mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());
|
|
@@ -268,8 +234,8 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
268
234
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
269
235
|
const mockOnClickDelete = jest.fn();
|
|
270
236
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
271
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
272
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
237
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
238
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
273
239
|
const removeButton = test_utils_1.screen.getByRole("button", { name: /Remove/i });
|
|
274
240
|
await user.click(removeButton);
|
|
275
241
|
expect(mockOnClickDelete).toBeCalledTimes(1);
|
|
@@ -284,8 +250,8 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
284
250
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
285
251
|
const mockOnClickDelete = jest.fn();
|
|
286
252
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
287
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
288
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
253
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
254
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
289
255
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
290
256
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Starting);
|
|
291
257
|
const startExtractionButton = test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i });
|
|
@@ -295,18 +261,18 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
295
261
|
mockBulkExtractor.reset();
|
|
296
262
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
297
263
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Queued);
|
|
298
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
264
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
299
265
|
mockBulkExtractor.reset();
|
|
300
266
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
301
267
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Running);
|
|
302
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
268
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
303
269
|
mockBulkExtractor.reset();
|
|
304
270
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
305
271
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Succeeded);
|
|
306
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
272
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
307
273
|
mockBulkExtractor.reset();
|
|
308
274
|
test_utils_1.fireEvent.animationEnd(test_utils_1.screen.getByTestId("rcw-success-animation"));
|
|
309
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });
|
|
275
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });
|
|
310
276
|
});
|
|
311
277
|
it("second tile should update status", async () => {
|
|
312
278
|
const mockReportMappingsAndMappings = mockReportMappingsAndMappingsFactory();
|
|
@@ -315,13 +281,13 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
315
281
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
316
282
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
317
283
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
318
|
-
const { user } = test_utils_1.render(react_1.default.createElement("div", null,
|
|
284
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement("div", null,
|
|
319
285
|
react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }),
|
|
320
286
|
react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: secondMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl })));
|
|
321
287
|
const tiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
322
288
|
for (const tile of tiles) {
|
|
323
|
-
const preview = test_utils_1.within(tile);
|
|
324
|
-
await test_utils_1.waitFor(() => expect(preview.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
289
|
+
const preview = (0, test_utils_1.within)(tile);
|
|
290
|
+
await (0, test_utils_1.waitFor)(() => expect(preview.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
325
291
|
}
|
|
326
292
|
mockBulkExtractor.reset();
|
|
327
293
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
@@ -331,8 +297,8 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
331
297
|
const startExtractionButton = test_utils_1.screen.getAllByRole("button", { name: /UpdateDataset/i })[0];
|
|
332
298
|
await user.click(startExtractionButton);
|
|
333
299
|
for (const tile of tiles) {
|
|
334
|
-
const preview = test_utils_1.within(tile);
|
|
335
|
-
await test_utils_1.waitFor(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
300
|
+
const preview = (0, test_utils_1.within)(tile);
|
|
301
|
+
await (0, test_utils_1.waitFor)(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
336
302
|
}
|
|
337
303
|
expect(test_utils_1.screen.getAllByTitle(/Queued/i)).toHaveLength(2);
|
|
338
304
|
});
|