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 <onap@vodafone.com>
diff --git a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js
index ee6ba90..0a8f640 100644
--- a/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js
+++ b/openecomp-ui/test/softwareProduct/validation/SoftwareProductValidationActionHelper.test.js
@@ -26,83 +26,193 @@
 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 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 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 = () => {};
 
-        deepFreeze(vspChecksList);
-        deepFreeze(vspTestsMap);
-        deepFreeze(certificationChecked);
-        deepFreeze(complianceChecked);
-        deepFreeze(activeTab);
+    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(
-            store.getState(),
-            'softwareProduct.softwareProductValidation.certificationChecked',
-            certificationChecked
-        );
-        expectedStore = cloneAndSet(
-            store.getState(),
-            'softwareProduct.softwareProductValidation.complianceChecked',
-            complianceChecked
-        );
-        expectedStore = cloneAndSet(
-            store.getState(),
-            'softwareProduct.softwareProductValidation.activeTab',
-            activeTab
-        );
-        let restPrefix = Configuration.get('restPrefix');
-
-        mockRest.addHandler('fetch', ({ options, data, baseUrl }) => {
-            expect(baseUrl).toEqual(`${restPrefix}/v1.0/externaltesting`);
-            expect(data).toEqual(undefined);
-            expect(options).toEqual(undefined);
-            return { vspChecks: vspChecksList };
+        mockRest.addHandler('fetch', ({ baseUrl }) => {
+            expect(baseUrl).toEqual(
+                `${restPrefix}/v1.0/externaltesting/testcasetree`
+            );
+            return vspChecksList;
         });
-
-        SoftwareProductValidationActionHelper.setVspTestsMap(store.dispatch, {
-            vspTestsMap
-        });
-        SoftwareProductValidationActionHelper.setComplianceChecked(
-            store.dispatch,
-            { complianceChecked }
-        );
-        SoftwareProductValidationActionHelper.setCertificationChecked(
-            store.dispatch,
-            { certificationChecked }
-        );
-
-        SoftwareProductValidationActionHelper.setActiveTab(store.dispatch, {
-            activeTab
-        });
-
-        SoftwareProductValidationActionHelper.onErrorThrown(store.dispatch, {
-            errorMessage
-        });
-
-        SoftwareProductValidationActionHelper.fetchVspChecks(store.dispatch)
+        return SoftwareProductValidationActionHelper.fetchVspChecks(
+            store.dispatch
+        )
             .then(() => {
                 expect(store.getState()).toEqual(expectedStore);
             })
-            .catch(() => {});
+            .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
+        );
+        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
+        );
+        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
+        );
+        mapActionsToProps(store.dispatch).setActiveTab(activeTab);
+        expect(store.getState()).toEqual(expectedStore);
+    });
+
+    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);
+    });
+
+    it('Software Products Validation Action Helper : setIsVspValidationDisabled', () => {
+        let expectedStore = cloneAndSet(
+            store.getState(),
+            'softwareProduct.softwareProductValidation.isValidationDisabled',
+            isValidationDisabled
+        );
+        SoftwareProductValidationActionHelper.setIsVspValidationDisabled(
+            store.dispatch,
+            {
+                isValidationDisabled
+            }
+        );
+        expect(store.getState()).toEqual(expectedStore);
+    });
+
+    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
+        );
+
+        mapActionsToProps(store.dispatch).setTestsRequest(
+            testsRequest.testsRequest,
+            generalInfo.generalInfo
+        );
+        expect(store.getState()).toEqual(expectedStore);
+    });
+
+    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);
     });
 });