@itwin/insights-client
Version:
Insights client for the iTwin platform
88 lines • 4.22 kB
JavaScript
;
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