From 18750938b1513ee32d4d68f0871ec90efdf3ddfd Mon Sep 17 00:00:00 2001 From: Vodafone Date: Fri, 5 Apr 2019 15:49:06 +0530 Subject: VSP Compliance Check for Compute Flavor Change-Id: I04768a20413393026606a3f5b200e959e37c1410 Issue-ID: SDC-2051 Co-authored-by: rahul.ghugikar@vodafone.com, soumyarup.paul@vodafone.com Signed-off-by: Vodafone --- .../SoftwareProductValidationActionHelper.test.js | 216 ++++++++++++++++----- .../SoftwareProductValidationInputView.test.js | 41 ++-- .../SoftwareProductValidationView.test.js | 77 +++++--- 3 files changed, 240 insertions(+), 94 deletions(-) (limited to 'openecomp-ui/test/softwareProduct/validation') diff --git a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js index ee6ba90cd5..0a8f640426 100644 --- a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js +++ b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js @@ -26,83 +26,193 @@ import { VSPComplianceCheckedFactory } from 'test-utils/factories/softwareProduc import { VSPCertificationCheckedFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPChecksFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPTestsMapFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; +import { VSPTestsRequestFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; +import { VSPGeneralInfoFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; +import { VSPTestResultsSuccessFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationResultsFactory.js'; +import { mapActionsToProps } from 'sdc-app/onboarding/softwareProduct/validation/SoftwareProductValidation.js'; describe('Software Product Validation Action Helper Tests', function() { - it('Software Products Validation Action Helper : Dsspatch', () => { - const store = storeCreator(); - deepFreeze(store.getState()); - - const vspChecksList = VSPChecksFactory.build(); - const vspTestsMap = VSPTestsMapFactory.build(); - const certificationChecked = VSPCertificationCheckedFactory.build(); - const complianceChecked = VSPComplianceCheckedFactory.build(); - const activeTab = { activeTab: tabsMapping.INPUTS }; - const errorMessage = { msg: 'Test Error Message' }; - - deepFreeze(vspChecksList); - deepFreeze(vspTestsMap); - deepFreeze(certificationChecked); - deepFreeze(complianceChecked); - deepFreeze(activeTab); + const store = storeCreator(); + deepFreeze(store.getState()); + const vspChecksList = VSPChecksFactory.build(); + const vspTestsMap = VSPTestsMapFactory.build(); + const certificationChecked = VSPCertificationCheckedFactory.build(); + const complianceChecked = VSPComplianceCheckedFactory.build(); + const activeTab = { activeTab: tabsMapping.INPUTS }; + const errorMessage = { msg: 'Test Error Message' }; + const testsRequest = VSPTestsRequestFactory.build(); + const generalInfo = VSPGeneralInfoFactory.build(); + const isValidationDisabled = false; + const vspTestResults = VSPTestResultsSuccessFactory.build(); + let restPrefix = Configuration.get('restPrefix'); + let onClose = () => {}; + + const modal = { + type: 'error', + title: 'Error', + modalComponentName: 'Error', + modalComponentProps: { + onClose: onClose + }, + msg: { + msg: 'Test Error Message' + }, + cancelButtonText: 'OK' + }; + // deepFreeze(vspTestsMap.vspTestsMap); + // deepFreeze(certificationChecked.certificationChecked); + // deepFreeze(complianceChecked.complianceChecked); + // deepFreeze(activeTab); + // deepFreeze(testsRequest); + // deepFreeze(generalInfo.generalInfo); + // deepFreeze(isVspValidationDisabled); + + it('Software Products Validation Action Helper : fetch vsp', () => { let expectedStore = cloneAndSet( store.getState(), 'softwareProduct.softwareProductValidation.vspChecks', vspChecksList ); - expectedStore = cloneAndSet( - store.getState(), - 'softwareProduct.softwareProductValidation.vspTestsMap', - vspTestsMap - ); - expectedStore = cloneAndSet( + mockRest.addHandler('fetch', ({ baseUrl }) => { + expect(baseUrl).toEqual( + `${restPrefix}/v1.0/externaltesting/testcasetree` + ); + return vspChecksList; + }); + return SoftwareProductValidationActionHelper.fetchVspChecks( + store.dispatch + ) + .then(() => { + expect(store.getState()).toEqual(expectedStore); + }) + .catch(() => { + console.log('Fetch VSP returned Error'); + }); + }); + + // it('Software Products Validation Action Helper : post test', () => { + // mockRest.addHandler('post', ({ options, data, baseUrl }) => { + // expect(baseUrl).toEqual( + // `${restPrefix}/v1.0/externaltesting/executions` + // ); + // //expect(data).toEqual(testsRequest); + // expect(options).toEqual(undefined); + // return { vspTestResults: vspTestResults }; + // }); + // const version = { + // id: 12345, + // name: 1 + // }; + // const softwareProductId = '1234'; + // const status = 'draft'; + // mapActionsToProps(store.dispatch).onTestSubmit( + // softwareProductId, + // version, + // status, + // testsRequest + // ); + // }); + + it('Software Products Validation Action Helper : setCertificationChecked', () => { + let expectedStore = cloneAndSet( store.getState(), 'softwareProduct.softwareProductValidation.certificationChecked', - certificationChecked + certificationChecked.certificationChecked ); - expectedStore = cloneAndSet( + mapActionsToProps(store.dispatch).setCertificationChecked({ + checked: certificationChecked.certificationChecked + }); + expect(store.getState()).toEqual(expectedStore); + }); + + it('Software Products Validation Action Helper : onErrorThrown', () => { + let expectedStore = cloneAndSet(store.getState(), 'modal', modal); + mapActionsToProps(store.dispatch).onErrorThrown(errorMessage); + expect(JSON.stringify(store.getState())).toEqual( + JSON.stringify(expectedStore) + ); + }); + + it('Software Products Validation Action Helper : setComplianceChecked', () => { + let expectedStore = cloneAndSet( store.getState(), 'softwareProduct.softwareProductValidation.complianceChecked', - complianceChecked + complianceChecked.complianceChecked ); - expectedStore = cloneAndSet( + mapActionsToProps(store.dispatch).setComplianceChecked({ + checked: complianceChecked.complianceChecked + }); + expect(store.getState()).toEqual(expectedStore); + }); + + it('Software Products Validation Action Helper : setActiveTab', () => { + let expectedStore = cloneAndSet( store.getState(), 'softwareProduct.softwareProductValidation.activeTab', - activeTab + activeTab.activeTab ); - let restPrefix = Configuration.get('restPrefix'); + mapActionsToProps(store.dispatch).setActiveTab(activeTab); + expect(store.getState()).toEqual(expectedStore); + }); - mockRest.addHandler('fetch', ({ options, data, baseUrl }) => { - expect(baseUrl).toEqual(`${restPrefix}/v1.0/externaltesting`); - expect(data).toEqual(undefined); - expect(options).toEqual(undefined); - return { vspChecks: vspChecksList }; - }); + it('Software Products Validation Action Helper : setGeneralInfo', () => { + let expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductValidation.generalInfo', + generalInfo.generalInfo + ); + mapActionsToProps(store.dispatch).setGeneralInfo( + generalInfo.generalInfo + ); + expect(store.getState()).toEqual(expectedStore); + }); - SoftwareProductValidationActionHelper.setVspTestsMap(store.dispatch, { - vspTestsMap - }); - SoftwareProductValidationActionHelper.setComplianceChecked( - store.dispatch, - { complianceChecked } + it('Software Products Validation Action Helper : setIsVspValidationDisabled', () => { + let expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductValidation.isValidationDisabled', + isValidationDisabled ); - SoftwareProductValidationActionHelper.setCertificationChecked( + SoftwareProductValidationActionHelper.setIsVspValidationDisabled( store.dispatch, - { certificationChecked } + { + isValidationDisabled + } ); + expect(store.getState()).toEqual(expectedStore); + }); - SoftwareProductValidationActionHelper.setActiveTab(store.dispatch, { - activeTab - }); + it('Software Products Validation Action Helper : setTestsRequest', () => { + let expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductValidation.testsRequest', + testsRequest.testsRequest + ); + expectedStore = cloneAndSet( + expectedStore, + 'softwareProduct.softwareProductValidation.generalInfo', + generalInfo.generalInfo + ); - SoftwareProductValidationActionHelper.onErrorThrown(store.dispatch, { - errorMessage - }); + mapActionsToProps(store.dispatch).setTestsRequest( + testsRequest.testsRequest, + generalInfo.generalInfo + ); + expect(store.getState()).toEqual(expectedStore); + }); - SoftwareProductValidationActionHelper.fetchVspChecks(store.dispatch) - .then(() => { - expect(store.getState()).toEqual(expectedStore); - }) - .catch(() => {}); + it('Software Products Validation Action Helper : setVspTestsMap', () => { + let expectedStore = cloneAndSet( + store.getState(), + 'softwareProduct.softwareProductValidation.vspTestsMap', + vspTestsMap.vspTestsMap + ); + SoftwareProductValidationActionHelper.setVspTestsMap( + store.dispatch, + vspTestsMap.vspTestsMap + ); + + expect(store.getState()).toEqual(expectedStore); }); }); diff --git a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationInputView.test.js b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationInputView.test.js index aa00a5d605..68a8cdd957 100644 --- a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationInputView.test.js +++ b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationInputView.test.js @@ -19,6 +19,7 @@ import { mapStateToProps } from 'sdc-app/onboarding/softwareProduct/validation/i import VspValidationInputsView from 'sdc-app/onboarding/softwareProduct/validation/inputs/VspValidationInputsView.jsx'; import TestUtils from 'react-dom/test-utils'; +import { storeCreator } from 'sdc-app/AppStore.js'; import { VSPComplianceCheckedFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPCertificationCheckedFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; @@ -26,6 +27,7 @@ import { VSPChecksFactory } from 'test-utils/factories/softwareProduct/SoftwareP import { VSPTestsMapFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPTestsRequestFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPGeneralInfoFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; +import { mapActionsToProps } from 'sdc-app/onboarding/softwareProduct/validation/SoftwareProductValidation.js'; describe('SoftwareProductValidation Mapper and View Classes', () => { it('mapStateToProps mapper exists', () => { @@ -76,22 +78,39 @@ describe('SoftwareProductValidation Mapper and View Classes', () => { const status = 'draft'; var obj = { - version: version, - softwareProductId: softwareProductId, - status: status, - softwareProductValidation: { - complianceChecked: complianceChecked.complianceChecked, - certificationChecked: certificationChecked.certificationChecked, - vspTestsMap: vspTestsMap.vspTestsMap, - vspChecks: vspChecksList, - testsRequest: testsRequest.testsRequest, - generalInfo: generalInfo.generalInfo + softwareProduct: { + version: version, + softwareProductId: softwareProductId, + status: status, + softwareProductValidation: { + complianceChecked: complianceChecked.complianceChecked, + certificationChecked: + certificationChecked.certificationChecked, + vspTestsMap: vspTestsMap.vspTestsMap, + vspChecks: vspChecksList, + testsRequest: testsRequest.testsRequest, + generalInfo: generalInfo.generalInfo + } } }; + const store = storeCreator(); + let dispatch = store.dispatch; + let props = Object.assign( + {}, + mapStateToProps(obj), + mapActionsToProps(dispatch) + ); let vspValidationInputView = TestUtils.renderIntoDocument( - + ); expect(vspValidationInputView).toBeTruthy(); + + let inputForm = TestUtils.findRenderedDOMComponentWithTag( + vspValidationInputView, + 'form' + ); + expect(inputForm).toBeTruthy(); + TestUtils.Simulate.submit(inputForm); }); }); diff --git a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationView.test.js b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationView.test.js index 640f9f64be..be84f157b3 100644 --- a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationView.test.js +++ b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationView.test.js @@ -24,10 +24,11 @@ import SoftwareProductValidationView from 'sdc-app/onboarding/softwareProduct/va import { VSPComplianceCheckedFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPCertificationCheckedFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPChecksFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; +import { VSPGeneralInfoFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { VSPTestsMapFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.js'; import { tabsMapping } from 'sdc-app/onboarding/softwareProduct/validation/SoftwareProductValidationConstants.js'; import TestUtils from 'react-dom/test-utils'; -//import { scryRenderedDOMComponentsWithTestId } from 'test-utils/Util.js'; +import { scryRenderedDOMComponentsWithTestId } from 'test-utils/Util.js'; describe('SoftwareProductValidation Mapper and View Classes', () => { it('mapStateToProps mapper exists', () => { @@ -43,15 +44,18 @@ describe('SoftwareProductValidation Mapper and View Classes', () => { const vspTestsMap = VSPTestsMapFactory.build(); const certificationChecked = VSPCertificationCheckedFactory.build(); const complianceChecked = VSPComplianceCheckedFactory.build(); + const generalInfo = VSPGeneralInfoFactory.build(); var obj = { softwareProduct: { softwareProductValidation: { vspChecks: vspChecksList, vspTestsMap: vspTestsMap.vspTestsMap, - certificationChecked: certificationChecked.certificationChecked, + certificationChecked: + certificationChecked.certificationChecked, complianceChecked: complianceChecked.complianceChecked, - activeTab: tabsMapping.SETUP + activeTab: tabsMapping.SETUP, + generalInfo: generalInfo.generalInfo } } }; @@ -65,6 +69,7 @@ describe('SoftwareProductValidation Mapper and View Classes', () => { results.softwareProductValidation.complianceChecked ).toBeTruthy(); expect(results.softwareProductValidation.activeTab).toBeTruthy(); + expect(results.softwareProductValidation.generalInfo).toBeTruthy(); }); it('SoftwareProductValidationView render test', () => { @@ -72,51 +77,63 @@ describe('SoftwareProductValidation Mapper and View Classes', () => { const vspTestsMap = VSPTestsMapFactory.build(); const certificationChecked = VSPCertificationCheckedFactory.build(); const complianceChecked = VSPComplianceCheckedFactory.build(); - let dummyFunc = () => {}; + // let dummyFunc = () => {}; const version = { + id: 12345, name: 1 }; const softwareProductId = '1234'; const status = 'draft'; var obj = { - version: version, - softwareProductId: softwareProductId, - status: status, - softwareProductValidation: { - vspChecks: vspChecksList, - vspTestsMap: vspTestsMap, - certificationChecked: certificationChecked.certificationChecked, - complianceChecked: complianceChecked.complianceChecked, - activeTab: tabsMapping.SETUP + softwareProduct: { + version: version, + softwareProductId: softwareProductId, + status: status, + softwareProductValidation: { + vspChecks: vspChecksList, + vspTestsMap: vspTestsMap.vspTestsMap, + certificationChecked: + certificationChecked.certificationChecked, + complianceChecked: complianceChecked.complianceChecked, + activeTab: tabsMapping.SETUP + } } }; + const store = storeCreator(); + let dispatch = store.dispatch; + + let props = Object.assign( + {}, + mapStateToProps(obj), + mapActionsToProps(dispatch) + ); + let softwareProductValidationView = TestUtils.renderIntoDocument( - + ); expect(softwareProductValidationView).toBeTruthy(); - // let goToInput = scryRenderedDOMComponentsWithTestId( - // softwareProductValidationView, - // 'go-to-inputs' - // ); - // expect(goToInput).toBeTruthy(); + let goToInput = scryRenderedDOMComponentsWithTestId( + softwareProductValidationView, + 'go-to-vsp-validation-inputs' + ); + expect(goToInput).toBeTruthy(); // TestUtils.Simulate.click(goToInput[0]); - // let goToInput = TestUtils.findRenderedDOMComponentWithClass( + // expect( + // store.getState().softwareProduct.softwareProductValidation.activeTab + // ).toBe(tabsMapping.INPUTS); + // let goToSetup = scryRenderedDOMComponentsWithTestId( // softwareProductValidationView, - // 'go-to-inputs-btn' + // 'go-to-vsp-validation-setup' // ); - // TestUtils.Simulate.click(goToInput); + // expect(goToSetup).toBeTruthy(); + // TestUtils.Simulate.click(goToSetup[0]); + // expect( + // store.getState().softwareProduct.softwareProductValidation.activeTab + // ).toBe(tabsMapping.SETUP); }); }); -- cgit 1.2.3-korg