blob: 851560caa889fdd43146767952b03ed248198c52 [file] [log] [blame]
/*-
* ============LICENSE_START=======================================================
* SDC
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* 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.
* ============LICENSE_END=========================================================
*/
import expect from 'expect';
import SoftwareProductAttachmentsActionHelper from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js';
import {storeCreator} from 'sdc-app/AppStore.js';
import deepFreeze from 'deep-freeze';
import {actionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
describe('SoftwareProductAttachments ActionHelper', () => {
it('function does exist', () => {
expect(SoftwareProductAttachmentsActionHelper).toExist();
});
it('toggleExpanded function check', () => {
const validationData = {
importStructure: {
HEAT: [
{
fileName: 'hot-mog-0108-bs1271.yml',
env: {
fileName: 'hot-mog-0108-bs1271.env'
},
errors: [
{
'level': 'WARNING',
'message': 'Port not bind to any NOVA Server, Resource Id [sm02_port_2]'
},
{
'level': 'WARNING',
'message': 'Port not bind to any NOVA Server, Resource Id [sm01_port_2]'
}
]
}
]
}
};
const currentSoftwareProduct = {
name: 'VSp',
description: 'dfdf',
vendorName: 'V1',
vendorId: '97B3E2525E0640ACACF87CE6B3753E80',
category: 'resourceNewCategory.application l4+',
subCategory: 'resourceNewCategory.application l4+.database',
id: 'D4774719D085414E9D5642D1ACD59D20',
version: '0.10',
viewableVersions: ['0.1', '0.2'],
status: 'Locked',
lockingUser: 'cs0008',
validationData
};
const store = storeCreator();
deepFreeze(store.getState());
deepFreeze(currentSoftwareProduct);
store.dispatch({
type:actionTypes.SOFTWARE_PRODUCT_LOADED,
response: currentSoftwareProduct
});
expect(store.getState().softwareProduct.softwareProductAttachments.attachmentsTree.children[0].expanded).toBe(true);
SoftwareProductAttachmentsActionHelper.toggleExpanded(store.dispatch, {path:[0]});
expect(store.getState().softwareProduct.softwareProductAttachments.attachmentsTree.children[0].expanded).toBe(false);
});
it('onSelectNode & onUnselectNode function check', () => {
const validationData = {
importStructure: {
HEAT: [
{
fileName: 'hot-mog-0108-bs1271.yml',
env: {
fileName: 'hot-mog-0108-bs1271.env'
},
errors: [
{
'level': 'WARNING',
'message': 'Port not bind to any NOVA Server, Resource Id [sm02_port_2]'
},
{
'level': 'WARNING',
'message': 'Port not bind to any NOVA Server, Resource Id [sm01_port_2]'
}
]
}
]
}
};
const currentSoftwareProduct = {
name: 'VSp',
description: 'dfdf',
vendorName: 'V1',
vendorId: '97B3E2525E0640ACACF87CE6B3753E80',
category: 'resourceNewCategory.application l4+',
subCategory: 'resourceNewCategory.application l4+.database',
id: 'D4774719D085414E9D5642D1ACD59D20',
version: '0.10',
viewableVersions: ['0.1', '0.2'],
status: 'Locked',
lockingUser: 'cs0008',
validationData
};
deepFreeze(currentSoftwareProduct);
const store = storeCreator();
deepFreeze(store.getState());
store.dispatch({
type:actionTypes.SOFTWARE_PRODUCT_LOADED,
response: currentSoftwareProduct
});
let expectedNodeName = 'name';
expect(store.getState().softwareProduct.softwareProductAttachments.selectedNode).toBe(undefined);
SoftwareProductAttachmentsActionHelper.onSelectNode(store.dispatch, {nodeName:expectedNodeName});
expect(store.getState().softwareProduct.softwareProductAttachments.selectedNode).toBe(expectedNodeName);
SoftwareProductAttachmentsActionHelper.onUnselectNode(store.dispatch);
expect(store.getState().softwareProduct.softwareProductAttachments.selectedNode).toBe(undefined);
});
});