import {expect, tap} from "tapbundle"; import {HaventecCloudPortal} from "../dist/index"; import * as request from "superagent"; import * as mockRequest from "superagent-mock"; import {LocalData} from "@haventec/common-js"; var mockConfig = [ { pattern: 'http://mytest.com(.*)', fixtures: function (match, params, headers) { if (match[1] === '/user?page=0&size=10') { return ({ body: {responseStatus: {"status":"SUCCESS","message":"Loaded","users":{"number":0,"size":10,"totalPages":1,"numberOfElements":1,"totalElements":1,"previousPage":false,"firstPage":true,"nextPage":false,"lastPage":true,"content":[{"username":"root","email":null,"tenancyUUID":"648bd4bf-d7b8-4c9f-9b51-433460dda0ae","lastLogin":1494309643,"dateCreated":1494309643,"provisionToken":"","locked":false,"preProvisioned":false}]}}} }); } if (match[1] === '/application/TestApplicationUUID/user?page=0&size=10') { return ({ body: {responseStatus: {"status":"SUCCESS","message":"Loaded","users":{"number":0,"size":10,"totalPages":1,"numberOfElements":1,"totalElements":1,"previousPage":false,"firstPage":true,"nextPage":false,"lastPage":true,"content":[{"username":"root","email":null,"tenancyUUID":"648bd4bf-d7b8-4c9f-9b51-433460dda0ae","lastLogin":1494309643,"dateCreated":1494309643,"provisionToken":"","locked":false,"preProvisioned":false}]}}} }); } if (match[1] === '/application/TestApplicationUUID/user/testuser') { return ({ body: {responseStatus: {"status":"SUCCESS","message":"Loaded","users":{"number":1,"size":1,"totalPages":1,"numberOfElements":1,"totalElements":1,"previousPage":false,"firstPage":true,"nextPage":false,"lastPage":true,"content":[{"username":"root","email":null,"tenancyUUID":"648bd4bf-d7b8-4c9f-9b51-433460dda0ae","lastLogin":1494309643,"dateCreated":1494309643,"provisionToken":"","locked":false,"preProvisioned":false}]}}} }); } if (match[1] === '/user/TestApplicationUUID/locked/testuser') { return ({ body: {responseStatus: {"status":"SUCCESS","message":"Locked"}} }); } if (match[1] === '/user/TestApplicationUUID/preprovision') { return ({ body: {responseStatus: {"status":"SUCCESS","message":"Loaded","users":{"number":1,"size":1,"totalPages":1,"numberOfElements":1,"totalElements":1,"previousPage":false,"firstPage":true,"nextPage":false,"lastPage":true,"content":[{"username":"aud2","email":"justincrosbie@gmail.com","tenancyUUID":"648bd4bf-d7b8-4c9f-9b51-433460dda0ae","lastLogin":1494549888,"dateCreated":1494549888,"provisionToken":"b5a01092-e1a7-4a9b-b7cd-9302ae4d03f6","locked":false,"preProvisioned":true}]}}} }); } if (match[1] === '/user/TestApplicationUUID/group/testuser') { return ({ body: {responseStatus: {"status":"SUCCESS"}} }); } return 'foo'; }, get: function (match, data) { return data; }, delete: function (match, data) { return data; }, post: function (match, data) { return data; } }, { pattern: 'http://myerrortest.com(.*)', fixtures: function (match, params, headers) { return 'foo'; }, get: function (match, data) { return data; }, post: function (match, data) { return data; } } ]; var logger = function(log) { // console.log('superagent call', log); }; tap.test("it should test HaventecCloudPortal list CloudPortal users", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.listCloudPortalUsers(0, 10); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal list Application users", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.listUsersForApplication("TestApplicationUUID", 0, 10); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal get user", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.getUser('testuser'); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal changeUserLockStatus", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.changeUserLockStatus('testuser'); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal delete a user", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.deleteUser('testuser'); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal preprovision a new user device", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.preprovision('testuser', 'testuser@haventec.com', 'AUDIT'); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal getUserGroups for a user", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.getUserGroups('testuser'); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.test("it should test HaventecCloudPortal updateUserGroups for a user", async () => { var superagentMock = mockRequest(request, mockConfig, logger); let ha = new HaventecCloudPortal("http://mytest.com", true); let ld : LocalData = new LocalData("testuser", null, null, null, null, "TestApplicationUUID", null, null, null, null, null); let groupNames = ['AUDIT', 'SUPPORT']; ha.getAuthService().getLocalDataService().setLocalData("testuser", ld); let ret = await ha.updateUserGroups('testuser', groupNames); expect(ret['responseStatus']['status']).to.be.equal("SUCCESS"); superagentMock.unset(); }); tap.start()