@mindconnect/mindconnect-nodejs
Version:
NodeJS Library for Siemens Insights Hub Connectivity - TypeScript SDK for Insights Hub and Industrial IoT - Command Line Interface - Insights Hub Development Proxy (Siemens Insights Hub was formerly known as MindSphere)
260 lines • 13.1 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 });
// Copyright (C), Siemens AG 2017
const chai = require("chai");
const mocha_1 = require("mocha");
require("url-search-params-polyfill");
const src_1 = require("../src");
const sdk_1 = require("../src/api/sdk");
const sdk_2 = require("../src/api/sdk/");
const utils_1 = require("../src/api/utils");
const test_agent_setup_utils_1 = require("./test-agent-setup-utils");
const test_utils_1 = require("./test-utils");
chai.should();
describe("MindConnectApi Version 3 Agent (SHARED_SECRET) - automatic configuration", () => {
const auth = (0, utils_1.loadAuth)();
const sdk = new sdk_2.MindSphereSdk(Object.assign(Object.assign({}, auth), { basicAuth: (0, utils_1.decrypt)(auth, (0, test_utils_1.getPasskeyForUnitTest)()) }));
let agentConfig = {};
let unitTestConfiguration = {};
let secondAsset;
before(() => __awaiter(void 0, void 0, void 0, function* () {
unitTestConfiguration = yield (0, test_agent_setup_utils_1.unitTestSetup)(sdk, sdk_1.AgentManagementModels.AgentUpdate.SecurityProfileEnum.SHAREDSECRET);
agentConfig = unitTestConfiguration.agentConfig;
secondAsset = yield (0, test_agent_setup_utils_1.createUnitTestAsset)({
assetMgmt: sdk.GetAssetManagementClient(),
tenant: sdk.GetTenant(),
folderid: unitTestConfiguration.folderid,
name: "SecondUnitTestEngineInstance",
});
}));
after(() => __awaiter(void 0, void 0, void 0, function* () {
yield (0, test_agent_setup_utils_1.tearDownAgents)(sdk, unitTestConfiguration);
}));
(0, mocha_1.it)("should instantiate shared secret agent.", () => {
const agent = new src_1.MindConnectAgent(agentConfig);
agent.should.not.be.null;
agent._configuration.should.not.be.null;
agent._configuration.content.clientCredentialProfile[0].should.be.equal("SHARED_SECRET");
agent._storage.should.not.be.null;
});
(0, mocha_1.it)("should be able to automatically create and overwrite data source configuration", () => __awaiter(void 0, void 0, void 0, function* () {
const agent = new src_1.MindConnectAgent(agentConfig);
if (!agent.IsOnBoarded()) {
yield agent.OnBoard();
}
const targetAssetId = unitTestConfiguration.targetAsset.assetId || (0, utils_1.throwError)("invalid asset");
yield agent.ConfigureAgentForAssetId(targetAssetId, "DESCRIPTIVE", true);
yield agent.ConfigureAgentForAssetId(targetAssetId, "DESCRIPTIVE", true);
for (let index = 0; index < 15; index++) {
const values = [
{ dataPointId: "DP-Temperature", qualityCode: "0", value: "223.1" },
{ dataPointId: "DP-Pressure", qualityCode: "0", value: "244" },
{ dataPointId: "DP-Humidity", qualityCode: "0", value: "366" },
];
yield agent.PostData(values);
}
}));
(0, mocha_1.it)("should be able to create mappings to multiple assets", () => __awaiter(void 0, void 0, void 0, function* () {
var _a;
const agent = new src_1.MindConnectAgent(agentConfig);
if (!agent.IsOnBoarded()) {
yield agent.OnBoard();
}
const targetAssetId = unitTestConfiguration.targetAsset.assetId || (0, utils_1.throwError)("invalid asset");
yield agent.ConfigureAgentForAssetId(targetAssetId, "DESCRIPTIVE", true);
const mappings = agent.GenerateMappings(secondAsset.assetId);
yield agent.PutDataMappings(mappings);
(_a = agent.GetMindConnectConfiguration().mappings) === null || _a === void 0 ? void 0 : _a.length.should.be.equal(14);
const retrievedMappings = agent.GetDataMappings();
(yield retrievedMappings).length.should.be.equal(14);
for (let index = 0; index < 15; index++) {
const values = [
{ dataPointId: "DP-Temperature", qualityCode: "0", value: "223.1" },
{ dataPointId: "DP-Pressure", qualityCode: "0", value: "244" },
{ dataPointId: "DP-Humidity", qualityCode: "0", value: "366" },
];
yield agent.PostData(values);
}
}));
(0, mocha_1.it)("should delete all mappings", () => __awaiter(void 0, void 0, void 0, function* () {
const agent = new src_1.MindConnectAgent(agentConfig);
if (!agent.IsOnBoarded()) {
yield agent.OnBoard();
}
const targetAssetId = unitTestConfiguration.targetAsset.assetId || (0, utils_1.throwError)("invalid asset");
yield agent.ConfigureAgentForAssetId(targetAssetId, "DESCRIPTIVE", true);
agent.HasDataSourceConfiguration().should.be.true;
agent.HasDataMappings().should.be.true;
yield agent.DeleteAllMappings();
agent.HasDataMappings().should.be.false;
const mappings2 = yield agent.GetDataMappings();
mappings2.length.should.be.equal(0);
agent.HasDataMappings().should.be.false;
}));
(0, mocha_1.it)("should use local storage properly", () => __awaiter(void 0, void 0, void 0, function* () {
var _b, _c;
const agent = new src_1.MindConnectAgent(agentConfig);
if (!agent.IsOnBoarded()) {
yield agent.OnBoard();
}
const targetAssetId = unitTestConfiguration.targetAsset.assetId || (0, utils_1.throwError)("invalid asset");
yield agent.ConfigureAgentForAssetId(targetAssetId, "DESCRIPTIVE", true);
agent.HasDataSourceConfiguration().should.be.true;
agent.HasDataMappings().should.be.true;
const config = agent.GetMindConnectConfiguration();
(_b = config.dataSourceConfiguration) === null || _b === void 0 ? void 0 : _b.configurationId.should.eq(`CF-${agent.GetTenant()}.UnitTestEngine`);
(config.dataSourceConfiguration.dataSources[0].dataPoints.length +
config.dataSourceConfiguration.dataSources[1].dataPoints.length).should.equal(7);
(_c = agent.GetMindConnectConfiguration().mappings) === null || _c === void 0 ? void 0 : _c.length.should.equal(7);
const mappings = yield agent.GetDataMappings();
mappings.length.should.equal(7);
}));
(0, mocha_1.it)("should store data", () => __awaiter(void 0, void 0, void 0, function* () {
var _d, _e;
const agent = new src_1.MindConnectAgent(agentConfig);
const targetAssetId = unitTestConfiguration.targetAsset.assetId || (0, utils_1.throwError)("invalid asset");
if (!agent.IsOnBoarded()) {
yield agent.OnBoard();
}
yield agent.DeleteAllMappings();
if (!agent.HasDataSourceConfiguration()) {
const generatedConfig = yield agent.GenerateDataSourceConfiguration(`${agent.GetTenant()}.UnitTestEngine`);
yield agent.PutDataSourceConfiguration(generatedConfig);
}
if (!agent.HasDataMappings()) {
const mappings = yield agent.GenerateMappings(targetAssetId);
yield agent.PutDataMappings(mappings);
}
agent.HasDataSourceConfiguration().should.be.true;
agent.HasDataMappings().should.be.true;
const config = agent.GetMindConnectConfiguration();
(_d = config.dataSourceConfiguration) === null || _d === void 0 ? void 0 : _d.configurationId.should.eq(`CF-${agent.GetTenant()}.UnitTestEngine`);
(config.dataSourceConfiguration.dataSources[0].dataPoints.length +
config.dataSourceConfiguration.dataSources[1].dataPoints.length).should.equal(7);
(_e = agent.GetMindConnectConfiguration().mappings) === null || _e === void 0 ? void 0 : _e.length.should.equal(7);
const mappings = yield agent.GetDataMappings();
mappings.length.should.equal(7);
}));
(0, mocha_1.it)("should be able to fix double names", () => __awaiter(void 0, void 0, void 0, function* () {
const mcapi = new sdk_1.MindConnectApiClient();
const testConfig = {
id: "0226a716-4de7-4f77-8260-98cf17382ab3",
configurationId: "CF-castidev.UnitTestEngine",
dataSources: [
{
name: "DS-EnvironmentData",
customData: {
aspect: "EnvironmentData",
},
description: "",
dataPoints: [
{
id: "DP-Velocity",
name: "Velocity",
description: "",
unit: "mm/s",
type: "DOUBLE",
customData: {
variable: "Velocity",
},
},
{
id: "DP-Frequency",
name: "Frequency",
description: "",
unit: "Hz",
type: "DOUBLE",
customData: {
variable: "Frequency",
},
},
{
id: "DP-Displacement",
name: "Displacement",
description: "",
unit: "mm",
type: "DOUBLE",
customData: {
variable: "Displacement",
},
},
{
id: "DP-Acceleration",
name: "Acceleration",
description: "",
unit: "mm/s^2",
type: "DOUBLE",
customData: {
variable: "Acceleration",
},
},
],
},
{
name: "DS-EnvironmentData",
customData: {
aspect: "VibrationData",
},
description: "",
dataPoints: [
{
id: "DP-Velocity",
name: "Velocity",
description: "",
unit: "mm/s",
type: "DOUBLE",
customData: {
variable: "Velocity",
},
},
{
id: "DP-Frequency",
name: "Frequency",
description: "",
unit: "Hz",
type: "DOUBLE",
customData: {
variable: "Frequency",
},
},
{
id: "DP-Displacement",
name: "Displacement",
description: "",
unit: "mm",
type: "DOUBLE",
customData: {
variable: "Displacement",
},
},
{
id: "DP-Acceleration",
name: "Acceleration",
description: "",
unit: "mm/s^2",
type: "DOUBLE",
customData: {
variable: "Acceleration",
},
},
],
},
],
eTag: "2",
};
const fixedConfig = mcapi.CreateUniqueDataPoints(testConfig);
fixedConfig.dataSources[0].name.should.equal("DS-EnvironmentData00001");
fixedConfig.dataSources[1].name.should.equal("DS-EnvironmentData00002");
fixedConfig.dataSources[1].dataPoints[0].id.should.equal("DP-Velocity00002");
}));
});
//# sourceMappingURL=mindconnect-agent-autoconfig.spec.js.map