UNPKG

@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
"use strict"; 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