1 require('./new-change-management.controller');
2 const jestMock = require('jest-mock');
4 describe('Testing workFlows from SO', () => {
7 let $changeManagementService;
9 angular.mock.module('app')
12 beforeEach(inject(function (_$controller_) {
13 $notNeeded = jestMock.fn();
14 // mock ChangeManagementService
15 $changeManagementService = jestMock.fn();
16 $changeManagementService.getAllSDCServices = jestMock.fn(() => Promise.resolve([]));
20 $defer = jestMock.fn();
21 $q.defer = jestMock.fn(() => $defer);
22 $defer.promise = Promise.resolve({});
24 $aaiService = jestMock.fn();
25 $aaiService.getLoggedInUserID = jestMock.fn();
26 $aaiService.getSubscribers = jestMock.fn();
27 $controller = _$controller_('newChangeManagementModalController', {
28 $uibModalInstance: $notNeeded,
29 $uibModal: $notNeeded,
31 AaiService: $aaiService,
32 changeManagementService: $changeManagementService,
36 COMPONENT: $notNeeded,
37 VIDCONFIGURATION: $notNeeded,
38 DataService: $notNeeded,
39 featureFlags: $notNeeded,
44 test('Verify load workflows from SO will call getSOWorkflow and return only names of workflows', () => {
46 $controller.changeManagement.vnfNames = [{name: 'test1'}, {name: "test2"}];
47 let getSOWorkflowsPromiseStub = Promise.resolve({"data": [{"id": "1", "name": "workflow 1"}, {"id": "2", "name": "workflow 2"}]});
48 $changeManagementService.getSOWorkflows = () => getSOWorkflowsPromiseStub;
49 $controller.workflows = [];
51 return $controller.loadRemoteWorkFlows()
53 remoteWorkflows = $controller.remoteWorkflows.map(item => item.name);
54 expect(remoteWorkflows).toContain('workflow 1');
55 expect(remoteWorkflows).toContain('workflow 2');
60 test('Verify load workflows will call load from SO and join workflow lists', () => {
62 let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["workflow 0"]}});
63 let getSOWorkflowsPromiseStub = Promise.resolve({"data": [{"id": "1", "name": "workflow 1"}, {"id": "2", "name": "workflow 2"}]});
64 let getSOWorkflowsParametersPromiseStub = Promise.resolve({"data":{"parameterDefinitions": []}});
66 $controller.changeManagement.vnfNames = [{name: 'test1'}, {name: "test2"}];
67 $changeManagementService.getWorkflows = () => getWorkflowsStub;
68 $changeManagementService.getSOWorkflows = () => getSOWorkflowsPromiseStub;
69 $changeManagementService.getSOWorkflowParameter = () => getSOWorkflowsParametersPromiseStub;
71 return $controller.loadWorkFlows().then(() => {
72 expect($controller.workflows).toContain('workflow 0');
73 expect($controller.workflows).toContain('workflow 1');
74 expect($controller.workflows).toContain('workflow 2');
78 test('Verify load workflows will call load workflows parameters from SO', () => {
80 let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["workflow 0"]}});
81 let getSOWorkflowsPromiseStub = Promise.resolve({"data": [{"id": "1", "name": "workflow 0"}]});
82 let getSOWorkflowsParametersPromiseStub = Promise.resolve({"data":{"parameterDefinitions": [
83 {"id": 1, "name": "parameter 1", "required": true, "type": "STRING", "pattern": "[0-9]*"},
84 {"id": 2, "name": "parameter 2", "required": true, "type": "STRING", "pattern": ".*"},
85 {"id": 3, "name": "parameter 3", "required": false, "type": "STRING", "pattern": "[0-9]*"}]}});
87 $controller.changeManagement.vnfNames = [{name: 'test1'}, {name: "test2"}];
88 $changeManagementService.getWorkflows = () => getWorkflowsStub;
89 $changeManagementService.getSOWorkflows = () => getSOWorkflowsPromiseStub;
90 $changeManagementService.getSOWorkflowParameter = () => getSOWorkflowsParametersPromiseStub;
92 return $controller.loadWorkFlows()
94 expect($controller.remoteWorkflowsParameters).toEqual(new Map([["workflow 0",
95 [{"id": 1, "name": "parameter 1", "pattern": "[0-9]*", "required": true, "type": "STRING"},
96 {"id": 2, "name": "parameter 2", "pattern": ".*", "required": true, "type": "STRING"},
97 {"id": 3, "name": "parameter 3", "pattern": "[0-9]*", "required": false, "type": "STRING"}]]]));
101 test('Verify broken SO workflows wont change content of local workflows', () => {
103 let getWorkflowsStub = Promise.resolve({"data": {"workflows": ["workflow 0"]}});
104 let getSOWorkflowsPromiseStub = Promise.reject(new Error("Broken SO workflows service."));
106 $controller.changeManagement.vnfNames = "any";
107 $changeManagementService.getWorkflows = () => getWorkflowsStub;
108 $changeManagementService.getSOWorkflows = () => getSOWorkflowsPromiseStub;
110 $controller.loadWorkFlows()
112 expect($controller.workflows).toEqual(['workflow 0']);