/* * Copyright © 2019 Vodafone Group * * 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 * * 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. */ 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 SoftwareProductValidationActionHelper from 'sdc-app/onboarding/softwareProduct/validation/SoftwareProductValidationActionHelper.js'; import { tabsMapping } from 'sdc-app/onboarding/softwareProduct/validation/SoftwareProductValidationConstants.js'; import Configuration from 'sdc-app/config/Configuration.js'; 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 { VSPTestsMapFactory } from 'test-utils/factories/softwareProduct/SoftwareProductValidationFactory.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); 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 }; }); 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) .then(() => { expect(store.getState()).toEqual(expectedStore); }) .catch(() => {}); }); });