@itwin/reports-config-widget-react 0.1.0 → 0.2.1
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/package-deps_rebuild.json +38 -34
- package/.rush/temp/shrinkwrap-deps.json +14 -6
- package/CHANGELOG.json +30 -0
- package/CHANGELOG.md +17 -1
- package/coverage/clover.xml +605 -610
- package/coverage/coverage-final.json +28 -27
- package/coverage/lcov-report/index.html +31 -31
- package/coverage/lcov-report/src/ReportsConfigWidget.ts.html +10 -10
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/test/index.html +1 -1
- package/coverage/lcov-report/src/test/test-utils.tsx.html +22 -22
- package/coverage/lcov-report/src/widget/ReportsConfigUiProvider.tsx.html +7 -7
- package/coverage/lcov-report/src/widget/components/ActionPanel.tsx.html +29 -41
- package/coverage/lcov-report/src/widget/components/AddMappingsModal.tsx.html +31 -37
- package/coverage/lcov-report/src/widget/components/BulkExtractor.ts.html +270 -162
- package/coverage/lcov-report/src/widget/components/Constants.ts.html +4 -4
- package/coverage/lcov-report/src/widget/components/DeleteModal.tsx.html +21 -21
- package/coverage/lcov-report/src/widget/components/ExtractionStates/FailedExtractionState.tsx.html +6 -6
- package/coverage/lcov-report/src/widget/components/ExtractionStates/QueuedExtractionState.tsx.html +14 -14
- package/coverage/lcov-report/src/widget/components/ExtractionStates/RunningExtractionState.tsx.html +15 -15
- package/coverage/lcov-report/src/widget/components/ExtractionStates/StartingExtractionState.tsx.html +14 -14
- package/coverage/lcov-report/src/widget/components/ExtractionStates/SucceededExtractionState.tsx.html +22 -19
- package/coverage/lcov-report/src/widget/components/ExtractionStates/index.html +43 -43
- package/coverage/lcov-report/src/widget/components/ExtractionStatus.tsx.html +57 -57
- package/coverage/lcov-report/src/widget/components/ExtractionToast.tsx.html +208 -0
- package/coverage/lcov-report/src/widget/components/HorizontalTile.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/components/LocalizedTablePaginator.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/components/ReportAction.tsx.html +14 -20
- package/coverage/lcov-report/src/widget/components/ReportHorizontalTile.tsx.html +30 -33
- package/coverage/lcov-report/src/widget/components/ReportMappingHorizontalTile.tsx.html +469 -0
- package/coverage/lcov-report/src/widget/components/ReportMappings.tsx.html +183 -231
- package/coverage/lcov-report/src/widget/components/Reports.tsx.html +73 -43
- package/coverage/lcov-report/src/widget/components/ReportsContainer.tsx.html +10 -10
- package/coverage/lcov-report/src/widget/components/SearchBar.tsx.html +10 -10
- package/coverage/lcov-report/src/widget/components/SelectIModel.tsx.html +31 -31
- package/coverage/lcov-report/src/widget/components/index.html +100 -85
- package/coverage/lcov-report/src/widget/components/utils.tsx.html +32 -32
- package/coverage/lcov-report/src/widget/context/ReportsApiConfigContext.tsx.html +8 -8
- package/coverage/lcov-report/src/widget/context/index.html +1 -1
- package/coverage/lcov-report/src/widget/hooks/index.html +1 -1
- package/coverage/lcov-report/src/widget/hooks/useValidator.ts.html +7 -7
- package/coverage/lcov-report/src/widget/index.html +1 -1
- package/coverage/lcov.info +990 -1003
- package/jest.config.js +6 -0
- package/lib/cjs/test/AddMappingModal.test.d.ts +2 -0
- package/lib/cjs/test/AddMappingModal.test.d.ts.map +1 -0
- package/lib/cjs/test/AddMappingModal.test.js +277 -0
- package/lib/cjs/test/AddMappingModal.test.js.map +1 -0
- package/lib/cjs/test/BulkExtractor.test.d.ts +2 -0
- package/lib/cjs/test/BulkExtractor.test.d.ts.map +1 -0
- package/lib/cjs/test/BulkExtractor.test.js +182 -0
- package/lib/cjs/test/BulkExtractor.test.js.map +1 -0
- package/lib/cjs/test/DeleteModal.test.d.ts +2 -0
- package/lib/cjs/test/DeleteModal.test.d.ts.map +1 -0
- package/lib/cjs/test/DeleteModal.test.js +93 -0
- package/lib/cjs/test/DeleteModal.test.js.map +1 -0
- package/lib/cjs/test/ReportAction.test.js +2 -3
- package/lib/cjs/test/ReportAction.test.js.map +1 -1
- package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts +2 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js +340 -0
- package/lib/cjs/test/ReportMappingHorizontalTile.test.js.map +1 -0
- package/lib/cjs/test/ReportMappings.test.js +115 -267
- package/lib/cjs/test/ReportMappings.test.js.map +1 -1
- package/lib/cjs/test/Reports.test.js +1 -1
- package/lib/cjs/test/Reports.test.js.map +1 -1
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/cjs/widget/components/ActionPanel.js +4 -5
- package/lib/cjs/widget/components/ActionPanel.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.d.ts +2 -2
- package/lib/cjs/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.js +5 -4
- package/lib/cjs/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/cjs/widget/components/AddMappingsModal.scss +4 -3
- package/lib/cjs/widget/components/BulkExtractor.d.ts +18 -9
- package/lib/cjs/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/cjs/widget/components/BulkExtractor.js +86 -57
- package/lib/cjs/widget/components/BulkExtractor.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.js +1 -1
- package/lib/cjs/widget/components/DeleteModal.js.map +1 -1
- package/lib/cjs/widget/components/DeleteModal.scss +4 -3
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js +1 -1
- package/lib/cjs/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js +1 -1
- package/lib/cjs/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
- package/lib/cjs/widget/components/ExtractionStatus.scss +15 -1
- package/lib/cjs/widget/components/ExtractionToast.d.ts +11 -0
- package/lib/cjs/widget/components/ExtractionToast.d.ts.map +1 -0
- package/lib/cjs/widget/components/ExtractionToast.js +33 -0
- package/lib/cjs/widget/components/ExtractionToast.js.map +1 -0
- package/lib/cjs/widget/components/HorizontalTile.scss +1 -1
- package/lib/cjs/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportAction.js +3 -3
- package/lib/cjs/widget/components/ReportAction.js.map +1 -1
- package/lib/cjs/widget/components/ReportAction.scss +2 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportHorizontalTile.js +1 -2
- package/lib/cjs/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js +82 -0
- package/lib/cjs/widget/components/ReportMappingHorizontalTile.js.map +1 -0
- package/lib/cjs/widget/components/ReportMappings.d.ts +3 -1
- package/lib/cjs/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.js +39 -40
- package/lib/cjs/widget/components/ReportMappings.js.map +1 -1
- package/lib/cjs/widget/components/ReportMappings.scss +7 -7
- package/lib/cjs/widget/components/Reports.d.ts.map +1 -1
- package/lib/cjs/widget/components/Reports.js +13 -6
- package/lib/cjs/widget/components/Reports.js.map +1 -1
- package/lib/cjs/widget/components/Reports.scss +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js +1 -1
- package/lib/cjs/widget/components/ReportsContainer.js.map +1 -1
- package/lib/cjs/widget/components/ReportsContainer.scss +2 -2
- package/lib/cjs/widget/components/SelectIModel.js +2 -2
- package/lib/cjs/widget/components/SelectIModel.js.map +1 -1
- package/lib/cjs/widget/components/SelectIModel.scss +4 -3
- 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 +2 -2
- package/lib/esm/test/AddMappingModal.test.d.ts +2 -0
- package/lib/esm/test/AddMappingModal.test.d.ts.map +1 -0
- package/lib/esm/test/AddMappingModal.test.js +253 -0
- package/lib/esm/test/AddMappingModal.test.js.map +1 -0
- package/lib/esm/test/BulkExtractor.test.d.ts +2 -0
- package/lib/esm/test/BulkExtractor.test.d.ts.map +1 -0
- package/lib/esm/test/BulkExtractor.test.js +158 -0
- package/lib/esm/test/BulkExtractor.test.js.map +1 -0
- package/lib/esm/test/DeleteModal.test.d.ts +2 -0
- package/lib/esm/test/DeleteModal.test.d.ts.map +1 -0
- package/lib/esm/test/DeleteModal.test.js +69 -0
- package/lib/esm/test/DeleteModal.test.js.map +1 -0
- package/lib/esm/test/ReportAction.test.js +2 -3
- package/lib/esm/test/ReportAction.test.js.map +1 -1
- package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts +2 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.d.ts.map +1 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.js +316 -0
- package/lib/esm/test/ReportMappingHorizontalTile.test.js.map +1 -0
- package/lib/esm/test/ReportMappings.test.js +117 -269
- package/lib/esm/test/ReportMappings.test.js.map +1 -1
- package/lib/esm/test/Reports.test.js +1 -1
- package/lib/esm/test/Reports.test.js.map +1 -1
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/widget/components/ActionPanel.d.ts.map +1 -1
- package/lib/esm/widget/components/ActionPanel.js +4 -5
- package/lib/esm/widget/components/ActionPanel.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.d.ts +2 -2
- package/lib/esm/widget/components/AddMappingsModal.d.ts.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.js +4 -5
- package/lib/esm/widget/components/AddMappingsModal.js.map +1 -1
- package/lib/esm/widget/components/AddMappingsModal.scss +4 -3
- package/lib/esm/widget/components/BulkExtractor.d.ts +18 -9
- package/lib/esm/widget/components/BulkExtractor.d.ts.map +1 -1
- package/lib/esm/widget/components/BulkExtractor.js +86 -57
- package/lib/esm/widget/components/BulkExtractor.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.js +1 -1
- package/lib/esm/widget/components/DeleteModal.js.map +1 -1
- package/lib/esm/widget/components/DeleteModal.scss +4 -3
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js +1 -1
- package/lib/esm/widget/components/ExtractionStates/RunningExtractionState.js.map +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.d.ts.map +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js +1 -1
- package/lib/esm/widget/components/ExtractionStates/SucceededExtractionState.js.map +1 -1
- package/lib/esm/widget/components/ExtractionStatus.scss +15 -1
- package/lib/esm/widget/components/ExtractionToast.d.ts +11 -0
- package/lib/esm/widget/components/ExtractionToast.d.ts.map +1 -0
- package/lib/esm/widget/components/ExtractionToast.js +25 -0
- package/lib/esm/widget/components/ExtractionToast.js.map +1 -0
- package/lib/esm/widget/components/HorizontalTile.scss +1 -1
- package/lib/esm/widget/components/ReportAction.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportAction.js +3 -3
- package/lib/esm/widget/components/ReportAction.js.map +1 -1
- package/lib/esm/widget/components/ReportAction.scss +2 -2
- package/lib/esm/widget/components/ReportHorizontalTile.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportHorizontalTile.js +1 -2
- package/lib/esm/widget/components/ReportHorizontalTile.js.map +1 -1
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts +13 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.d.ts.map +1 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js +75 -0
- package/lib/esm/widget/components/ReportMappingHorizontalTile.js.map +1 -0
- package/lib/esm/widget/components/ReportMappings.d.ts +3 -1
- package/lib/esm/widget/components/ReportMappings.d.ts.map +1 -1
- package/lib/esm/widget/components/ReportMappings.js +40 -41
- package/lib/esm/widget/components/ReportMappings.js.map +1 -1
- package/lib/esm/widget/components/ReportMappings.scss +7 -7
- package/lib/esm/widget/components/Reports.d.ts.map +1 -1
- package/lib/esm/widget/components/Reports.js +15 -8
- package/lib/esm/widget/components/Reports.js.map +1 -1
- package/lib/esm/widget/components/Reports.scss +1 -1
- package/lib/esm/widget/components/ReportsContainer.js +1 -1
- package/lib/esm/widget/components/ReportsContainer.js.map +1 -1
- package/lib/esm/widget/components/ReportsContainer.scss +2 -2
- package/lib/esm/widget/components/SelectIModel.js +2 -2
- package/lib/esm/widget/components/SelectIModel.js.map +1 -1
- package/lib/esm/widget/components/SelectIModel.scss +4 -3
- package/lib/esm/widget/components/utils.js +1 -1
- package/lib/esm/widget/components/utils.js.map +1 -1
- package/lib/esm/widget/components/utils.scss +2 -2
- package/lib/public/locales/en/ReportsConfigWidget.json +5 -0
- package/package.json +7 -4
- package/public/locales/en/ReportsConfigWidget.json +5 -0
- package/reports-config-widget-react.build.error.log +10 -6
- package/reports-config-widget-react.build.log +51 -46
- package/src/test/AddMappingModal.test.tsx +315 -0
- package/src/test/BulkExtractor.test.ts +301 -0
- package/src/test/DeleteModal.test.tsx +118 -0
- package/src/test/ReportAction.test.tsx +2 -4
- package/src/test/ReportMappingHorizontalTile.test.tsx +451 -0
- package/src/test/ReportMappings.test.tsx +154 -549
- package/src/test/Reports.test.tsx +1 -1
- package/src/widget/components/ActionPanel.tsx +19 -23
- package/src/widget/components/AddMappingsModal.scss +4 -3
- package/src/widget/components/AddMappingsModal.tsx +4 -6
- package/src/widget/components/BulkExtractor.ts +97 -61
- package/src/widget/components/DeleteModal.scss +4 -3
- package/src/widget/components/DeleteModal.tsx +1 -1
- package/src/widget/components/ExtractionStates/RunningExtractionState.tsx +1 -1
- package/src/widget/components/ExtractionStates/SucceededExtractionState.tsx +1 -0
- package/src/widget/components/ExtractionStatus.scss +15 -1
- package/src/widget/components/ExtractionToast.tsx +41 -0
- package/src/widget/components/HorizontalTile.scss +1 -1
- package/src/widget/components/ReportAction.scss +2 -2
- package/src/widget/components/ReportAction.tsx +1 -3
- package/src/widget/components/ReportHorizontalTile.tsx +1 -2
- package/src/widget/components/ReportMappingHorizontalTile.tsx +128 -0
- package/src/widget/components/ReportMappings.scss +7 -7
- package/src/widget/components/ReportMappings.tsx +89 -105
- package/src/widget/components/Reports.scss +1 -1
- package/src/widget/components/Reports.tsx +18 -8
- package/src/widget/components/ReportsContainer.scss +2 -2
- package/src/widget/components/ReportsContainer.tsx +1 -1
- package/src/widget/components/SelectIModel.scss +4 -3
- package/src/widget/components/SelectIModel.tsx +2 -2
- package/src/widget/components/utils.scss +2 -2
- package/src/widget/components/utils.tsx +1 -1
- package/coverage/lcov-report/src/widget/components/Extraction.tsx.html +0 -1030
- package/lib/cjs/widget/components/Extraction.d.ts +0 -28
- package/lib/cjs/widget/components/Extraction.d.ts.map +0 -1
- package/lib/cjs/widget/components/Extraction.js +0 -190
- package/lib/cjs/widget/components/Extraction.js.map +0 -1
- package/lib/cjs/widget/components/Extraction.scss +0 -39
- package/lib/esm/widget/components/Extraction.d.ts +0 -28
- package/lib/esm/widget/components/Extraction.d.ts.map +0 -1
- package/lib/esm/widget/components/Extraction.js +0 -166
- package/lib/esm/widget/components/Extraction.js.map +0 -1
- package/lib/esm/widget/components/Extraction.scss +0 -39
- package/src/widget/components/Extraction.scss +0 -39
- package/src/widget/components/Extraction.tsx +0 -315
|
@@ -31,19 +31,13 @@ const faker_1 = __importDefault(require("@faker-js/faker"));
|
|
|
31
31
|
require("@testing-library/jest-dom");
|
|
32
32
|
const core_frontend_1 = require("@itwin/core-frontend");
|
|
33
33
|
const ReportsConfigWidget_1 = require("../ReportsConfigWidget");
|
|
34
|
-
const node_1 = require("msw/node");
|
|
35
34
|
const test_utils_1 = require("./test-utils");
|
|
36
|
-
const user_event_1 = __importDefault(require("@testing-library/user-event"));
|
|
37
35
|
const moq = __importStar(require("typemoq"));
|
|
38
|
-
const msw_1 = require("msw");
|
|
39
|
-
const insights_client_1 = require("@itwin/insights-client");
|
|
40
36
|
const ReportMappings_1 = require("../widget/components/ReportMappings");
|
|
41
37
|
const imodels_client_management_1 = require("@itwin/imodels-client-management");
|
|
42
|
-
const ReportsConfigUiProvider_1 = require("../widget/ReportsConfigUiProvider");
|
|
43
|
-
const Extraction_1 = require("../widget/components/Extraction");
|
|
44
38
|
const presentation_frontend_1 = require("@itwin/presentation-frontend");
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
40
|
+
const core_common_1 = require("@itwin/core-common");
|
|
47
41
|
const mockITwinId = faker_1.default.datatype.uuid();
|
|
48
42
|
// Lets work with two iModels for now.
|
|
49
43
|
const mockIModelId1 = faker_1.default.datatype.uuid();
|
|
@@ -184,23 +178,61 @@ const mockMappingsFactory = (mockReportMappings) => {
|
|
|
184
178
|
},
|
|
185
179
|
},
|
|
186
180
|
}));
|
|
187
|
-
|
|
188
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mapping));
|
|
189
|
-
}));
|
|
190
|
-
return [mockMappings, iModelHandlers];
|
|
181
|
+
return mockMappings;
|
|
191
182
|
};
|
|
192
183
|
const connectionMock = moq.Mock.ofType();
|
|
184
|
+
const mockBulkExtractor = moq.Mock.ofType();
|
|
193
185
|
const selectionManagerMock = moq.Mock.ofType();
|
|
194
186
|
const selectionScopesManagerMock = moq.Mock.ofType();
|
|
187
|
+
const mockIModelsClient = moq.Mock.ofType();
|
|
188
|
+
jest.mock("../widget/components/Constants.ts", () => ({
|
|
189
|
+
STATUS_CHECK_INTERVAL: 10,
|
|
190
|
+
}));
|
|
191
|
+
jest.mock("../widget/components/ReportMappingHorizontalTile", () => ({
|
|
192
|
+
ReportMappingHorizontalTile: (props) => {
|
|
193
|
+
return (react_1.default.createElement("div", { "data-testid": "horizontal-tile" },
|
|
194
|
+
react_1.default.createElement(itwinui_react_1.Text, null, props.mapping.mappingName),
|
|
195
|
+
react_1.default.createElement(itwinui_react_1.Text, { title: props.mapping.mappingDescription }, props.mapping.iModelName)));
|
|
196
|
+
},
|
|
197
|
+
}));
|
|
195
198
|
jest.mock("@itwin/appui-react", () => ({
|
|
196
199
|
...jest.requireActual("@itwin/appui-react"),
|
|
197
200
|
useActiveIModelConnection: () => connectionMock.object,
|
|
198
201
|
}));
|
|
199
|
-
|
|
202
|
+
let returnFn;
|
|
203
|
+
jest.mock("../widget/components/AddMappingsModal", () => ({
|
|
204
|
+
...jest.requireActual("../widget/components/AddMappingsModal"),
|
|
205
|
+
AddMappingsModal: (props) => {
|
|
206
|
+
returnFn = props.returnFn;
|
|
207
|
+
return react_1.default.createElement("div", { "data-testid": "add-mappings-modal" });
|
|
208
|
+
},
|
|
209
|
+
}));
|
|
210
|
+
jest.mock("@itwin/imodels-client-management", () => ({
|
|
211
|
+
...jest.requireActual("@itwin/imodels-client-management"),
|
|
212
|
+
IModelsClient: jest.fn().mockImplementation(() => ({
|
|
213
|
+
iModels: mockIModelsClient.object,
|
|
214
|
+
})),
|
|
215
|
+
toArray: jest.fn().mockImplementation(async () => {
|
|
216
|
+
return mockProjectIModels.iModels;
|
|
217
|
+
}),
|
|
218
|
+
}));
|
|
219
|
+
const mockGetMapping = jest.fn();
|
|
220
|
+
const mockGetMappings = jest.fn();
|
|
221
|
+
const mockGetReportMappings = jest.fn();
|
|
222
|
+
const mockDeleteReportMapping = jest.fn();
|
|
223
|
+
jest.mock("@itwin/insights-client", () => ({
|
|
224
|
+
...jest.requireActual("@itwin/insights-client"),
|
|
225
|
+
MappingsClient: jest.fn().mockImplementation(() => ({
|
|
226
|
+
getMapping: mockGetMapping,
|
|
227
|
+
getMappings: mockGetMappings,
|
|
228
|
+
})),
|
|
229
|
+
ReportsClient: jest.fn().mockImplementation(() => ({
|
|
230
|
+
getReportMappings: mockGetReportMappings,
|
|
231
|
+
deleteReportMapping: mockDeleteReportMapping,
|
|
232
|
+
})),
|
|
233
|
+
}));
|
|
200
234
|
beforeAll(async () => {
|
|
201
|
-
|
|
202
|
-
global.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest; // eslint-disable-line @typescript-eslint/no-var-requires
|
|
203
|
-
await core_frontend_1.NoRenderApp.startup();
|
|
235
|
+
await core_frontend_1.NoRenderApp.startup({ localization: new core_common_1.EmptyLocalization() });
|
|
204
236
|
await presentation_frontend_1.Presentation.initialize();
|
|
205
237
|
const selectionSet = moq.Mock.ofType();
|
|
206
238
|
const onChanged = moq.Mock.ofType();
|
|
@@ -223,53 +255,46 @@ beforeAll(async () => {
|
|
|
223
255
|
presentation_frontend_1.Presentation.setSelectionManager(selectionManagerMock.object);
|
|
224
256
|
await test_utils_1.TestUtils.initializeUiFramework(connectionMock.object);
|
|
225
257
|
await ReportsConfigWidget_1.ReportsConfigWidget.initialize();
|
|
226
|
-
server.listen();
|
|
227
258
|
});
|
|
228
259
|
afterAll(() => {
|
|
229
260
|
test_utils_1.TestUtils.terminateUiFramework();
|
|
230
|
-
server.close();
|
|
231
261
|
});
|
|
232
262
|
afterEach(() => {
|
|
233
|
-
|
|
263
|
+
mockGetMapping.mockReset();
|
|
264
|
+
mockGetMappings.mockReset();
|
|
265
|
+
mockGetReportMappings.mockReset();
|
|
266
|
+
mockDeleteReportMapping.mockReset();
|
|
267
|
+
mockIModelsClient.reset();
|
|
268
|
+
mockBulkExtractor.reset();
|
|
234
269
|
});
|
|
235
270
|
describe("Report Mappings View", () => {
|
|
236
271
|
it("shows all report mappings", async () => {
|
|
237
|
-
var _a, _b;
|
|
238
272
|
const mockReportMappings = mockReportMappingsFactory();
|
|
239
|
-
const
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
273
|
+
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
274
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
275
|
+
.returns(async () => mockIModelsResponse[0].iModel);
|
|
276
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId2 })))
|
|
277
|
+
.returns(async () => mockIModelsResponse[1].iModel);
|
|
278
|
+
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
279
|
+
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
280
|
+
test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, bulkExtractor: mockBulkExtractor.object, goBack: jest.fn() }));
|
|
248
281
|
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
249
282
|
const horizontalTiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
250
|
-
|
|
251
|
-
for (const [index, horizontalTile] of horizontalTiles.entries()) {
|
|
252
|
-
const reportMappingTile = test_utils_1.within(horizontalTile);
|
|
253
|
-
const mockiModel = mockIModelsResponse.find((iModel) => iModel.iModel.id === mockMappings[index].mapping._links.imodel.href);
|
|
254
|
-
expect(reportMappingTile.getByText(mockMappings[index].mapping.mappingName)).toBeInTheDocument();
|
|
255
|
-
expect(reportMappingTile.getByTitle((_a = mockMappings[index].mapping.description) !== null && _a !== void 0 ? _a : "")).toBeInTheDocument();
|
|
256
|
-
expect(reportMappingTile.getByText((_b = mockiModel === null || mockiModel === void 0 ? void 0 : mockiModel.iModel.displayName) !== null && _b !== void 0 ? _b : "")).toBeInTheDocument();
|
|
257
|
-
}
|
|
283
|
+
assertHorizontalTiles(horizontalTiles, mockMappings);
|
|
258
284
|
});
|
|
259
285
|
it("search for a report mapping", async () => {
|
|
260
286
|
var _a, _b, _c, _d;
|
|
261
287
|
const mockReportMappings = mockReportMappingsFactory();
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
}
|
|
270
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
288
|
+
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
289
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
290
|
+
.returns(async () => mockIModelsResponse[0].iModel);
|
|
291
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId2 })))
|
|
292
|
+
.returns(async () => mockIModelsResponse[1].iModel);
|
|
293
|
+
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
294
|
+
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
295
|
+
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, bulkExtractor: mockBulkExtractor.object, goBack: jest.fn() }));
|
|
271
296
|
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
272
|
-
const searchButton = test_utils_1.within(test_utils_1.screen.getByTestId(/search-bar/i)).getByRole("button");
|
|
297
|
+
const searchButton = test_utils_1.within(test_utils_1.screen.getByTestId(/rcw-search-bar/i)).getByRole("button");
|
|
273
298
|
await user.click(searchButton);
|
|
274
299
|
const searchInput = test_utils_1.screen.getByRole("textbox", {
|
|
275
300
|
name: /search\-textbox/i,
|
|
@@ -290,133 +315,33 @@ describe("Report Mappings View", () => {
|
|
|
290
315
|
expect(test_utils_1.screen.getAllByTestId("horizontal-tile")).toHaveLength(1);
|
|
291
316
|
expect(test_utils_1.screen.getByText((_d = iModel === null || iModel === void 0 ? void 0 : iModel.iModel.displayName) !== null && _d !== void 0 ? _d : "")).toBeInTheDocument();
|
|
292
317
|
});
|
|
293
|
-
it("remove a report mapping", async () => {
|
|
294
|
-
const mockReportMappings = mockReportMappingsFactory();
|
|
295
|
-
const [_, iModelHandlers] = mockMappingsFactory(mockReportMappings);
|
|
296
|
-
const mockReportMappingsOriginalSize = mockReportMappings.mappings.length;
|
|
297
|
-
server.use(msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings`, async (_req, res, ctx) => {
|
|
298
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockReportMappings));
|
|
299
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId1}`, async (_req, res, ctx) => {
|
|
300
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[0]));
|
|
301
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId2}`, async (_req, res, ctx) => {
|
|
302
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[1]));
|
|
303
|
-
}), ...iModelHandlers, msw_1.rest.delete(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings/${mockReportMappings.mappings[0].mappingId}`, async (_req, res, ctx) => {
|
|
304
|
-
mockReportMappings.mappings = mockReportMappings.mappings.filter((mapping) => mapping.mappingId !== mockReportMappings.mappings[0].mappingId);
|
|
305
|
-
return res(ctx.delay(100), ctx.status(204));
|
|
306
|
-
}));
|
|
307
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
308
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
309
|
-
const firstMenuDropdown = test_utils_1.within(test_utils_1.screen.getAllByTestId(/tile-action-button/i)[0]).getByRole("button");
|
|
310
|
-
await user.click(firstMenuDropdown);
|
|
311
|
-
const removeButton = test_utils_1.screen.getByRole("menuitem", { name: /remove/i });
|
|
312
|
-
await user.click(removeButton);
|
|
313
|
-
// Delete modal dialog should appear
|
|
314
|
-
expect(test_utils_1.screen.getByRole("dialog")).toBeInTheDocument();
|
|
315
|
-
const deleteButton = test_utils_1.screen.getByRole("button", {
|
|
316
|
-
name: /delete/i,
|
|
317
|
-
});
|
|
318
|
-
await user.click(deleteButton);
|
|
319
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByTestId(/rcw-loading-delete/i));
|
|
320
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByRole("dialog"));
|
|
321
|
-
// Should be one less mapping
|
|
322
|
-
expect(test_utils_1.screen.getAllByTestId("horizontal-tile")).toHaveLength(mockReportMappingsOriginalSize - 1);
|
|
323
|
-
});
|
|
324
318
|
it("add mapping", async () => {
|
|
325
319
|
const mockReportMappings = mockReportMappingsFactory();
|
|
326
|
-
const
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
mockMappings.
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
mappingName: extraMappingName,
|
|
335
|
-
description: extraMappingDescription,
|
|
336
|
-
extractionEnabled: false,
|
|
337
|
-
createdOn: "",
|
|
338
|
-
createdBy: "",
|
|
339
|
-
modifiedOn: "",
|
|
340
|
-
modifiedBy: "",
|
|
341
|
-
_links: {
|
|
342
|
-
imodel: {
|
|
343
|
-
href: "",
|
|
344
|
-
},
|
|
345
|
-
},
|
|
346
|
-
},
|
|
347
|
-
});
|
|
348
|
-
const mockMappingsResponse = {
|
|
349
|
-
// Type guarding
|
|
350
|
-
mappings: mockMappings
|
|
351
|
-
.map((mapping) => mapping.mapping)
|
|
352
|
-
.filter((mapping) => !!mapping),
|
|
353
|
-
_links: {
|
|
354
|
-
next: undefined,
|
|
355
|
-
self: {
|
|
356
|
-
href: "",
|
|
357
|
-
},
|
|
358
|
-
},
|
|
359
|
-
};
|
|
360
|
-
server.use(msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings`, async (_req, res, ctx) => {
|
|
361
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockReportMappings));
|
|
362
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}`, async (_req, res, ctx) => {
|
|
363
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockProjectIModels));
|
|
364
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId1}`, async (_req, res, ctx) => {
|
|
365
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[0]));
|
|
366
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId2}`, async (_req, res, ctx) => {
|
|
367
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[1]));
|
|
368
|
-
}), msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/datasources/imodels/${mockProjectIModels.iModels[0].id}/mappings`, async (_req, res, ctx) => {
|
|
369
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockMappingsResponse));
|
|
370
|
-
}), msw_1.rest.post(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings`, async (_req, res, ctx) => {
|
|
371
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockReportMappings));
|
|
372
|
-
}), ...iModelHandlers);
|
|
373
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
320
|
+
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
321
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
322
|
+
.returns(async () => mockIModelsResponse[0].iModel);
|
|
323
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId2 })))
|
|
324
|
+
.returns(async () => mockIModelsResponse[1].iModel);
|
|
325
|
+
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
326
|
+
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
327
|
+
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, bulkExtractor: mockBulkExtractor.object, goBack: jest.fn() }));
|
|
374
328
|
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
329
|
+
mockGetMappings.mockReturnValueOnce(mockMappings.map((m) => m.mapping));
|
|
375
330
|
const addMappingButton = test_utils_1.screen.getByRole("button", {
|
|
376
331
|
name: /addmapping/i,
|
|
377
332
|
});
|
|
378
333
|
await user.click(addMappingButton);
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
const withinModal = test_utils_1.within(modal);
|
|
384
|
-
expect(withinModal.getByText(/addmappings/i)).toBeInTheDocument();
|
|
385
|
-
const addButton = withinModal.getByRole("button", {
|
|
386
|
-
name: /add/i,
|
|
387
|
-
});
|
|
388
|
-
// Add button should be disabled
|
|
389
|
-
expect(addButton).toBeDisabled();
|
|
390
|
-
// Already mapped mappings are disabled
|
|
391
|
-
for (let i = 0; i < mockMappings.length - 1; i++) {
|
|
392
|
-
const row = test_utils_1.screen.getByRole("row", {
|
|
393
|
-
name: new RegExp(`${mockMappings[i].mapping.mappingName} ${mockMappings[i].mapping.description}`, "i"),
|
|
394
|
-
});
|
|
395
|
-
const checkbox = test_utils_1.within(row).getByRole("checkbox");
|
|
396
|
-
expect(checkbox).toBeDisabled();
|
|
397
|
-
}
|
|
398
|
-
// Click on checkbox on new mapping
|
|
399
|
-
const unmappedRow = test_utils_1.screen.getByRole("row", {
|
|
400
|
-
name: new RegExp(`${mockMappings[mockMappings.length - 1].mapping.mappingName} ${mockMappings[mockMappings.length - 1].mapping.description}`, "i"),
|
|
334
|
+
const addMappingsModal = await test_utils_1.screen.findByTestId("add-mappings-modal");
|
|
335
|
+
expect(addMappingsModal).toBeInTheDocument();
|
|
336
|
+
await test_utils_1.act(async () => {
|
|
337
|
+
await returnFn();
|
|
401
338
|
});
|
|
402
|
-
const
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
// Modal should go away
|
|
406
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByTestId(/rcw-action-loading-spinner/i));
|
|
407
|
-
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByRole("dialog"));
|
|
339
|
+
const horizontalTiles = test_utils_1.screen.getAllByTestId("horizontal-tile");
|
|
340
|
+
assertHorizontalTiles(horizontalTiles, mockMappings);
|
|
341
|
+
expect(mockGetReportMappings).toBeCalledTimes(2);
|
|
408
342
|
});
|
|
409
343
|
it("odata feed url", async () => {
|
|
410
|
-
const
|
|
411
|
-
const [_, iModelHandlers] = mockMappingsFactory(mockReportMappings);
|
|
412
|
-
server.use(msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings`, async (_req, res, ctx) => {
|
|
413
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockReportMappings));
|
|
414
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId1}`, async (_req, res, ctx) => {
|
|
415
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[0]));
|
|
416
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId2}`, async (_req, res, ctx) => {
|
|
417
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[1]));
|
|
418
|
-
}), ...iModelHandlers);
|
|
419
|
-
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
344
|
+
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, bulkExtractor: mockBulkExtractor.object, goBack: jest.fn() }));
|
|
420
345
|
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
421
346
|
const urlTextbox = test_utils_1.screen.getByRole("textbox", {
|
|
422
347
|
name: /odatafeedurl/i,
|
|
@@ -429,111 +354,34 @@ describe("Report Mappings View", () => {
|
|
|
429
354
|
await user.click(copyButton);
|
|
430
355
|
expect(test_utils_1.screen.getByText(/copiedtoclipboard/i)).toBeInTheDocument();
|
|
431
356
|
});
|
|
432
|
-
it("
|
|
357
|
+
it("update all datasets", async () => {
|
|
433
358
|
const mockReportMappings = mockReportMappingsFactory();
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
const
|
|
444
|
-
const mockExtractionResponse = {
|
|
445
|
-
run: {
|
|
446
|
-
id: mockRunId,
|
|
447
|
-
_links: {
|
|
448
|
-
status: {
|
|
449
|
-
href: "",
|
|
450
|
-
},
|
|
451
|
-
},
|
|
452
|
-
},
|
|
453
|
-
};
|
|
454
|
-
let mockStatusResponse = {
|
|
455
|
-
status: {
|
|
456
|
-
state: insights_client_1.ExtractorState.Queued,
|
|
457
|
-
reason: "",
|
|
458
|
-
containsIssues: false,
|
|
459
|
-
_links: {
|
|
460
|
-
logs: {
|
|
461
|
-
href: "",
|
|
462
|
-
},
|
|
463
|
-
},
|
|
464
|
-
},
|
|
465
|
-
};
|
|
466
|
-
server.use(msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/reports/${mockReportId}/datasources/imodelMappings`, async (_req, res, ctx) => {
|
|
467
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockReportMappings));
|
|
468
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId1}`, async (_req, res, ctx) => {
|
|
469
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[0]));
|
|
470
|
-
}), msw_1.rest.get(`${imodels_client_management_1.Constants.api.baseUrl}/${mockIModelId2}`, async (_req, res, ctx) => {
|
|
471
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockIModelsResponse[1]));
|
|
472
|
-
}), ...iModelHandlers, msw_1.rest.post(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/datasources/imodels/${mockIModel.id}/extraction/run`, async (_req, res, ctx) => {
|
|
473
|
-
return res(ctx.delay(800), ctx.status(200), ctx.json(mockExtractionResponse));
|
|
474
|
-
}), msw_1.rest.get(`${ReportsConfigUiProvider_1.REPORTS_CONFIG_BASE_URL}/insights/reporting/datasources/extraction/status/${mockRunId}`, async (_req, res, ctx) => {
|
|
475
|
-
return res(ctx.delay(), ctx.status(200), ctx.json(mockStatusResponse));
|
|
476
|
-
}));
|
|
477
|
-
test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, goBack: jest.fn() }));
|
|
478
|
-
// https://github.com/testing-library/user-event/issues/833
|
|
479
|
-
const user = user_event_1.default.setup({ delay: null });
|
|
359
|
+
const mockMappings = mockMappingsFactory(mockReportMappings);
|
|
360
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId1 })))
|
|
361
|
+
.returns(async () => mockIModelsResponse[0].iModel);
|
|
362
|
+
mockIModelsClient.setup(async (x) => x.getSingle(moq.It.isObjectWith({ iModelId: mockIModelId2 })))
|
|
363
|
+
.returns(async () => mockIModelsResponse[1].iModel);
|
|
364
|
+
mockGetMapping.mockReturnValueOnce(mockMappings[0].mapping).mockReturnValueOnce(mockMappings[1].mapping);
|
|
365
|
+
mockGetReportMappings.mockReturnValueOnce(mockReportMappings.mappings);
|
|
366
|
+
const iModels = mockIModelsResponse.map((iModel) => iModel.iModel.id);
|
|
367
|
+
mockBulkExtractor.setup(async (x) => x.runIModelExtractions(iModels)).returns(async () => Promise.resolve());
|
|
368
|
+
const { user } = test_utils_1.render(react_1.default.createElement(ReportMappings_1.ReportMappings, { report: mockReport, bulkExtractor: mockBulkExtractor.object, goBack: jest.fn() }));
|
|
480
369
|
await test_utils_1.waitForElementToBeRemoved(() => test_utils_1.screen.getByText(/loading/i));
|
|
481
|
-
const
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
const option = test_utils_1.screen.getByRole("menuitem", {
|
|
486
|
-
name: mockIModel.displayName,
|
|
487
|
-
});
|
|
488
|
-
await user.click(option);
|
|
489
|
-
// Combobox should have correct status
|
|
490
|
-
const extractionComponent = test_utils_1.screen.getByTestId("extraction-combo-box");
|
|
491
|
-
expect(test_utils_1.within(extractionComponent).getByDisplayValue(mockIModel.displayName)).toBeInTheDocument();
|
|
492
|
-
// Should be two in the document. One in the status and the other in the list.
|
|
493
|
-
// TODO Assert that it is in the correct HorizontalTile
|
|
494
|
-
const startingStates = await test_utils_1.screen.findAllByTitle(/starting/i);
|
|
495
|
-
expect(startingStates).toHaveLength(2);
|
|
496
|
-
const loadingStates = await test_utils_1.screen.findAllByTitle(/loading/i);
|
|
497
|
-
expect(loadingStates).toHaveLength(2);
|
|
498
|
-
// act(() => {
|
|
499
|
-
// jest.advanceTimersByTime(2000)
|
|
500
|
-
// });
|
|
501
|
-
const queuedStates = await test_utils_1.screen.findAllByTitle(/queued/i, undefined, {
|
|
502
|
-
timeout: delay,
|
|
503
|
-
});
|
|
504
|
-
expect(queuedStates).toHaveLength(2);
|
|
505
|
-
mockStatusResponse = {
|
|
506
|
-
status: {
|
|
507
|
-
state: insights_client_1.ExtractorState.Running,
|
|
508
|
-
reason: "",
|
|
509
|
-
containsIssues: false,
|
|
510
|
-
_links: {
|
|
511
|
-
logs: {
|
|
512
|
-
href: "",
|
|
513
|
-
},
|
|
514
|
-
},
|
|
515
|
-
},
|
|
516
|
-
};
|
|
517
|
-
const runningStates = await test_utils_1.screen.findAllByTitle(/running/i, undefined, {
|
|
518
|
-
timeout: delay,
|
|
519
|
-
});
|
|
520
|
-
expect(runningStates).toHaveLength(2);
|
|
521
|
-
mockStatusResponse = {
|
|
522
|
-
status: {
|
|
523
|
-
state: insights_client_1.ExtractorState.Succeeded,
|
|
524
|
-
reason: "",
|
|
525
|
-
containsIssues: false,
|
|
526
|
-
_links: {
|
|
527
|
-
logs: {
|
|
528
|
-
href: "",
|
|
529
|
-
},
|
|
530
|
-
},
|
|
531
|
-
},
|
|
532
|
-
};
|
|
533
|
-
const succeededStates = await test_utils_1.screen.findAllByTitle(/success/i, undefined, {
|
|
534
|
-
timeout: delay,
|
|
535
|
-
});
|
|
536
|
-
expect(succeededStates).toHaveLength(2);
|
|
370
|
+
const extractAllButton = test_utils_1.screen.getByText(/UpdateAllDatasets/i);
|
|
371
|
+
expect(extractAllButton).toBeInTheDocument();
|
|
372
|
+
await user.click(extractAllButton);
|
|
373
|
+
mockBulkExtractor.verify(async (x) => x.runIModelExtractions(iModels), moq.Times.once());
|
|
537
374
|
});
|
|
375
|
+
const assertHorizontalTiles = (horizontalTiles, mockMappings) => {
|
|
376
|
+
var _a, _b;
|
|
377
|
+
expect(horizontalTiles).toHaveLength(mockMappings.length);
|
|
378
|
+
for (const [index, horizontalTile] of horizontalTiles.entries()) {
|
|
379
|
+
const reportMappingTile = test_utils_1.within(horizontalTile);
|
|
380
|
+
const mockiModel = mockIModelsResponse.find((iModel) => iModel.iModel.id === mockMappings[index].mapping._links.imodel.href);
|
|
381
|
+
expect(reportMappingTile.getByText(mockMappings[index].mapping.mappingName)).toBeInTheDocument();
|
|
382
|
+
expect(reportMappingTile.getByTitle((_a = mockMappings[index].mapping.description) !== null && _a !== void 0 ? _a : "")).toBeInTheDocument();
|
|
383
|
+
expect(reportMappingTile.getByText((_b = mockiModel === null || mockiModel === void 0 ? void 0 : mockiModel.iModel.displayName) !== null && _b !== void 0 ? _b : "")).toBeInTheDocument();
|
|
384
|
+
}
|
|
385
|
+
};
|
|
538
386
|
});
|
|
539
387
|
//# sourceMappingURL=ReportMappings.test.js.map
|