UNPKG

@itwin/insights-client

Version:

Insights client for the iTwin platform

88 lines 4.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /*--------------------------------------------------------------------------------------------- * Copyright (c) Bentley Systems, Incorporated. All rights reserved. * See LICENSE.md in the project root for license terms and full copyright notice. *--------------------------------------------------------------------------------------------*/ const chaiAsPromised = require("chai-as-promised"); const chai_1 = require("chai"); require("reflect-metadata"); const GlobalSetup_1 = require("../utils/GlobalSetup"); const Extraction_1 = require("../../grouping-and-mapping/interfaces/Extraction"); const CommonTestUtils_1 = require("../utils/imodels-client-test-utils/CommonTestUtils"); (0, chai_1.use)(chaiAsPromised); describe("EC3JobsClient (extraction schema)", () => { let configurationId; let mappingId; let extractionId; before(async () => { const newMapping = { mappingName: "TestM", iModelId: GlobalSetup_1.testIModel.id, extractionEnabled: true, }; const mapping = await GlobalSetup_1.mappingsClient.createMapping(GlobalSetup_1.accessToken, newMapping); mappingId = mapping.id; const newGroup = { groupName: "TestG", query: "select * from biscore.element limit 10", }; const group = await GlobalSetup_1.groupsClient.createGroup(GlobalSetup_1.accessToken, mapping.id, newGroup); const extractionRequestDetails = { iModelId: GlobalSetup_1.testIModel.id, mappings: [ { id: mappingId }, ], }; const extraction = await GlobalSetup_1.extractionClient.runExtraction(GlobalSetup_1.accessToken, extractionRequestDetails); extractionId = extraction.id; let state = Extraction_1.ExtractionState.Queued; let status; for (const start = performance.now(); performance.now() - start < 6 * 60 * 1000; await (0, CommonTestUtils_1.sleep)(3000)) { status = await GlobalSetup_1.extractionClient.getExtractionStatus(GlobalSetup_1.accessToken, extraction.id); state = status.state; // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison if (state !== Extraction_1.ExtractionState.Queued && state.valueOf() !== Extraction_1.ExtractionState.Running) break; } (0, chai_1.expect)(state).to.be.eq(Extraction_1.ExtractionState.Succeeded); const material = { nameColumn: "materialName", }; const label = { name: "name", mappingId, groupName: group.groupName, elementNameColumn: "elementName", elementQuantityColumn: "elementQuantity", materials: [material], }; const newConfig = { iTwinId: GlobalSetup_1.iTwinId, iModelId: GlobalSetup_1.testIModel.id, displayName: "Test", labels: [label], }; const config = await GlobalSetup_1.configurationsClient.createConfiguration(GlobalSetup_1.accessToken, newConfig); configurationId = config.id; }); after(async () => { await GlobalSetup_1.mappingsClient.deleteMapping(GlobalSetup_1.accessToken, mappingId); await GlobalSetup_1.configurationsClient.deleteConfiguration(GlobalSetup_1.accessToken, configurationId); }); it("jobs - run extraction and get status", async () => { const newJob = { projectName: "test", ec3BearerToken: "no token :(", configurationId, extractionId, }; const job = await GlobalSetup_1.jobsClient.createJob(GlobalSetup_1.accessToken, newJob); (0, chai_1.expect)(job).to.not.be.undefined; (0, chai_1.expect)(job.id).to.not.be.undefined; const status = await GlobalSetup_1.jobsClient.getEC3JobStatus(GlobalSetup_1.accessToken, job.id); (0, chai_1.expect)(status).to.not.be.undefined; (0, chai_1.expect)(["Failed", "Running", "Queued"]).to.include(status.status); }); }); //# sourceMappingURL=EC3JobsClientExtraction.test.js.map