@itwin/reports-config-widget-react 0.3.0 → 0.5.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/CHANGELOG.json +41 -0
- package/CHANGELOG.md +25 -2
- package/coverage/clover.xml +867 -0
- package/coverage/coverage-final.json +33 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +206 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +193 -0
- package/coverage/lcov-report/src/index.html +116 -0
- package/coverage/lcov-report/src/test/index.html +116 -0
- package/coverage/lcov-report/src/test/test-utils.tsx.html +379 -0
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +265 -0
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +247 -0
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +589 -0
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +664 -0
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +112 -0
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +367 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +187 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +145 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +139 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +151 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +190 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +176 -0
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +295 -0
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +289 -0
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +262 -0
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +472 -0
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +1063 -0
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +754 -0
- package/coverage/lcov-report/src/widget/components/ReportsConfigContext.tsx.html +373 -0
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +301 -0
- 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 +286 -0
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +337 -0
- package/coverage/lcov-report/src/widget/components/index.html +416 -0
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +565 -0
- package/coverage/lcov-report/src/widget/context/BulkExtractorContext.tsx.html +163 -0
- package/coverage/lcov-report/src/widget/context/ReportsConfigApiContext.tsx.html +202 -0
- package/coverage/lcov-report/src/widget/context/index.html +131 -0
- package/coverage/lcov-report/src/widget/hooks/index.html +116 -0
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +295 -0
- package/coverage/lcov-report/src/widget/index.html +116 -0
- package/coverage/lcov.info +1609 -0
- 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.js +5 -1
- package/lib/cjs/reports-config-widget-react.js.map +1 -1
- package/lib/cjs/test/AddMappingModal.test.js +20 -70
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -1
- package/lib/cjs/test/BulkExtractor.test.js +5 -1
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -1
- package/lib/cjs/test/DeleteModal.test.js +2 -2
- package/lib/cjs/test/DeleteModal.test.js.map +1 -1
- package/lib/cjs/test/ReportAction.test.js +7 -7
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +31 -81
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/cjs/test/ReportMappings.test.js +38 -88
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +68 -66
- 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 +30 -0
- package/lib/cjs/test/test-utils.d.ts.map +1 -1
- package/lib/cjs/test/test-utils.js +66 -7
- 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 +10 -8
- package/lib/cjs/widget/ReportsConfigUiProvider.js.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts +2 -2
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +5 -1
- 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.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +27 -28
- 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.js +2 -2
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/Constants.d.ts +1 -0
- package/lib/cjs/widget/components/Constants.d.ts.map +1 -1
- package/lib/cjs/widget/components/Constants.js +2 -1
- package/lib/cjs/widget/components/Constants.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +8 -4
- 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 +7 -3
- 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 +10 -16
- package/lib/cjs/widget/components/LocalizedTablePaginator.js +7 -3
- package/lib/cjs/widget/components/LocalizedTablePaginator.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +19 -17
- 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.js +14 -12
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +22 -18
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +28 -27
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +9 -10
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +26 -22
- 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.map +1 -1
- package/lib/cjs/widget/components/ReportsConfigContext.js +29 -32
- package/lib/cjs/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +9 -6
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +1 -3
- package/lib/cjs/widget/components/ReportsRouter.js +1 -2
- package/lib/cjs/widget/components/ReportsRouter.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/cjs/widget/components/SearchBar.js +9 -5
- package/lib/cjs/widget/components/SearchBar.js.map +1 -1
- package/lib/cjs/widget/components/SearchBar.scss +0 -1
- package/lib/cjs/widget/components/SelectIModel.js +11 -7
- 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.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.js +6 -2
- package/lib/cjs/widget/context/BulkExtractorContext.js.map +1 -1
- package/lib/cjs/widget/context/ReportsConfigApiContext.js +6 -2
- package/lib/cjs/widget/context/ReportsConfigApiContext.js.map +1 -1
- 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/test/AddMappingModal.test.js +2 -56
- package/lib/esm/test/AddMappingModal.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +3 -57
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -1
- package/lib/esm/test/ReportMappings.test.js +8 -62
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +32 -53
- 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 +30 -0
- package/lib/esm/test/test-utils.d.ts.map +1 -1
- package/lib/esm/test/test-utils.js +59 -4
- 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 +2 -2
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- 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.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +10 -15
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +1 -2
- package/lib/esm/widget/components/Constants.d.ts +1 -0
- package/lib/esm/widget/components/Constants.d.ts.map +1 -1
- package/lib/esm/widget/components/Constants.js +1 -0
- package/lib/esm/widget/components/Constants.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +2 -2
- 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 +10 -16
- package/lib/esm/widget/components/ReportAction.js +7 -9
- 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.js +4 -6
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +11 -11
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +7 -10
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +9 -10
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +9 -9
- 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.map +1 -1
- package/lib/esm/widget/components/ReportsConfigContext.js +21 -28
- package/lib/esm/widget/components/ReportsConfigContext.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +1 -2
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +1 -3
- package/lib/esm/widget/components/ReportsRouter.js +1 -2
- package/lib/esm/widget/components/ReportsRouter.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.d.ts.map +1 -1
- package/lib/esm/widget/components/SearchBar.js +2 -2
- package/lib/esm/widget/components/SearchBar.js.map +1 -1
- package/lib/esm/widget/components/SearchBar.scss +0 -1
- package/lib/esm/widget/components/SelectIModel.js +1 -1
- 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.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/public/locales/en/ReportsConfigWidget.json +4 -0
- package/package.json +56 -55
- package/public/locales/en/ReportsConfigWidget.json +4 -0
- package/src/test/AddMappingModal.test.tsx +7 -57
- package/src/test/ReportMappingHorizontalTile.test.tsx +6 -58
- package/src/test/ReportMappings.test.tsx +7 -58
- package/src/test/Reports.test.tsx +32 -110
- package/src/test/WidgetHeader.test.tsx +9 -2
- package/src/test/test-utils.tsx +62 -1
- package/src/widget/ReportsConfigUiProvider.tsx +7 -14
- package/src/widget/components/ActionPanel.scss +2 -3
- package/src/widget/components/ActionPanel.tsx +1 -1
- package/src/widget/components/AddMappingsModal.scss +1 -2
- package/src/widget/components/AddMappingsModal.tsx +16 -21
- package/src/widget/components/Constants.ts +2 -0
- package/src/widget/components/DeleteModal.scss +2 -3
- package/src/widget/components/DeleteModal.tsx +3 -3
- package/src/widget/components/ExtractionStatus.scss +6 -7
- package/src/widget/components/HorizontalTile.scss +10 -16
- package/src/widget/components/ReportAction.scss +1 -2
- package/src/widget/components/ReportAction.tsx +3 -3
- package/src/widget/components/ReportHorizontalTile.tsx +1 -1
- package/src/widget/components/ReportMappingHorizontalTile.tsx +28 -27
- package/src/widget/components/ReportMappings.scss +9 -10
- package/src/widget/components/ReportMappings.tsx +2 -4
- package/src/widget/components/Reports.scss +15 -15
- package/src/widget/components/Reports.tsx +25 -22
- package/src/widget/components/ReportsConfigContext.tsx +3 -2
- package/src/widget/components/ReportsContainer.scss +1 -3
- package/src/widget/components/SearchBar.scss +0 -1
- package/src/widget/components/SearchBar.tsx +6 -1
- package/src/widget/components/SelectIModel.scss +2 -3
- package/src/widget/components/SelectIModel.tsx +1 -1
- package/src/widget/components/utils.scss +16 -8
- package/src/widget/components/utils.tsx +7 -6
- package/.rush/temp/operation/rebuild/all.log +0 -9
- package/.rush/temp/operation/rebuild/state.json +0 -3
- package/.rush/temp/package-deps_rebuild.json +0 -68
- package/.rush/temp/shrinkwrap-deps.json +0 -931
- package/reports-config-widget-react.build.error.log +0 -1
- package/reports-config-widget-react.build.log +0 -2
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -32,66 +36,12 @@ require("@testing-library/jest-dom");
|
|
|
32
36
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
33
37
|
const test_utils_1 = require("./test-utils");
|
|
34
38
|
const moq = __importStar(require("typemoq"));
|
|
35
|
-
const imodels_client_management_1 = require("@itwin/imodels-client-management");
|
|
36
39
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
37
40
|
const ExtractionStatus_1 = require("../widget/components/ExtractionStatus");
|
|
38
41
|
const ReportMappingHorizontalTile_1 = require("../widget/components/ReportMappingHorizontalTile");
|
|
39
42
|
const core_common_1 = require("@itwin/core-common");
|
|
40
|
-
const mockITwinId = faker_1.default.datatype.uuid();
|
|
41
|
-
// Lets work with two iModels for now.
|
|
42
|
-
const mockIModelId1 = faker_1.default.datatype.uuid();
|
|
43
|
-
const mockIModelId2 = faker_1.default.datatype.uuid();
|
|
44
|
-
const mockReportId = faker_1.default.datatype.uuid();
|
|
45
|
-
const mockIModelsResponse = [
|
|
46
|
-
{
|
|
47
|
-
iModel: {
|
|
48
|
-
id: mockIModelId1,
|
|
49
|
-
displayName: "rAnDoMdIsPlAynAmE1",
|
|
50
|
-
name: "rAnDomName1",
|
|
51
|
-
description: "rAnDoMDeScRiPtIoN1",
|
|
52
|
-
createdDateTime: "2021-10-04T22:13:50.397Z",
|
|
53
|
-
state: imodels_client_management_1.IModelState.Initialized,
|
|
54
|
-
projectId: mockITwinId,
|
|
55
|
-
extent: null,
|
|
56
|
-
_links: {
|
|
57
|
-
creator: {
|
|
58
|
-
href: "",
|
|
59
|
-
},
|
|
60
|
-
namedVersions: {
|
|
61
|
-
href: "",
|
|
62
|
-
},
|
|
63
|
-
changesets: {
|
|
64
|
-
href: "",
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
iModel: {
|
|
71
|
-
id: mockIModelId2,
|
|
72
|
-
displayName: "rAnDoMdIsPlAynAmE2",
|
|
73
|
-
name: "rAnDomName2",
|
|
74
|
-
description: "rAnDoMDeScRiPtIoN2",
|
|
75
|
-
createdDateTime: "2021-10-04T22:13:50.397Z",
|
|
76
|
-
state: imodels_client_management_1.IModelState.Initialized,
|
|
77
|
-
projectId: mockITwinId,
|
|
78
|
-
extent: null,
|
|
79
|
-
_links: {
|
|
80
|
-
creator: {
|
|
81
|
-
href: "",
|
|
82
|
-
},
|
|
83
|
-
namedVersions: {
|
|
84
|
-
href: "",
|
|
85
|
-
},
|
|
86
|
-
changesets: {
|
|
87
|
-
href: "",
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
43
|
const mockProjectIModels = {
|
|
94
|
-
iModels: mockIModelsResponse.map((iModel) => ({
|
|
44
|
+
iModels: test_utils_1.mockIModelsResponse.map((iModel) => ({
|
|
95
45
|
id: iModel.iModel.id,
|
|
96
46
|
displayName: iModel.iModel.displayName,
|
|
97
47
|
})),
|
|
@@ -107,9 +57,9 @@ const mockReportMappingsFactory = () => {
|
|
|
107
57
|
return {
|
|
108
58
|
mappings: [
|
|
109
59
|
{
|
|
110
|
-
reportId: mockReportId,
|
|
60
|
+
reportId: test_utils_1.mockReportId,
|
|
111
61
|
mappingId: faker_1.default.datatype.uuid(),
|
|
112
|
-
imodelId: mockIModelId1,
|
|
62
|
+
imodelId: test_utils_1.mockIModelId1,
|
|
113
63
|
_links: {
|
|
114
64
|
report: {
|
|
115
65
|
href: "",
|
|
@@ -123,9 +73,9 @@ const mockReportMappingsFactory = () => {
|
|
|
123
73
|
},
|
|
124
74
|
},
|
|
125
75
|
{
|
|
126
|
-
reportId: mockReportId,
|
|
76
|
+
reportId: test_utils_1.mockReportId,
|
|
127
77
|
mappingId: faker_1.default.datatype.uuid(),
|
|
128
|
-
imodelId: mockIModelId1,
|
|
78
|
+
imodelId: test_utils_1.mockIModelId1,
|
|
129
79
|
_links: {
|
|
130
80
|
report: {
|
|
131
81
|
href: "",
|
|
@@ -172,14 +122,13 @@ const mockReportMappingsAndMappingsFactory = () => {
|
|
|
172
122
|
const reportMappings = mockReportMappingsFactory();
|
|
173
123
|
const mockMappings = mockMappingsFactory(reportMappings);
|
|
174
124
|
const reportMappingsAndMapping = reportMappings.mappings.map((reportMapping) => {
|
|
175
|
-
var _a;
|
|
176
125
|
const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId).mapping;
|
|
177
126
|
const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId).displayName;
|
|
178
127
|
const reportMappingAndMapping = {
|
|
179
128
|
...reportMapping,
|
|
180
129
|
iModelName,
|
|
181
130
|
mappingName: mapping.mappingName,
|
|
182
|
-
mappingDescription:
|
|
131
|
+
mappingDescription: mapping.description ?? "",
|
|
183
132
|
};
|
|
184
133
|
return reportMappingAndMapping;
|
|
185
134
|
});
|
|
@@ -188,6 +137,7 @@ const mockReportMappingsAndMappingsFactory = () => {
|
|
|
188
137
|
const mockBulkExtractor = moq.Mock.ofType();
|
|
189
138
|
const mockIModelsClient = moq.Mock.ofType();
|
|
190
139
|
jest.mock("../widget/components/Constants.ts", () => ({
|
|
140
|
+
...jest.requireActual("../widget/components/Constants.ts"),
|
|
191
141
|
STATUS_CHECK_INTERVAL: 10,
|
|
192
142
|
}));
|
|
193
143
|
const mockOdataFeedUrl = "mockOdataFeedUrl";
|
|
@@ -204,9 +154,9 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
204
154
|
const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
|
|
205
155
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
206
156
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
207
|
-
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 }));
|
|
157
|
+
(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 }));
|
|
208
158
|
mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
|
|
209
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
159
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
210
160
|
expect(test_utils_1.screen.getByText(firstMockMapping.mappingName)).toBeInTheDocument();
|
|
211
161
|
expect(test_utils_1.screen.getByTitle(firstMockMapping.mappingDescription)).toBeInTheDocument();
|
|
212
162
|
expect(test_utils_1.screen.getByText(firstMockMapping.iModelName)).toBeInTheDocument();
|
|
@@ -220,9 +170,9 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
220
170
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
221
171
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
222
172
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
223
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
173
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
224
174
|
mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());
|
|
225
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
175
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
226
176
|
const startExtractionButton = test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i });
|
|
227
177
|
await user.click(startExtractionButton);
|
|
228
178
|
mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());
|
|
@@ -235,24 +185,24 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
235
185
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
236
186
|
const mockOnClickDelete = jest.fn();
|
|
237
187
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
238
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
239
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
188
|
+
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 }));
|
|
189
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
240
190
|
const removeButton = test_utils_1.screen.getByRole("button", { name: /Remove/i });
|
|
241
191
|
await user.click(removeButton);
|
|
242
192
|
expect(mockOnClickDelete).toBeCalledTimes(1);
|
|
243
193
|
});
|
|
244
194
|
it("full extraction status cycle", async () => {
|
|
245
195
|
const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];
|
|
246
|
-
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
247
|
-
.returns(async () => mockIModelsResponse[0].iModel);
|
|
196
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: test_utils_1.mockIModelId1 })))
|
|
197
|
+
.returns(async () => test_utils_1.mockIModelsResponse[0].iModel);
|
|
248
198
|
mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))
|
|
249
199
|
.returns(async () => { return Promise.resolve(); });
|
|
250
200
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
251
201
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
252
202
|
const mockOnClickDelete = jest.fn();
|
|
253
203
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
254
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: mockOnClickDelete, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }));
|
|
255
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
204
|
+
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 }));
|
|
205
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
256
206
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
257
207
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Starting);
|
|
258
208
|
const startExtractionButton = test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i });
|
|
@@ -262,18 +212,18 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
262
212
|
mockBulkExtractor.reset();
|
|
263
213
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
264
214
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Queued);
|
|
265
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
215
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
266
216
|
mockBulkExtractor.reset();
|
|
267
217
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
268
218
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Running);
|
|
269
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
219
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
270
220
|
mockBulkExtractor.reset();
|
|
271
221
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
272
222
|
.returns(async () => ExtractionStatus_1.ExtractionStates.Succeeded);
|
|
273
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
223
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
274
224
|
mockBulkExtractor.reset();
|
|
275
225
|
test_utils_1.fireEvent.animationEnd(test_utils_1.screen.getByTestId("rcw-success-animation"));
|
|
276
|
-
await test_utils_1.waitFor(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });
|
|
226
|
+
await (0, test_utils_1.waitFor)(() => expect(test_utils_1.screen.getByRole("button", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });
|
|
277
227
|
});
|
|
278
228
|
it("second tile should update status", async () => {
|
|
279
229
|
const mockReportMappingsAndMappings = mockReportMappingsAndMappingsFactory();
|
|
@@ -282,13 +232,13 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
282
232
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
283
233
|
.returns(async () => ExtractionStatus_1.ExtractionStates.None);
|
|
284
234
|
const jobStartEvent = new core_bentley_1.BeEvent();
|
|
285
|
-
const { user } = test_utils_1.render(react_1.default.createElement("div", null,
|
|
235
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement("div", null,
|
|
286
236
|
react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: firstMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl }),
|
|
287
237
|
react_1.default.createElement(ReportMappingHorizontalTile_1.ReportMappingHorizontalTile, { jobStartEvent: jobStartEvent, mapping: secondMockMapping, onClickDelete: () => { }, bulkExtractor: mockBulkExtractor.object, odataFeedUrl: mockOdataFeedUrl })));
|
|
288
238
|
const tiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
289
239
|
for (const tile of tiles) {
|
|
290
|
-
const preview = test_utils_1.within(tile);
|
|
291
|
-
await test_utils_1.waitFor(() => expect(preview.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
240
|
+
const preview = (0, test_utils_1.within)(tile);
|
|
241
|
+
await (0, test_utils_1.waitFor)(() => expect(preview.getByRole("button", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });
|
|
292
242
|
}
|
|
293
243
|
mockBulkExtractor.reset();
|
|
294
244
|
mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))
|
|
@@ -298,8 +248,8 @@ describe("Report Mapping Horizontal Tile", () => {
|
|
|
298
248
|
const startExtractionButton = test_utils_1.screen.getAllByRole("button", { name: /UpdateDataset/i })[0];
|
|
299
249
|
await user.click(startExtractionButton);
|
|
300
250
|
for (const tile of tiles) {
|
|
301
|
-
const preview = test_utils_1.within(tile);
|
|
302
|
-
await test_utils_1.waitFor(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
251
|
+
const preview = (0, test_utils_1.within)(tile);
|
|
252
|
+
await (0, test_utils_1.waitFor)(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });
|
|
303
253
|
}
|
|
304
254
|
expect(test_utils_1.screen.getAllByTitle(/Queued/i)).toHaveLength(2);
|
|
305
255
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportMappingHorizontalTile.test.js","sourceRoot":"","sources":["../../../src/test/ReportMappingHorizontalTile.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 fireEvent,\n render,\n screen,\n waitFor,\n within,\n} from \"./test-utils\";\nimport * as moq from \"typemoq\";\nimport type {\n MappingSingle,\n ReportMappingCollection,\n} from \"@itwin/insights-client\";\nimport type { ReportMappingAndMapping } from \"../widget/components/ReportMappings\";\nimport type { GetSingleIModelParams, IModelOperations, OperationOptions } from \"@itwin/imodels-client-management\";\nimport { IModelState } from \"@itwin/imodels-client-management\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { ExtractionStates } from \"../widget/components/ExtractionStatus\";\nimport { ReportMappingHorizontalTile } from \"../widget/components/ReportMappingHorizontalTile\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\nimport type { BulkExtractor } from \"../widget/components/BulkExtractor\";\n\nconst mockITwinId = faker.datatype.uuid();\n// Lets work with two iModels for now.\nconst mockIModelId1 = faker.datatype.uuid();\nconst mockIModelId2 = faker.datatype.uuid();\n\nconst mockReportId = faker.datatype.uuid();\n\nconst mockIModelsResponse = [\n {\n iModel: {\n id: mockIModelId1,\n displayName: \"rAnDoMdIsPlAynAmE1\",\n name: \"rAnDomName1\",\n description: \"rAnDoMDeScRiPtIoN1\",\n createdDateTime: \"2021-10-04T22:13:50.397Z\",\n state: IModelState.Initialized,\n projectId: mockITwinId,\n extent: null,\n _links: {\n creator: {\n href: \"\",\n },\n namedVersions: {\n href: \"\",\n },\n changesets: {\n href: \"\",\n },\n },\n },\n },\n {\n iModel: {\n id: mockIModelId2,\n displayName: \"rAnDoMdIsPlAynAmE2\",\n name: \"rAnDomName2\",\n description: \"rAnDoMDeScRiPtIoN2\",\n createdDateTime: \"2021-10-04T22:13:50.397Z\",\n state: IModelState.Initialized,\n projectId: mockITwinId,\n extent: null,\n _links: {\n creator: {\n href: \"\",\n },\n namedVersions: {\n href: \"\",\n },\n changesets: {\n href: \"\",\n },\n },\n },\n },\n];\n\nconst mockProjectIModels = {\n iModels: mockIModelsResponse.map((iModel) => ({\n id: iModel.iModel.id,\n displayName: iModel.iModel.displayName,\n })),\n _links: {\n self: {\n href: \"\",\n },\n prev: null,\n next: null,\n },\n};\n\nconst mockReportMappingsFactory = (): ReportMappingCollection => {\n return {\n mappings: [\n {\n reportId: mockReportId,\n mappingId: faker.datatype.uuid(),\n imodelId: mockIModelId1,\n _links: {\n report: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n imodel: {\n href: \"\",\n },\n },\n },\n {\n reportId: mockReportId,\n mappingId: faker.datatype.uuid(),\n imodelId: mockIModelId1,\n _links: {\n report: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n imodel: {\n href: \"\",\n },\n },\n },\n ],\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n };\n};\n\nconst mockMappingsFactory = (\n mockReportMappings: ReportMappingCollection\n): MappingSingle[] => {\n const mockMappings: MappingSingle[] = mockReportMappings.mappings.map(\n (mapping, index) => ({\n mapping: {\n id: mapping.mappingId,\n mappingName: `mOcKMaPpIngNaMe${index}`,\n description: `mOcKmApPInGDeScRiPtIoN${index}`,\n extractionEnabled: false,\n createdOn: \"\",\n createdBy: \"\",\n modifiedOn: \"\",\n modifiedBy: \"\",\n _links: {\n imodel: {\n // Tie the mapping to to the iModel Id\n href: mapping.imodelId,\n },\n },\n },\n })\n );\n\n return mockMappings;\n};\n\nconst mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {\n const reportMappings = mockReportMappingsFactory();\n const mockMappings = mockMappingsFactory(reportMappings);\n const reportMappingsAndMapping =\n reportMappings.mappings.map((reportMapping) => {\n const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId)!.mapping;\n const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId)!.displayName;\n const reportMappingAndMapping: ReportMappingAndMapping = {\n ...reportMapping,\n iModelName,\n mappingName: mapping.mappingName,\n mappingDescription: mapping.description ?? \"\",\n };\n return reportMappingAndMapping;\n });\n return reportMappingsAndMapping;\n};\n\nconst mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();\nconst mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();\n\njest.mock(\"../widget/components/Constants.ts\", () => ({\n STATUS_CHECK_INTERVAL: 10,\n}));\n\nconst mockOdataFeedUrl = \"mockOdataFeedUrl\";\n\nbeforeAll(async () => {\n const localization = new EmptyLocalization();\n await ReportsConfigWidget.initialize(localization);\n});\n\nafterEach(() => {\n mockIModelsClient.reset();\n mockBulkExtractor.reset();\n});\n\ndescribe(\"Report Mapping Horizontal Tile\", () => {\n it(\"tile renders correctly\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n render(<ReportMappingHorizontalTile\n jobStartEvent={new BeEvent()}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n expect(screen.getByText(firstMockMapping.mappingName)).toBeInTheDocument();\n expect(screen.getByTitle(firstMockMapping.mappingDescription)).toBeInTheDocument();\n expect(screen.getByText(firstMockMapping.iModelName)).toBeInTheDocument();\n expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).toBeInTheDocument();\n expect(screen.getByRole(\"button\", { name: /Remove/i })).toBeInTheDocument();\n });\n\n it(\"starting extraction sends request\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n const startExtractionButton = screen.getByRole(\"button\", { name: /UpdateDataset/i });\n await user.click(startExtractionButton);\n\n mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());\n });\n\n it(\"on delete is called when remove is pressed\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const mockOnClickDelete = jest.fn();\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={mockOnClickDelete}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });\n\n const removeButton = screen.getByRole(\"button\", { name: /Remove/i });\n await user.click(removeButton);\n\n expect(mockOnClickDelete).toBeCalledTimes(1);\n });\n\n it(\"full extraction status cycle\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith<GetSingleIModelParams>({ iModelId: mockIModelId1 })))\n .returns(async () => mockIModelsResponse[0].iModel);\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const mockOnClickDelete = jest.fn();\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={mockOnClickDelete}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Starting);\n\n const startExtractionButton = screen.getByRole(\"button\", { name: /UpdateDataset/i });\n await user.click(startExtractionButton);\n\n mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());\n\n expect(screen.getByTitle(/Starting/i)).toBeInTheDocument();\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Queued);\n\n await waitFor(() => expect(screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Running);\n await waitFor(() => expect(screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Succeeded);\n await waitFor(() => expect(screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n fireEvent.animationEnd(screen.getByTestId(\"rcw-success-animation\"));\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });\n });\n\n it(\"second tile should update status\", async () => {\n const mockReportMappingsAndMappings = mockReportMappingsAndMappingsFactory();\n const firstMockMapping = mockReportMappingsAndMappings[0];\n const secondMockMapping = mockReportMappingsAndMappings[1];\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(\n <div>\n <ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />\n <ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={secondMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />\n </div>);\n\n const tiles = screen.getAllByTestId(\"horizontal-tile\");\n\n for (const tile of tiles) {\n const preview = within(tile);\n await waitFor(() => expect(preview.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n }\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Queued);\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n const startExtractionButton = screen.getAllByRole(\"button\", { name: /UpdateDataset/i })[0];\n await user.click(startExtractionButton);\n\n for (const tile of tiles) {\n const preview = within(tile);\n await waitFor(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });\n }\n\n expect(screen.getAllByTitle(/Queued/i)).toHaveLength(2);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"ReportMappingHorizontalTile.test.js","sourceRoot":"","sources":["../../../src/test/ReportMappingHorizontalTile.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 fireEvent,\n mockIModelId1,\n mockIModelsResponse,\n mockReportId,\n render,\n screen,\n waitFor,\n within,\n} from \"./test-utils\";\nimport * as moq from \"typemoq\";\nimport type {\n MappingSingle,\n ReportMappingCollection,\n} from \"@itwin/insights-client\";\nimport type { ReportMappingAndMapping } from \"../widget/components/ReportMappings\";\nimport type { GetSingleIModelParams } from \"@itwin/imodels-client-management\";\nimport { BeEvent } from \"@itwin/core-bentley\";\nimport { ExtractionStates } from \"../widget/components/ExtractionStatus\";\nimport { ReportMappingHorizontalTile } from \"../widget/components/ReportMappingHorizontalTile\";\nimport { EmptyLocalization } from \"@itwin/core-common\";\nimport type { BulkExtractor } from \"../widget/components/BulkExtractor\";\nimport type { IModelOperations, OperationOptions } from \"@itwin/imodels-client-management/lib/operations\";\n\nconst mockProjectIModels = {\n iModels: mockIModelsResponse.map((iModel) => ({\n id: iModel.iModel.id,\n displayName: iModel.iModel.displayName,\n })),\n _links: {\n self: {\n href: \"\",\n },\n prev: null,\n next: null,\n },\n};\n\nconst mockReportMappingsFactory = (): ReportMappingCollection => {\n return {\n mappings: [\n {\n reportId: mockReportId,\n mappingId: faker.datatype.uuid(),\n imodelId: mockIModelId1,\n _links: {\n report: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n imodel: {\n href: \"\",\n },\n },\n },\n {\n reportId: mockReportId,\n mappingId: faker.datatype.uuid(),\n imodelId: mockIModelId1,\n _links: {\n report: {\n href: \"\",\n },\n mapping: {\n href: \"\",\n },\n imodel: {\n href: \"\",\n },\n },\n },\n ],\n _links: {\n next: undefined,\n self: {\n href: \"\",\n },\n },\n };\n};\n\nconst mockMappingsFactory = (\n mockReportMappings: ReportMappingCollection\n): MappingSingle[] => {\n const mockMappings: MappingSingle[] = mockReportMappings.mappings.map(\n (mapping, index) => ({\n mapping: {\n id: mapping.mappingId,\n mappingName: `mOcKMaPpIngNaMe${index}`,\n description: `mOcKmApPInGDeScRiPtIoN${index}`,\n extractionEnabled: false,\n createdOn: \"\",\n createdBy: \"\",\n modifiedOn: \"\",\n modifiedBy: \"\",\n _links: {\n imodel: {\n // Tie the mapping to to the iModel Id\n href: mapping.imodelId,\n },\n },\n },\n })\n );\n\n return mockMappings;\n};\n\nconst mockReportMappingsAndMappingsFactory = (): ReportMappingAndMapping[] => {\n const reportMappings = mockReportMappingsFactory();\n const mockMappings = mockMappingsFactory(reportMappings);\n const reportMappingsAndMapping =\n reportMappings.mappings.map((reportMapping) => {\n const mapping = mockMappings.find((x) => x.mapping.id === reportMapping.mappingId)!.mapping;\n const iModelName = mockProjectIModels.iModels.find((x) => x.id === reportMapping.imodelId)!.displayName;\n const reportMappingAndMapping: ReportMappingAndMapping = {\n ...reportMapping,\n iModelName,\n mappingName: mapping.mappingName,\n mappingDescription: mapping.description ?? \"\",\n };\n return reportMappingAndMapping;\n });\n return reportMappingsAndMapping;\n};\n\nconst mockBulkExtractor = moq.Mock.ofType<BulkExtractor>();\nconst mockIModelsClient = moq.Mock.ofType<IModelOperations<OperationOptions>>();\n\njest.mock(\"../widget/components/Constants.ts\", () => ({\n ...jest.requireActual(\"../widget/components/Constants.ts\"),\n STATUS_CHECK_INTERVAL: 10,\n}));\n\nconst mockOdataFeedUrl = \"mockOdataFeedUrl\";\n\nbeforeAll(async () => {\n const localization = new EmptyLocalization();\n await ReportsConfigWidget.initialize(localization);\n});\n\nafterEach(() => {\n mockIModelsClient.reset();\n mockBulkExtractor.reset();\n});\n\ndescribe(\"Report Mapping Horizontal Tile\", () => {\n it(\"tile renders correctly\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n render(<ReportMappingHorizontalTile\n jobStartEvent={new BeEvent()}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n expect(screen.getByText(firstMockMapping.mappingName)).toBeInTheDocument();\n expect(screen.getByTitle(firstMockMapping.mappingDescription)).toBeInTheDocument();\n expect(screen.getByText(firstMockMapping.iModelName)).toBeInTheDocument();\n expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).toBeInTheDocument();\n expect(screen.getByRole(\"button\", { name: /Remove/i })).toBeInTheDocument();\n });\n\n it(\"starting extraction sends request\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n mockBulkExtractor.verify(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl), moq.Times.once());\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n const startExtractionButton = screen.getByRole(\"button\", { name: /UpdateDataset/i });\n await user.click(startExtractionButton);\n\n mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());\n });\n\n it(\"on delete is called when remove is pressed\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const mockOnClickDelete = jest.fn();\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={mockOnClickDelete}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /Remove/i })).not.toBeDisabled(), { timeout: 1000 });\n\n const removeButton = screen.getByRole(\"button\", { name: /Remove/i });\n await user.click(removeButton);\n\n expect(mockOnClickDelete).toBeCalledTimes(1);\n });\n\n it(\"full extraction status cycle\", async () => {\n const firstMockMapping = mockReportMappingsAndMappingsFactory()[0];\n\n mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith<GetSingleIModelParams>({ iModelId: mockIModelId1 })))\n .returns(async () => mockIModelsResponse[0].iModel);\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const mockOnClickDelete = jest.fn();\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(<ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={mockOnClickDelete}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />);\n\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Starting);\n\n const startExtractionButton = screen.getByRole(\"button\", { name: /UpdateDataset/i });\n await user.click(startExtractionButton);\n\n mockBulkExtractor.verify(async (x) => x.runIModelExtraction(firstMockMapping.imodelId), moq.Times.once());\n\n expect(screen.getByTitle(/Starting/i)).toBeInTheDocument();\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Queued);\n\n await waitFor(() => expect(screen.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Running);\n await waitFor(() => expect(screen.getByTitle(/Running/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Succeeded);\n await waitFor(() => expect(screen.getByTitle(/Success/i)).toBeInTheDocument(), { timeout: 1000 });\n\n mockBulkExtractor.reset();\n fireEvent.animationEnd(screen.getByTestId(\"rcw-success-animation\"));\n await waitFor(() => expect(screen.getByRole(\"button\", { name: /UpdateDataset/i })).toBeInTheDocument(), { timeout: 1000 });\n });\n\n it(\"second tile should update status\", async () => {\n const mockReportMappingsAndMappings = mockReportMappingsAndMappingsFactory();\n const firstMockMapping = mockReportMappingsAndMappings[0];\n const secondMockMapping = mockReportMappingsAndMappings[1];\n\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.None);\n\n const jobStartEvent = new BeEvent<(iModelId: string) => void>();\n\n const { user } = render(\n <div>\n <ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={firstMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />\n <ReportMappingHorizontalTile\n jobStartEvent={jobStartEvent}\n mapping={secondMockMapping}\n onClickDelete={() => { }}\n bulkExtractor={mockBulkExtractor.object}\n odataFeedUrl={mockOdataFeedUrl}\n />\n </div>);\n\n const tiles = screen.getAllByTestId(\"horizontal-tile\");\n\n for (const tile of tiles) {\n const preview = within(tile);\n await waitFor(() => expect(preview.getByRole(\"button\", { name: /UpdateDataset/i })).not.toBeDisabled(), { timeout: 1000 });\n }\n\n mockBulkExtractor.reset();\n mockBulkExtractor.setup(async (x) => x.getIModelState(firstMockMapping.imodelId, firstMockMapping.iModelName, mockOdataFeedUrl))\n .returns(async () => ExtractionStates.Queued);\n\n mockBulkExtractor.setup(async (x) => x.runIModelExtraction(firstMockMapping.imodelId))\n .returns(async () => { return Promise.resolve(); });\n\n const startExtractionButton = screen.getAllByRole(\"button\", { name: /UpdateDataset/i })[0];\n await user.click(startExtractionButton);\n\n for (const tile of tiles) {\n const preview = within(tile);\n await waitFor(() => expect(preview.getByTitle(/Queued/i)).toBeInTheDocument(), { timeout: 1000 });\n }\n\n expect(screen.getAllByTitle(/Queued/i)).toHaveLength(2);\n });\n});\n"]}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -33,64 +37,11 @@ const test_utils_1 = require("./test-utils");
|
|
|
33
37
|
const moq = __importStar(require("typemoq"));
|
|
34
38
|
const insights_client_1 = require("@itwin/insights-client");
|
|
35
39
|
const ReportMappings_1 = require("../widget/components/ReportMappings");
|
|
36
|
-
const imodels_client_management_1 = require("@itwin/imodels-client-management");
|
|
37
40
|
const BulkExtractor_1 = require("../widget/components/BulkExtractor");
|
|
38
41
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
39
42
|
const core_common_1 = require("@itwin/core-common");
|
|
40
|
-
// Lets work with two iModels for now.
|
|
41
|
-
const mockIModelId1 = "mockIModelId1";
|
|
42
|
-
const mockIModelId2 = "mockIModelId2";
|
|
43
|
-
const mockReportId = "mockReportId";
|
|
44
|
-
const mockIModelsResponse = [
|
|
45
|
-
{
|
|
46
|
-
iModel: {
|
|
47
|
-
id: mockIModelId1,
|
|
48
|
-
displayName: "rAnDoMdIsPlAynAmE1",
|
|
49
|
-
name: "rAnDomName1",
|
|
50
|
-
description: "rAnDoMDeScRiPtIoN1",
|
|
51
|
-
createdDateTime: "2021-10-04T22:13:50.397Z",
|
|
52
|
-
state: imodels_client_management_1.IModelState.Initialized,
|
|
53
|
-
projectId: test_utils_1.mockITwinId,
|
|
54
|
-
extent: null,
|
|
55
|
-
_links: {
|
|
56
|
-
creator: {
|
|
57
|
-
href: "",
|
|
58
|
-
},
|
|
59
|
-
namedVersions: {
|
|
60
|
-
href: "",
|
|
61
|
-
},
|
|
62
|
-
changesets: {
|
|
63
|
-
href: "",
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
iModel: {
|
|
70
|
-
id: mockIModelId2,
|
|
71
|
-
displayName: "rAnDoMdIsPlAynAmE2",
|
|
72
|
-
name: "rAnDomName2",
|
|
73
|
-
description: "rAnDoMDeScRiPtIoN2",
|
|
74
|
-
createdDateTime: "2021-10-04T22:13:50.397Z",
|
|
75
|
-
state: imodels_client_management_1.IModelState.Initialized,
|
|
76
|
-
projectId: test_utils_1.mockITwinId,
|
|
77
|
-
extent: null,
|
|
78
|
-
_links: {
|
|
79
|
-
creator: {
|
|
80
|
-
href: "",
|
|
81
|
-
},
|
|
82
|
-
namedVersions: {
|
|
83
|
-
href: "",
|
|
84
|
-
},
|
|
85
|
-
changesets: {
|
|
86
|
-
href: "",
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
];
|
|
92
43
|
const mockProjectIModels = {
|
|
93
|
-
iModels: mockIModelsResponse.map((iModel) => ({
|
|
44
|
+
iModels: test_utils_1.mockIModelsResponse.map((iModel) => ({
|
|
94
45
|
id: iModel.iModel.id,
|
|
95
46
|
displayName: iModel.iModel.displayName,
|
|
96
47
|
})),
|
|
@@ -103,7 +54,7 @@ const mockProjectIModels = {
|
|
|
103
54
|
},
|
|
104
55
|
};
|
|
105
56
|
const mockReport = {
|
|
106
|
-
id: mockReportId,
|
|
57
|
+
id: test_utils_1.mockReportId,
|
|
107
58
|
displayName: "mOcKRePoRt1",
|
|
108
59
|
description: "mOcKRePoRtDeScRiPtIoN1",
|
|
109
60
|
deleted: false,
|
|
@@ -117,9 +68,9 @@ const mockReportMappingsFactory = () => {
|
|
|
117
68
|
return {
|
|
118
69
|
mappings: [
|
|
119
70
|
{
|
|
120
|
-
reportId: mockReportId,
|
|
71
|
+
reportId: test_utils_1.mockReportId,
|
|
121
72
|
mappingId: "mockMappingId1",
|
|
122
|
-
imodelId: mockIModelId1,
|
|
73
|
+
imodelId: test_utils_1.mockIModelId1,
|
|
123
74
|
_links: {
|
|
124
75
|
report: {
|
|
125
76
|
href: "",
|
|
@@ -133,9 +84,9 @@ const mockReportMappingsFactory = () => {
|
|
|
133
84
|
},
|
|
134
85
|
},
|
|
135
86
|
{
|
|
136
|
-
reportId: mockReportId,
|
|
87
|
+
reportId: test_utils_1.mockReportId,
|
|
137
88
|
mappingId: "mockMappingId2",
|
|
138
|
-
imodelId: mockIModelId2,
|
|
89
|
+
imodelId: test_utils_1.mockIModelId2,
|
|
139
90
|
_links: {
|
|
140
91
|
report: {
|
|
141
92
|
href: "",
|
|
@@ -179,6 +130,7 @@ const mockMappingsFactory = (mockReportMappings) => {
|
|
|
179
130
|
return mockMappings;
|
|
180
131
|
};
|
|
181
132
|
jest.mock("../widget/components/Constants.ts", () => ({
|
|
133
|
+
...jest.requireActual("../widget/components/Constants.ts"),
|
|
182
134
|
STATUS_CHECK_INTERVAL: 10,
|
|
183
135
|
}));
|
|
184
136
|
jest.mock("../widget/components/ReportMappingHorizontalTile", () => ({
|
|
@@ -212,10 +164,10 @@ const mockMappingsClient = moq.Mock.ofType();
|
|
|
212
164
|
beforeAll(async () => {
|
|
213
165
|
const localization = new core_common_1.EmptyLocalization();
|
|
214
166
|
await ReportsConfigWidget_1.ReportsConfigWidget.initialize(localization);
|
|
215
|
-
mockIModelsClientOperations.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
216
|
-
.returns(async () => mockIModelsResponse[0].iModel);
|
|
217
|
-
mockIModelsClientOperations.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId2 })))
|
|
218
|
-
.returns(async () => mockIModelsResponse[1].iModel);
|
|
167
|
+
mockIModelsClientOperations.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: test_utils_1.mockIModelId1 })))
|
|
168
|
+
.returns(async () => test_utils_1.mockIModelsResponse[0].iModel);
|
|
169
|
+
mockIModelsClientOperations.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: test_utils_1.mockIModelId2 })))
|
|
170
|
+
.returns(async () => test_utils_1.mockIModelsResponse[1].iModel);
|
|
219
171
|
mockIModelsClient.setup((x) => x.iModels)
|
|
220
172
|
.returns(() => mockIModelsClientOperations.object);
|
|
221
173
|
mockReportsClient.setup(async (x) => x.getReportMappings(moq.It.isAny(), moq.It.isAny())).returns(mockGetReportMappings);
|
|
@@ -233,19 +185,18 @@ describe("Report Mappings View", () => {
|
|
|
233
185
|
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
234
186
|
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
235
187
|
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
236
|
-
test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
237
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
188
|
+
(0, test_utils_1.render)(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
189
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByText(/loading/i));
|
|
238
190
|
const horizontalTiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
239
191
|
assertHorizontalTiles(horizontalTiles, mockMappings);
|
|
240
192
|
});
|
|
241
193
|
it("search for a report mapping", async () => {
|
|
242
|
-
var _a, _b, _c, _d;
|
|
243
194
|
const mockReportMappings = mockReportMappingsFactory();
|
|
244
195
|
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
245
196
|
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
246
197
|
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
247
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
248
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
198
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
199
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByText(/loading/i));
|
|
249
200
|
const searchButton = test_utils_1.screen.getByTestId(/rcw-search-button/i);
|
|
250
201
|
await user.click(searchButton);
|
|
251
202
|
const searchInput = test_utils_1.screen.getByRole("textbox", {
|
|
@@ -257,23 +208,23 @@ describe("Report Mappings View", () => {
|
|
|
257
208
|
expect(test_utils_1.screen.getByText(mockMappings[0].mapping.mappingName)).toBeInTheDocument();
|
|
258
209
|
// Be an exact match on description.
|
|
259
210
|
await user.clear(searchInput);
|
|
260
|
-
await user.type(searchInput,
|
|
211
|
+
await user.type(searchInput, mockMappings[0].mapping.description ?? "");
|
|
261
212
|
expect(test_utils_1.screen.getAllByTestId("horizontal-tile")).toHaveLength(1);
|
|
262
|
-
expect(test_utils_1.screen.getByTitle(
|
|
213
|
+
expect(test_utils_1.screen.getByTitle(mockMappings[0].mapping.description ?? "")).toBeInTheDocument();
|
|
263
214
|
// Be an exact match on iModel Name.
|
|
264
|
-
const iModel = mockIModelsResponse.find((mockIModel) => mockIModel.iModel.id === mockMappings[0].mapping._links.imodel.href);
|
|
215
|
+
const iModel = test_utils_1.mockIModelsResponse.find((mockIModel) => mockIModel.iModel.id === mockMappings[0].mapping._links.imodel.href);
|
|
265
216
|
await user.clear(searchInput);
|
|
266
|
-
await user.type(searchInput,
|
|
217
|
+
await user.type(searchInput, iModel?.iModel.displayName ?? "");
|
|
267
218
|
expect(test_utils_1.screen.getAllByTestId("horizontal-tile")).toHaveLength(1);
|
|
268
|
-
expect(test_utils_1.screen.getByText(
|
|
219
|
+
expect(test_utils_1.screen.getByText(iModel?.iModel.displayName ?? "")).toBeInTheDocument();
|
|
269
220
|
});
|
|
270
221
|
it("add mapping", async () => {
|
|
271
222
|
const mockReportMappings = mockReportMappingsFactory();
|
|
272
223
|
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
273
224
|
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
274
225
|
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
275
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
276
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
226
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
227
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByText(/loading/i));
|
|
277
228
|
mockGetMappings.mockReturnValueOnce(mockMappings.map((m) => m.mapping));
|
|
278
229
|
const addMappingButton = test_utils_1.screen.getByRole("button", {
|
|
279
230
|
name: /addmapping/i,
|
|
@@ -281,7 +232,7 @@ describe("Report Mappings View", () => {
|
|
|
281
232
|
await user.click(addMappingButton);
|
|
282
233
|
const addMappingsModal = await test_utils_1.screen.findByTestId("add-mappings-modal");
|
|
283
234
|
expect(addMappingsModal).toBeInTheDocument();
|
|
284
|
-
await test_utils_1.act(async () => {
|
|
235
|
+
await (0, test_utils_1.act)(async () => {
|
|
285
236
|
await onClose();
|
|
286
237
|
});
|
|
287
238
|
const horizontalTiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
@@ -289,8 +240,8 @@ describe("Report Mappings View", () => {
|
|
|
289
240
|
expect(mockGetReportMappings).toBeCalledTimes(2);
|
|
290
241
|
});
|
|
291
242
|
it("odata feed url", async () => {
|
|
292
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
293
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
243
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object });
|
|
244
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByText(/loading/i));
|
|
294
245
|
const urlTextbox = test_utils_1.screen.getByRole("textbox", {
|
|
295
246
|
name: /odatafeedurl/i,
|
|
296
247
|
});
|
|
@@ -307,27 +258,26 @@ describe("Report Mappings View", () => {
|
|
|
307
258
|
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
308
259
|
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
309
260
|
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
310
|
-
const iModels = mockIModelsResponse.map((iModel) => iModel.iModel.id);
|
|
261
|
+
const iModels = test_utils_1.mockIModelsResponse.map((iModel) => iModel.iModel.id);
|
|
311
262
|
const bulkExtractor = new BulkExtractor_1.BulkExtractor(new insights_client_1.ReportsClient(), new insights_client_1.ExtractionClient(), jest.fn().mockResolvedValue("mockAccessToken"), jest.fn, jest.fn);
|
|
312
263
|
const runIModelExtractionsMock = jest.spyOn(bulkExtractor, "runIModelExtractions").mockImplementation(async () => Promise.resolve());
|
|
313
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object, bulkExtractor });
|
|
314
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
264
|
+
const { user } = (0, test_utils_1.render)(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, onClickClose: jest.fn() }), { reportsClient: mockReportsClient.object, mappingsClient: mockMappingsClient.object, iModelsClient: mockIModelsClient.object, bulkExtractor });
|
|
265
|
+
await (0, test_utils_1.waitForElementToBeRemoved)(() => test_utils_1.screen.getByText(/loading/i));
|
|
315
266
|
const extractAllButton = test_utils_1.screen.getByText(/UpdateAllDatasets/i);
|
|
316
267
|
expect(extractAllButton).toBeInTheDocument();
|
|
317
268
|
await user.click(extractAllButton);
|
|
318
|
-
await test_utils_1.waitFor(() => expect(extractAllButton).toBeEnabled());
|
|
269
|
+
await (0, test_utils_1.waitFor)(() => expect(extractAllButton).toBeEnabled());
|
|
319
270
|
// Check that the mocked method was called with the expected arguments
|
|
320
271
|
expect(runIModelExtractionsMock).toHaveBeenCalledWith(iModels);
|
|
321
272
|
});
|
|
322
273
|
const assertHorizontalTiles = (horizontalTiles, mockMappings) => {
|
|
323
|
-
var _a, _b;
|
|
324
274
|
expect(horizontalTiles).toHaveLength(mockMappings.length);
|
|
325
275
|
for (const [index, horizontalTile] of horizontalTiles.entries()) {
|
|
326
|
-
const reportMappingTile = test_utils_1.within(horizontalTile);
|
|
327
|
-
const mockiModel = mockIModelsResponse.find((iModel) => iModel.iModel.id === mockMappings[index].mapping._links.imodel.href);
|
|
276
|
+
const reportMappingTile = (0, test_utils_1.within)(horizontalTile);
|
|
277
|
+
const mockiModel = test_utils_1.mockIModelsResponse.find((iModel) => iModel.iModel.id === mockMappings[index].mapping._links.imodel.href);
|
|
328
278
|
expect(reportMappingTile.getByText(mockMappings[index].mapping.mappingName)).toBeInTheDocument();
|
|
329
|
-
expect(reportMappingTile.getByTitle(
|
|
330
|
-
expect(reportMappingTile.getByText(
|
|
279
|
+
expect(reportMappingTile.getByTitle(mockMappings[index].mapping.description ?? "")).toBeInTheDocument();
|
|
280
|
+
expect(reportMappingTile.getByText(mockiModel?.iModel.displayName ?? "")).toBeInTheDocument();
|
|
331
281
|
}
|
|
332
282
|
};
|
|
333
283
|
});
|