@itwin/insights-client
Version:
Insights client for the iTwin platform
126 lines • 5.49 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
import * as chaiAsPromised from "chai-as-promised";
import { expect, use } from "chai";
import "reflect-metadata";
import { accessToken, configurationsClient, iTwinId, mappingsClient, testIModel } from "../utils/GlobalSetup";
use(chaiAsPromised);
describe("EC3ConfigurationsClient (extraction schema)", () => {
const configurationIds = [];
let mappingId;
let label;
before(async () => {
const mappingCreate = {
iModelId: testIModel.id,
mappingName: "foo",
};
const mapping = await mappingsClient.createMapping(accessToken, mappingCreate);
mappingId = mapping.id;
const material = {
nameColumn: "materialName",
};
label = {
name: "name",
mappingId: mapping.id,
groupName: "bar",
elementNameColumn: "elementName",
elementQuantityColumn: "elementQuantity",
materials: [material],
};
const newConfig = {
iTwinId,
iModelId: testIModel.id,
displayName: "Test1",
labels: [label],
};
let config = await configurationsClient.createConfiguration(accessToken, newConfig);
configurationIds.push(config.id);
newConfig.displayName = "Test2";
config = await configurationsClient.createConfiguration(accessToken, newConfig);
configurationIds.push(config.id);
newConfig.displayName = "Test3";
config = await configurationsClient.createConfiguration(accessToken, newConfig);
configurationIds.push(config.id);
});
after(async () => {
while (configurationIds.length > 0) {
await configurationsClient.deleteConfiguration(accessToken, configurationIds.pop());
}
await mappingsClient.deleteMapping(accessToken, mappingId);
});
it("Configurations - create and delete", async () => {
const newConfig = {
iTwinId,
iModelId: testIModel.id,
displayName: "TestConfig",
labels: [label],
};
const config = await configurationsClient.createConfiguration(accessToken, newConfig);
expect(config).to.not.be.undefined;
expect(config.displayName).to.be.eq("TestConfig");
const response = await configurationsClient.deleteConfiguration(accessToken, config.id);
expect(response.status).to.be.eq(204);
});
it("Configurations - Update", async () => {
const configUpdate = {
displayName: "Test1",
description: "Updated description",
labels: [label],
};
const config = await configurationsClient.updateConfiguration(accessToken, configurationIds[0], configUpdate);
expect(config).to.not.be.undefined;
expect(config.displayName).to.be.eq("Test1");
expect(config.description).to.be.eq("Updated description");
});
it("Configurations - Get", async () => {
const config = await configurationsClient.getConfiguration(accessToken, configurationIds[0]);
expect(config).to.not.be.undefined;
expect(config.displayName).to.be.eq("Test1");
});
it("Configurations - Get all", async () => {
const configs = await configurationsClient.getConfigurations(accessToken, iTwinId);
expect(configs).to.not.be.undefined;
expect(configs.length).to.be.above(2);
for (const config of configs) {
expect(["Test1", "Test2", "Test3"]).to.include(config.displayName);
}
});
it("Configurations - Get all with top", async () => {
const configs = await configurationsClient.getConfigurations(accessToken, iTwinId, 2);
expect(configs).to.not.be.undefined;
expect(configs.length).to.be.above(2);
for (const config of configs) {
expect(["Test1", "Test2", "Test3"]).to.include(config.displayName);
}
});
it("Configurations - Get with iterator", async () => {
const confingsIt = configurationsClient.getConfigurationsIterator(accessToken, iTwinId, 2);
let flag = false;
for await (const config of confingsIt) {
flag = true;
expect(config).to.not.be.undefined;
expect(["Test1", "Test2", "Test3"]).to.include(config.displayName);
}
expect(flag).to.be.true;
});
it("Configurations - Get pages with iterator", async () => {
const configsIt = configurationsClient.getConfigurationsIterator(accessToken, iTwinId, 2);
let elementCount = 0;
let flag = false;
for await (const configs of configsIt.byPage()) {
flag = true;
expect(configs).to.not.be.undefined;
if (configs.length) {
for (const config of configs) {
expect(["Test1", "Test2", "Test3"]).to.include(config.displayName);
}
elementCount += configs.length;
}
}
expect(flag).to.be.true;
expect(elementCount).to.not.be.eq(0);
});
});
//# sourceMappingURL=EC3ConfigurationsClientExtraction.test.js.map