diff options
Diffstat (limited to 'openecomp-ui/test/softwareProduct/processes/test.js')
-rw-r--r-- | openecomp-ui/test/softwareProduct/processes/test.js | 877 |
1 files changed, 487 insertions, 390 deletions
diff --git a/openecomp-ui/test/softwareProduct/processes/test.js b/openecomp-ui/test/softwareProduct/processes/test.js index 6ad696ae85..90de1e327f 100644 --- a/openecomp-ui/test/softwareProduct/processes/test.js +++ b/openecomp-ui/test/softwareProduct/processes/test.js @@ -1,410 +1,507 @@ -/*! - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +/* + * Copyright © 2016-2018 European Support Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express - * or implied. See the License for the specific language governing - * permissions and limitations under the License. + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ import deepFreeze from 'deep-freeze'; import mockRest from 'test-utils/MockRest.js'; -import {cloneAndSet} from 'test-utils/Util.js'; -import {storeCreator} from 'sdc-app/AppStore.js'; +import { cloneAndSet } from 'test-utils/Util.js'; +import { storeCreator } from 'sdc-app/AppStore.js'; import Configuration from 'sdc-app/config/Configuration.js'; import SoftwareProductProcessesActionHelper from 'sdc-app/onboarding/softwareProduct/processes/SoftwareProductProcessesActionHelper.js'; import { - VSPProcessPostFactory, - VSPProcessStoreFactory, - VSPProcessPostFactoryWithType, - VSPProcessStoreFactoryWithType, - VSPProcessStoreWithFormDataFactory, - VSPProcessPostWithFormDataFactory, - VSPProcessStoreWithArtifactNameFactory } from 'test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js'; -import {buildFromExistingObject} from 'test-utils/Util.js'; -import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js'; + VSPProcessPostFactory, + VSPProcessStoreFactory, + VSPProcessPostFactoryWithType, + VSPProcessStoreFactoryWithType, + VSPProcessStoreWithFormDataFactory, + VSPProcessPostWithFormDataFactory, + VSPProcessStoreWithArtifactNameFactory +} from 'test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js'; +import { buildFromExistingObject } from 'test-utils/Util.js'; +import { VSPEditorFactory } from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js'; import VersionFactory from 'test-utils/factories/common/VersionFactory.js'; const softwareProductId = '123'; const version = VersionFactory.build(); -describe('Software Product Processes Module Tests', function () { - - let restPrefix = ''; - - beforeAll(function() { - restPrefix = Configuration.get('restPrefix'); - deepFreeze(restPrefix); - }); - - //** - //** ADD - //** - it('Add Software Products Processes', () => { - - const store = storeCreator(); - deepFreeze(store.getState()); - - const softwareProductProcessFromResponse = 'ADDED_ID'; - - const softwareProductProcessAfterAdd = VSPProcessStoreFactory.build({id: softwareProductProcessFromResponse}); - const softwareProductPostRequest = buildFromExistingObject(VSPProcessPostFactory, softwareProductProcessAfterAdd); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', [softwareProductProcessAfterAdd]); - - mockRest.addHandler('post', ({data, options, baseUrl}) => { - - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes`); - expect(data).toEqual(softwareProductPostRequest); - expect(options).toEqual(undefined); - return { - returnCode: 'OK', - value: softwareProductProcessFromResponse - }; - }); - - return SoftwareProductProcessesActionHelper.saveProcess(store.dispatch, - { - softwareProductId, - version, - previousProcess: null, - process: softwareProductPostRequest - } - ).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - it('Add Software Products Processes with type', () => { - - const store = storeCreator(); - deepFreeze(store.getState()); - - const softwareProductProcessFromResponse = 'ADDED_ID'; - - const softwareProductProcessAfterAdd = VSPProcessStoreFactoryWithType.build({id: softwareProductProcessFromResponse}); - const softwareProductPostRequest = buildFromExistingObject(VSPProcessPostFactoryWithType, softwareProductProcessAfterAdd); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', [softwareProductProcessAfterAdd]); - - mockRest.addHandler('post', ({data, options, baseUrl}) => { - - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes`); - expect(data).toEqual(softwareProductPostRequest); - expect(options).toEqual(undefined); - return { - returnCode: 'OK', - value: softwareProductProcessFromResponse - }; - }); - - return SoftwareProductProcessesActionHelper.saveProcess(store.dispatch, - { - softwareProductId, - version, - previousProcess: null, - process: softwareProductPostRequest - } - ).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - it('Add Software Products Processes with uploaded file', () => { - - const store = storeCreator(); - deepFreeze(store.getState()); - - const softwareProductPostRequest = VSPProcessPostFactoryWithType.build(); - const softwareProductProcessToAdd = VSPProcessPostWithFormDataFactory.build(softwareProductPostRequest); - const softwareProductProcessAfterAdd = VSPProcessStoreWithFormDataFactory.build(); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', [softwareProductProcessAfterAdd]); - - mockRest.addHandler('post', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes`); - expect(data).toEqual(softwareProductPostRequest); - expect(options).toEqual(undefined); - return { - returnCode: 'OK', - value: softwareProductProcessAfterAdd.id - }; - }); - - mockRest.addHandler('post', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes/${softwareProductProcessAfterAdd.id}/upload`); - expect(data).toEqual(softwareProductProcessToAdd.formData); - expect(options).toEqual(undefined); - return {returnCode: 'OK'}; - }); - - return SoftwareProductProcessesActionHelper.saveProcess(store.dispatch, - { - softwareProductId, - version, - previousProcess: null, - process: softwareProductProcessToAdd - } - ).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - //** - //** UPDATE - //** - it('Update Software Products Processes', () => { - const softwareProductProcessesList = VSPProcessStoreWithArtifactNameFactory.buildList(1); - deepFreeze(softwareProductProcessesList); - - const store = storeCreator({ - softwareProduct: { - softwareProductProcesses: { - processesList: softwareProductProcessesList - } - } - }); - deepFreeze(store.getState()); - - const toBeUpdatedProcessId = softwareProductProcessesList[0].id; - const previousProcessData = softwareProductProcessesList[0]; - const processUpdateData = VSPProcessStoreWithArtifactNameFactory.build( - {...previousProcessData, - name: 'Pr1_UPDATED', - description: 'string_UPDATED', - type: 'Other' - } - ); - - deepFreeze(processUpdateData); - - const processPutRequest = VSPProcessPostFactory.build({ - name: 'Pr1_UPDATED', - description: 'string_UPDATED', - type: 'Other' - }); - deepFreeze(processPutRequest); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', [processUpdateData]); - - - mockRest.addHandler('put', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes/${toBeUpdatedProcessId}`); - expect(data).toEqual(processPutRequest); - expect(options).toEqual(undefined); - return {returnCode: 'OK'}; - }); - - return SoftwareProductProcessesActionHelper.saveProcess(store.dispatch, - { - softwareProductId, - version, - previousProcess: previousProcessData, - process: processUpdateData - } - ).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - it('Update Software Products Processes and uploaded file', () => { - const previousProcessData = VSPProcessStoreWithArtifactNameFactory.build(); - deepFreeze(previousProcessData); - - const store = storeCreator({ - softwareProduct: { - softwareProductProcesses: { - processesList: [previousProcessData] - } - } - }); - deepFreeze(store.getState()); - - const newProcessToUpdate = VSPProcessStoreWithFormDataFactory.build({ - ...previousProcessData, - name: 'new name', - formData: { - name: 'new artifact name' - } - }); - deepFreeze(newProcessToUpdate); - - const newProcessToPutRequest = VSPProcessPostFactory.build({ - name: newProcessToUpdate.name, - description: previousProcessData.description, - type: previousProcessData.type - }); - deepFreeze(newProcessToPutRequest); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', [newProcessToUpdate]); - - mockRest.addHandler('put', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes/${newProcessToUpdate.id}`); - expect(data).toEqual(newProcessToPutRequest); - expect(options).toEqual(undefined); - return {returnCode: 'OK'}; - }); - - mockRest.addHandler('post', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes/${newProcessToUpdate.id}/upload`); - expect(data).toEqual(newProcessToUpdate.formData); - expect(options).toEqual(undefined); - return {returnCode: 'OK'}; - }); - - return SoftwareProductProcessesActionHelper.saveProcess(store.dispatch, - { - softwareProductId, - version, - previousProcess: previousProcessData, - process: newProcessToUpdate - } - ).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - //** - //** GET - //** - it('Get Software Products Processes List', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - const softwareProductProcessesList = VSPProcessStoreFactory.buildList(2); - - deepFreeze(softwareProductProcessesList); - - deepFreeze(store.getState()); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', softwareProductProcessesList); - - mockRest.addHandler('fetch', ({options, data, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${version.id}/processes`); - expect(data).toEqual(undefined); - expect(options).toEqual(undefined); - return {results: softwareProductProcessesList}; - }); - - return SoftwareProductProcessesActionHelper.fetchProcessesList(store.dispatch, {softwareProductId, version}).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - //** - //** DELETE - //** - it('Delete Software Products Processes', () => { - const softwareProductProcessesList = VSPProcessStoreWithArtifactNameFactory.buildList(1); - const currentSoftwareProduct = VSPEditorFactory.build(); - - deepFreeze(softwareProductProcessesList); - const store = storeCreator({ - softwareProduct: { - softwareProductProcesses: { - processesList: softwareProductProcessesList - }, - softwareProductEditor: { - data: currentSoftwareProduct - } - } - }); - - const processId = softwareProductProcessesList[0].id; - const versionId = version.id; - deepFreeze(store.getState()); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesList', []); - - mockRest.addHandler('destroy', ({data, options, baseUrl}) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/processes/${processId}`); - expect(data).toEqual(undefined); - expect(options).toEqual(undefined); - return { - results: { - returnCode: 'OK' - } - }; - }); - - return SoftwareProductProcessesActionHelper.deleteProcess(store.dispatch, { - process: softwareProductProcessesList[0], - softwareProductId, - version - }).then(() => { - expect(store.getState()).toEqual(expectedStore); - }); - }); - - it('Validating Software Products Processes Delete confirmation', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - let process = VSPProcessStoreFactory.build(); - deepFreeze(process); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processToDelete', process); - - return SoftwareProductProcessesActionHelper.openDeleteProcessesConfirm(store.dispatch, {process}); - - expect(store.getState()).toEqual(expectedStore); - }); - - it('Validating Software Products Processes Cancel Delete', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processToDelete', false); - - SoftwareProductProcessesActionHelper.hideDeleteConfirm(store.dispatch); - - expect(store.getState()).toEqual(expectedStore); - }); - - //** - //** CREATE/EDIT - //** - it('Validating open Software Products Processes for create', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - let process = {}; - deepFreeze(process); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesEditor.data', process); - - SoftwareProductProcessesActionHelper.openEditor(store.dispatch); - expect(store.getState().softwareProduct.softwareProductProcesses.processesEditor.data).toEqual(expectedStore.softwareProduct.softwareProductProcesses.processesEditor.data); - }); - - it('Validating close Software Products Processes from editing mode', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesEditor', {}); - - SoftwareProductProcessesActionHelper.closeEditor(store.dispatch); - expect(store.getState()).toEqual(expectedStore); - }); - - it('Validating open Software Products Processes for editing', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - let process = {name: 'aa', description: 'xx'}; - deepFreeze(process); - - const expectedStore = cloneAndSet(store.getState(), 'softwareProduct.softwareProductProcesses.processesEditor.data', process); - - SoftwareProductProcessesActionHelper.openEditor(store.dispatch, process); - expect(store.getState().softwareProduct.softwareProductProcesses.processesEditor.data).toEqual(expectedStore.softwareProduct.softwareProductProcesses.processesEditor.data); - - }); - +describe('Software Product Processes Module Tests', function() { + let restPrefix = ''; + + beforeAll(function() { + restPrefix = Configuration.get('restPrefix'); + deepFreeze(restPrefix); + }); + + //** + //** ADD + //** + it('Add Software Products Processes', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const softwareProductProcessFromResponse = 'ADDED_ID'; + + const softwareProductProcessAfterAdd = VSPProcessStoreFactory.build({ + id: softwareProductProcessFromResponse + }); + const softwareProductPostRequest = buildFromExistingObject( + VSPProcessPostFactory, + softwareProductProcessAfterAdd + ); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [softwareProductProcessAfterAdd] + ); + + mockRest.addHandler('post', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes` + ); + expect(data).toEqual(softwareProductPostRequest); + expect(options).toEqual(undefined); + return { + returnCode: 'OK', + value: softwareProductProcessFromResponse + }; + }); + + return SoftwareProductProcessesActionHelper.saveProcess( + store.dispatch, + { + softwareProductId, + version, + previousProcess: null, + process: softwareProductPostRequest + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Add Software Products Processes with type', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const softwareProductProcessFromResponse = 'ADDED_ID'; + + const softwareProductProcessAfterAdd = VSPProcessStoreFactoryWithType.build( + { id: softwareProductProcessFromResponse } + ); + const softwareProductPostRequest = buildFromExistingObject( + VSPProcessPostFactoryWithType, + softwareProductProcessAfterAdd + ); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [softwareProductProcessAfterAdd] + ); + + mockRest.addHandler('post', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes` + ); + expect(data).toEqual(softwareProductPostRequest); + expect(options).toEqual(undefined); + return { + returnCode: 'OK', + value: softwareProductProcessFromResponse + }; + }); + + return SoftwareProductProcessesActionHelper.saveProcess( + store.dispatch, + { + softwareProductId, + version, + previousProcess: null, + process: softwareProductPostRequest + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Add Software Products Processes with uploaded file', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const softwareProductPostRequest = VSPProcessPostFactoryWithType.build(); + const softwareProductProcessToAdd = VSPProcessPostWithFormDataFactory.build( + softwareProductPostRequest + ); + const softwareProductProcessAfterAdd = VSPProcessStoreWithFormDataFactory.build(); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [softwareProductProcessAfterAdd] + ); + + mockRest.addHandler('post', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes` + ); + expect(data).toEqual(softwareProductPostRequest); + expect(options).toEqual(undefined); + return { + returnCode: 'OK', + value: softwareProductProcessAfterAdd.id + }; + }); + + mockRest.addHandler('post', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes/${softwareProductProcessAfterAdd.id}/upload` + ); + expect(data).toEqual(softwareProductProcessToAdd.formData); + expect(options).toEqual(undefined); + return { returnCode: 'OK' }; + }); + + return SoftwareProductProcessesActionHelper.saveProcess( + store.dispatch, + { + softwareProductId, + version, + previousProcess: null, + process: softwareProductProcessToAdd + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + //** + //** UPDATE + //** + it('Update Software Products Processes', () => { + const softwareProductProcessesList = VSPProcessStoreWithArtifactNameFactory.buildList( + 1 + ); + deepFreeze(softwareProductProcessesList); + + const store = storeCreator({ + softwareProduct: { + softwareProductProcesses: { + processesList: softwareProductProcessesList + } + } + }); + deepFreeze(store.getState()); + + const toBeUpdatedProcessId = softwareProductProcessesList[0].id; + const previousProcessData = softwareProductProcessesList[0]; + const processUpdateData = VSPProcessStoreWithArtifactNameFactory.build({ + ...previousProcessData, + name: 'Pr1_UPDATED', + description: 'string_UPDATED', + type: 'Other' + }); + + deepFreeze(processUpdateData); + + const processPutRequest = VSPProcessPostFactory.build({ + name: 'Pr1_UPDATED', + description: 'string_UPDATED', + type: 'Other' + }); + deepFreeze(processPutRequest); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [processUpdateData] + ); + + mockRest.addHandler('put', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes/${toBeUpdatedProcessId}` + ); + expect(data).toEqual(processPutRequest); + expect(options).toEqual(undefined); + return { returnCode: 'OK' }; + }); + + return SoftwareProductProcessesActionHelper.saveProcess( + store.dispatch, + { + softwareProductId, + version, + previousProcess: previousProcessData, + process: processUpdateData + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Update Software Products Processes and uploaded file', () => { + const previousProcessData = VSPProcessStoreWithArtifactNameFactory.build(); + deepFreeze(previousProcessData); + + const store = storeCreator({ + softwareProduct: { + softwareProductProcesses: { + processesList: [previousProcessData] + } + } + }); + deepFreeze(store.getState()); + + const newProcessToUpdate = VSPProcessStoreWithFormDataFactory.build({ + ...previousProcessData, + name: 'new name', + formData: { + name: 'new artifact name' + } + }); + deepFreeze(newProcessToUpdate); + + const newProcessToPutRequest = VSPProcessPostFactory.build({ + name: newProcessToUpdate.name, + description: previousProcessData.description, + type: previousProcessData.type + }); + deepFreeze(newProcessToPutRequest); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [newProcessToUpdate] + ); + + mockRest.addHandler('put', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes/${newProcessToUpdate.id}` + ); + expect(data).toEqual(newProcessToPutRequest); + expect(options).toEqual(undefined); + return { returnCode: 'OK' }; + }); + + mockRest.addHandler('post', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes/${newProcessToUpdate.id}/upload` + ); + expect(data).toEqual(newProcessToUpdate.formData); + expect(options).toEqual(undefined); + return { returnCode: 'OK' }; + }); + + return SoftwareProductProcessesActionHelper.saveProcess( + store.dispatch, + { + softwareProductId, + version, + previousProcess: previousProcessData, + process: newProcessToUpdate + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + //** + //** GET + //** + it('Get Software Products Processes List', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const softwareProductProcessesList = VSPProcessStoreFactory.buildList( + 2 + ); + + deepFreeze(softwareProductProcessesList); + + deepFreeze(store.getState()); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + softwareProductProcessesList + ); + + mockRest.addHandler('fetch', ({ options, data, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${ + version.id + }/processes` + ); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return { results: softwareProductProcessesList }; + }); + + return SoftwareProductProcessesActionHelper.fetchProcessesList( + store.dispatch, + { softwareProductId, version } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + //** + //** DELETE + //** + it('Delete Software Products Processes', () => { + const softwareProductProcessesList = VSPProcessStoreWithArtifactNameFactory.buildList( + 1 + ); + const currentSoftwareProduct = VSPEditorFactory.build(); + + deepFreeze(softwareProductProcessesList); + const store = storeCreator({ + softwareProduct: { + softwareProductProcesses: { + processesList: softwareProductProcessesList + }, + softwareProductEditor: { + data: currentSoftwareProduct + } + } + }); + + const processId = softwareProductProcessesList[0].id; + const versionId = version.id; + deepFreeze(store.getState()); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesList', + [] + ); + + mockRest.addHandler('destroy', ({ data, options, baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/vendor-software-products/${softwareProductId}/versions/${versionId}/processes/${processId}` + ); + expect(data).toEqual(undefined); + expect(options).toEqual(undefined); + return { + results: { + returnCode: 'OK' + } + }; + }); + + return SoftwareProductProcessesActionHelper.deleteProcess( + store.dispatch, + { + process: softwareProductProcessesList[0], + softwareProductId, + version + } + ).then(() => { + expect(store.getState()).toEqual(expectedStore); + }); + }); + + it('Validating Software Products Processes Delete confirmation', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + let process = VSPProcessStoreFactory.build(); + deepFreeze(process); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processToDelete', + process + ); + + return SoftwareProductProcessesActionHelper.openDeleteProcessesConfirm( + store.dispatch, + { process } + ); + + expect(store.getState()).toEqual(expectedStore); + }); + + it('Validating Software Products Processes Cancel Delete', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processToDelete', + false + ); + + SoftwareProductProcessesActionHelper.hideDeleteConfirm(store.dispatch); + + expect(store.getState()).toEqual(expectedStore); + }); + + //** + //** CREATE/EDIT + //** + + it('Validating close Software Products Processes from editing mode', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesEditor', + {} + ); + + SoftwareProductProcessesActionHelper.closeEditor(store.dispatch); + expect(store.getState()).toEqual(expectedStore); + }); + + it('Validating open Software Products Processes for editing', () => { + const store = storeCreator(); + deepFreeze(store.getState()); + + let process = { name: 'aa', description: 'xx' }; + deepFreeze(process); + + const expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductProcesses.processesEditor.data', + process + ); + + SoftwareProductProcessesActionHelper.openEditor(store.dispatch, { + process + }); + expect( + store.getState().softwareProduct.softwareProductProcesses + .processesEditor.data + ).toEqual( + expectedStore.softwareProduct.softwareProductProcesses + .processesEditor.data + ); + }); }); |