@mindconnect/mindconnect-nodejs
Version:
MindConnect Library for NodeJS (community based)
217 lines • 9.74 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai = require("chai");
require("url-search-params-polyfill");
const sdk_1 = require("../src/api/sdk");
const utils_1 = require("../src/api/utils");
const test_utils_1 = require("./test-utils");
chai.should();
const timeOffset = new Date().getTime();
describe("[SDK] AssetManagementClient.Assets", () => {
const auth = utils_1.loadAuth();
const sdk = new sdk_1.MindSphereSdk({
basicAuth: utils_1.decrypt(auth, "passkey.4.unit.test"),
tenant: auth.tenant,
gateway: auth.gateway
});
const am = sdk.GetAssetManagementClient();
const tenant = sdk.GetTenant();
let falconAassetId = "";
const testAsset = {
name: "MilleniumFalcon",
externalId: "SN 123456-123-123456",
description: "The ship of Han Solo and Chewbacca",
location: {
country: "Austria",
region: "Tyrol",
locality: "Innsbruck",
streetAddress: "Industriestraße 21 A/II",
postalCode: "6020",
longitude: 53.5125546,
latitude: 9.9763411
},
variables: [],
aspects: [],
fileAssignments: [],
typeId: `core.basicsite`,
timezone: "Europe/Berlin",
twinType: sdk_1.AssetManagementModels.TwinType.Performance
};
before(() => __awaiter(void 0, void 0, void 0, function* () {
yield deleteAssets(am);
testAsset.parentId = (yield am.GetRootAsset()).assetId;
testAsset.name = `Falcon_${timeOffset}_A`;
const result = yield am.PostAsset(testAsset);
falconAassetId = `${result.assetId}`;
testAsset.name = `Falcon_${timeOffset}_B`;
yield am.PostAsset(testAsset);
testAsset.name = `Falcon_${timeOffset}_C`;
yield am.PostAsset(testAsset);
}));
after(() => __awaiter(void 0, void 0, void 0, function* () {
yield deleteAssets(am);
}));
it("SDK should not be undefined", () => __awaiter(void 0, void 0, void 0, function* () {
sdk.should.not.be.undefined;
}));
it("standard properties shoud be defined", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
am.GetGateway().should.be.equal(auth.gateway);
(yield am.GetToken()).length.should.be.greaterThan(200);
(yield am.GetServiceToken()).length.should.be.greaterThan(200);
}));
it("should GET asset(s)", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const assets = yield am.GetAssets();
assets.should.not.be.undefined;
assets.should.not.be.null;
assets.page.number.should.equal(0);
assets.page.size.should.equal(10);
assets._embedded.assets.length.should.be.greaterThan(0);
}));
it("should GET asset(s) with filter", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const assets = yield am.GetAssets({
filter: JSON.stringify({
typeId: {
startsWith: `${tenant}`
}
})
});
assets.should.not.be.undefined;
assets.should.not.be.null;
assets._embedded || utils_1.throwError("there have to be some aspecttypes with that filter!");
assets._embedded.assets.length.should.be.greaterThan(0);
}));
it("should GET asset(s) with sorting", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const assets = yield am.GetAssets({
filter: JSON.stringify({
and: {
deleted: null,
name: {
startsWith: `Falcon_${timeOffset}`
}
}
}),
sort: "ASC",
page: 0,
size: 0
});
assets.should.not.be.undefined;
assets.should.not.be.null;
assets._embedded || utils_1.throwError("there have to be some assets with that filter!");
assets._embedded.assets.length.should.be.greaterThan(0);
}));
it("should GET specific asset ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetAsset(falconAassetId);
asset.should.not.be.undefined;
}));
it("should POST specific asset ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
testAsset.name = `Falcon_${timeOffset}_D`;
const asset = yield am.PostAsset(testAsset);
asset.should.not.be.null;
yield am.DeleteAsset(`${asset.assetId}`, { ifMatch: `${asset.etag}` });
}));
it("should PATCH specific asset ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
testAsset.name = `FalconE`;
const asset = yield am.PostAsset(testAsset);
asset.externalId = "12354";
const patchedAssetType = yield am.PatchAsset(`${asset.assetId}`, asset, {
ifMatch: `${asset.etag}`
});
patchedAssetType.should.not.be.null;
patchedAssetType.externalId.should.be.equal("12354");
asset.should.not.be.null;
yield am.DeleteAsset(`${asset.assetId}`, { ifMatch: `${patchedAssetType.etag}` });
}));
it("should DELETE specific asset ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
testAsset.name = `Falcon_${timeOffset}_F`;
const asset = yield am.PostAsset(testAsset);
yield am.DeleteAsset(`${asset.assetId}`, { ifMatch: `${asset.etag}` });
}));
it("should throw error on Put File assignment ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetAsset(falconAassetId);
try {
yield am.PutAssetFileAssignment(`${asset.assetId}`, "Keyword", {
fileId: "abcd"
}, { ifMatch: `${asset.etag}` });
}
catch (err) {
err.message.should.contain("abcd");
}
}));
it("should throw error on Delete File assignment ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetAsset(falconAassetId);
try {
yield am.DeleteAssetFileAssignment(`${asset.assetId}`, "xyz", { ifMatch: `${asset.etag}` });
}
catch (err) {
err.message.should.contain("xyz");
}
}));
it("should GET root asset ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetRootAsset();
asset.should.not.be.undefined;
`${asset.assetId}`.length.should.equal(32);
}));
it("should GET aspects ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetRootAsset();
const aspects = yield am.GetAspects(`${asset.assetId}`, { size: 2000 });
aspects._embedded.aspects.length.should.be.greaterThan(0);
}));
it("should GET Variables ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetRootAsset();
const variables = yield am.GetVariables(`${asset.assetId}`, { size: 2000 });
variables._embedded.variables.length.should.be.greaterThan(0);
}));
it("should PUT LOCATION ", () => __awaiter(void 0, void 0, void 0, function* () {
am.should.not.be.undefined;
const asset = yield am.GetAsset(falconAassetId);
const updatedAsset = yield am.PutAssetLocation(falconAassetId, { country: "Bosnia", locality: "Sarajevo", streetAddress: "Ferhadija 1" }, { ifMatch: `${asset.etag}` });
updatedAsset.location.country.should.be.equal("Bosnia");
updatedAsset.location.locality.should.be.equal("Sarajevo");
updatedAsset.location.streetAddress.should.be.equal("Ferhadija 1");
}));
});
function deleteAssets(am) {
return __awaiter(this, void 0, void 0, function* () {
yield test_utils_1.sleep(2000);
const assets = (yield am.GetAssets({
filter: JSON.stringify({
and: {
deleted: null,
name: {
startsWith: `Falcon_${timeOffset}`
}
}
}),
sort: "DESC",
page: 0,
size: 0
}));
yield test_utils_1.sleep(2000);
for (const x of assets._embedded.assets) {
yield am.DeleteAsset(x.assetId, { ifMatch: x.etag });
}
});
}
//# sourceMappingURL=asset-management-assets.spec.js.map