blob: 0a8f640426292976b5116ee1230edc618661f90c [file] [log] [blame]
/*
* 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';
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() {
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
);
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
);
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);
});
});