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)

305 lines 13.4 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 }); 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(); const futureTimeOffset = new Date(timeOffset + 1000 * 60 * 60 * 24); describe.skip("[SDK] ModelManagementClient.Models.Version", () => { const auth = (0, utils_1.loadAuth)(); const sdk = new sdk_1.MindSphereSdk(Object.assign(Object.assign({}, auth), { basicAuth: (0, utils_1.decrypt)(auth, (0, test_utils_1.getPasskeyForUnitTest)()) })); const modelManagement = sdk.GetModelManagementClient(); let mmModelId = ""; const testModelDefinition = { name: "NN - Quasi Newton", description: "[Version] Newton using variable metrix methods", type: "Zeppelin notebook", lastVersion: { number: 1.0, expirationDate: "2099-10-01T12:00:00.001", dependencies: [ { name: "sklearn-theano", type: "Python", version: "2.7", }, ], io: { consumes: "CSV", input: [ { name: "variablename1", type: "integer", description: "description for variablename1", value: 5, }, ], output: [ { name: "outputname1", type: "integer", description: "description for outputname1", value: 1, }, ], optionalParameters: { freeFormParams: "for the author to use", param1: "value1", }, }, kpi: [ { name: "error rate", value: "0.9", }, ], }, }; const testModelVersionDefinition = { number: 2.0, expirationDate: "2021-10-01T12:00:00.001", dependencies: [ { name: "sklearn-theano", type: "Python", version: "2.7", }, ], io: { consumes: "CSV", input: [ { name: "variablename1", type: "integer", description: "description for variablename1", value: 0, }, ], output: [ { name: "outputname1", type: "integer", description: "description for outputname1", value: 0, }, ], optionalParameters: { freeFormParams: "for the author to use", param1: "value1", }, }, kpi: [ { name: "error rate", value: "0.9", }, { name: "mse", value: "0.01", }, ], }; before(() => __awaiter(void 0, void 0, void 0, function* () { yield deleteModels(modelManagement); testModelDefinition.name = `xyz_${timeOffset}_mm_A`; const result = yield modelManagement.PostModel(testModelDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_A.txt`, mimeType: "text/plain", }); mmModelId = `${result.id}`; })); after(() => __awaiter(void 0, void 0, void 0, function* () { yield deleteModels(modelManagement); })); 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* () { modelManagement.should.not.be.undefined; modelManagement.GetGateway().should.be.equal(auth.gateway); (yield modelManagement.GetToken()).length.should.be.greaterThan(200); (yield modelManagement.GetToken()).length.should.be.greaterThan(200); })); it("should GET the last version of a model @sanity", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; const oVersion = yield modelManagement.GetModelLastVersion(`${mmModelId}`); oVersion.should.not.be.undefined; oVersion.should.not.be.null; oVersion.number.should.be.equals(`${1.0}`); })); it("should GET all versions of a model", () => __awaiter(void 0, void 0, void 0, function* () { var _a; modelManagement.should.not.be.undefined; testModelDefinition.name = `xyz_${timeOffset}_mm_version_A`; const model = yield modelManagement.PostModel(testModelDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_A.txt`, mimeType: "text/plain", }); model.should.not.be.undefined; model.should.not.be.null; const versions = yield modelManagement.GetModelVersions({ modelId: `${model.id}`, pageNumber: 0, pageSize: 100, }); versions.should.not.be.undefined; versions.should.not.be.null; versions.page.number.should.equal(0); versions.page.size.should.be.equal(1); (_a = versions.versions) === null || _a === void 0 ? void 0 : _a.length.should.be.gte(0); model.should.not.be.null; yield modelManagement.DeleteModel(`${model.id}`); })); it("should GET specific version of a model ", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; const oVersion = yield modelManagement.GetModelLastVersion(`${mmModelId}`); oVersion.should.not.be.undefined; oVersion.should.not.be.null; const sVersion = yield modelManagement.GetModelVersion(`${mmModelId}`, `${oVersion.id}`); sVersion.should.not.be.undefined; sVersion.should.not.be.null; sVersion.number.should.be.equals(oVersion.number); })); it("should POST new version of a model", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; testModelVersionDefinition.expirationDate = futureTimeOffset.toISOString(); const lastVersion = yield modelManagement.PostModelVersion(`${mmModelId}`, testModelVersionDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_B.txt`, mimeType: "text/plain", }); lastVersion.should.not.be.undefined; lastVersion.should.not.be.null; lastVersion.id.should.not.be.undefined; lastVersion.id.should.not.be.null; lastVersion.number.should.not.be.undefined; lastVersion.number.should.not.be.null; yield modelManagement.DeleteModelVersion(`${mmModelId}`, `${lastVersion.id}`); })); it("should DELETE last version of a model", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; testModelDefinition.name = `xyz_${timeOffset}_mm_version_C`; const model = yield modelManagement.PostModel(testModelDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_C.txt`, mimeType: "text/plain", }); model.should.not.be.undefined; model.should.not.be.null; testModelVersionDefinition.expirationDate = futureTimeOffset.toISOString(); const lastVersion = yield modelManagement.PostModelVersion(`${model.id}`, testModelVersionDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_D.txt`, mimeType: "text/plain", }); lastVersion.should.not.be.undefined; lastVersion.should.not.be.null; const modelVersions = yield modelManagement.GetModelVersions({ modelId: `${model.id}`, pageNumber: 0, pageSize: 100, }); modelVersions.should.not.be.undefined; modelVersions.should.not.be.null; yield modelManagement.DeleteModelLastVersion(`${model.id}`); const newmodelVersions = yield modelManagement.GetModelVersions({ modelId: `${model.id}`, pageNumber: 0, pageSize: 100, }); newmodelVersions.should.not.be.undefined; newmodelVersions.should.not.be.null; newmodelVersions.versions.length.should.be.equals(modelVersions.versions.length - 1); yield modelManagement.DeleteModel(`${model.id}`); })); it("should DELETE a specific version of a model", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; testModelDefinition.name = `xyz_${timeOffset}_mm_version_E`; const model = yield modelManagement.PostModel(testModelDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_E.txt`, mimeType: "text/plain", }); model.should.not.be.undefined; model.should.not.be.null; const oVersion = yield modelManagement.GetModelLastVersion(`${model.id}`); oVersion.should.not.be.undefined; oVersion.should.not.be.null; testModelVersionDefinition.expirationDate = futureTimeOffset.toISOString(); const lastVersion = yield modelManagement.PostModelVersion(`${model.id}`, testModelVersionDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_F.txt`, mimeType: "text/plain", }); lastVersion.should.not.be.undefined; lastVersion.should.not.be.null; yield modelManagement.DeleteModelVersion(`${model.id}`, `${oVersion.id}`); const nVersion = yield modelManagement.GetModelLastVersion(`${model.id}`); nVersion.should.not.be.undefined; nVersion.should.not.be.null; nVersion.number.should.be.equals(`${2.0}`); yield modelManagement.DeleteModel(`${model.id}`); })); it("should PATCH specific version of a model without changing the model", () => __awaiter(void 0, void 0, void 0, function* () { modelManagement.should.not.be.undefined; testModelDefinition.name = `xyz_${timeOffset}_mm_version_G`; const oModel = yield modelManagement.PostModel(testModelDefinition, { buffer: Buffer.from("xyz"), fileName: `xyz${timeOffset}_mm_version_G.txt`, mimeType: "text/plain", }); oModel.should.not.be.undefined; oModel.should.not.be.null; const oVersion = yield modelManagement.GetModelLastVersion(`${oModel.id}`); oVersion.should.not.be.undefined; oVersion.should.not.be.null; testModelVersionDefinition.expirationDate = futureTimeOffset.toISOString(); const lastVersion = yield modelManagement.PatchLastModelVersion(`${oModel.id}`, testModelVersionDefinition); lastVersion.should.not.be.undefined; lastVersion.should.not.be.null; const nVersion = yield modelManagement.GetModelLastVersion(`${oModel.id}`); nVersion.should.not.be.undefined; nVersion.should.not.be.null; nVersion.number.should.be.equals(`${2.0}`); nVersion.number.should.not.be.equals(oVersion.number); const nModel = yield modelManagement.GetModel(`${oModel.id}`); nModel.should.not.be.undefined; nModel.should.not.be.null; nModel.id.should.be.equals(oModel.id); nModel.name.should.be.equals(oModel.name); nModel.description.should.be.equals(oModel.description); yield modelManagement.DeleteModel(`${oModel.id}`); })); }); function deleteModels(mm) { return __awaiter(this, void 0, void 0, function* () { yield (0, test_utils_1.sleep)(2000); const models = (yield mm.GetModels({ filter: JSON.stringify({ name: "xyz*", }), sort: "desc", pageNumber: 0, pageSize: 1, })); yield (0, test_utils_1.sleep)(2000); for (const x of models.models) { yield mm.DeleteModel(x.id); } }); } //# sourceMappingURL=model-management-model-version.spec.js.map