[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / openecomp-ui / test / softwareProduct / attachments / SoftwareProductAttachmentsView.test.js
index 839176c..5dfe98f 100644 (file)
-/*-
- * ============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
- * 
+ *
+ * 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=========================================================
+ * 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 expect from 'expect';
 import React from 'react';
 import TestUtils from 'react-addons-test-utils';
-import {mapStateToProps}  from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js';
+import {VSPAttachmentTreeNodeWithChildrenFactory, VSPAttachmentDetailedError} from 'test-utils/factories/softwareProduct/SoftwareProductAttachmentsFactories.js';
+import {defaultStoreFactory} from 'test-utils/factories/onboard/OnboardingCatalogFactories.js';
 
+import {mapStateToProps} from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachments.js';
 import SoftwareProductAttachmentsView from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsView.jsx';
-import {statusEnum as versionStatusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
+import {tabsMapping} from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js';
+import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
 
-
-describe('SoftwareProductAttachments Modal Mapper and View Classes', () => {
-
-       it ('mapStateToProps mapper exists', () => {
-               expect(mapStateToProps).toExist();
+describe('SoftwareProduct Attachments - View: ', function () {
+       it('should mapper exist', () => {
+               expect(mapStateToProps).toBeTruthy();
        });
 
+       it('should mapper return default data', () => {
 
-       it ('mapStateToProps check data', () => {
+               let attachmentsTree = VSPAttachmentTreeNodeWithChildrenFactory.build();
+               let errorList = VSPAttachmentDetailedError.buildList(3);
+               let versionControllerData = VersionControllerUtilsFactory.build();
 
-               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: versionStatusEnum.CHECK_OUT_STATUS,
-                       lockingUser: 'cs0008'
-               };
-               const atTree = {
-                       'children': [
-                               {
-                                       'name': 'HEAT',
-                                       'expanded': true,
-                                       'type': 'heat',
-                                       'children': [
-                                               {
-                                                       'name': 'heat_zxeyCtMHhf2.yaml',
-                                                       'expanded': true,
-                                                       'type': 'heat',
-                                                       'errors': [
-                                                               {
-                                                                       'level': 'WARNING',
-                                                                       'message': 'Resource is not defined as output and thus cannot be Shared. resource id - network_4'
-                                                               }
-                                                       ],
-                                                       'children': [
-                                                               {
-                                                                       'name': 'heat_env_zxeyCtMHhf2.env',
-                                                                       'type': 'env'
-                                                               }
-                                                       ]
-                                               }
-                                       ]
-                               }
-                       ]
-               };
-               const errorList = [
-                       {
-                               'errorLevel': 'WARNING',
-                               'errorMessage': 'Resource is not defined as output and thus cannot be Shared. resource id - network_4',
-                               'name': 'heat_zxeyCtMHhf2.yaml',
-                               'hasParent': false,
-                               'parentName': 'HEAT',
-                               'type': 'heat'
+               let softwareProductAttachments = {
+                       heatSetup: {},
+                       heatValidation: {
+                               attachmentsTree,
+                               errorList
                        },
-                       {
-                               'errorLevel': 'WARNING',
-                               'errorMessage': 'Resource is not defined as output and thus cannot be Shared. resource id - network_3',
-                               'name': 'heat_zxeyCtMHhf2.yaml',
-                               'hasParent': false,
-                               'parentName': 'HEAT',
-                               'type': 'heat'
-                       }
-               ];
-
-               var obj = {
-                       softwareProduct: {
-                               softwareProductEditor: {
-                                       data:currentSoftwareProduct
-                               }, softwareProductAttachments:
-                               {
-                                       attachmentsTree: atTree,
-                                       errorList: errorList
-                               }
-                       }
+                       heatSetupCache: {},
+                       activeTab: tabsMapping.SETUP
                };
-
-               var results = mapStateToProps(obj);
-               expect(results.attachmentsTree).toExist();
-               expect(results.errorList).toExist();
-               expect(results.hoveredNode).toBe(undefined);
-               expect(results.selectedNode).toBe(undefined);
+               let data = defaultStoreFactory.build({softwareProduct: {softwareProductAttachments, softwareProductEditor: {data: {...versionControllerData}}}});
+               var result = mapStateToProps(data);
+               expect(result).toBeTruthy();
+               expect(result.isValidationAvailable).toBe(false);
        });
 
+       it('view test', () => {
 
-       it('function does exist', () => {
+               let attachmentsTree = VSPAttachmentTreeNodeWithChildrenFactory.build();
+               let errorList = VSPAttachmentDetailedError.buildList(3);
+               let versionControllerData = VersionControllerUtilsFactory.build();
 
-               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: versionStatusEnum.CHECK_OUT_STATUS,
-                       lockingUser: 'cs0008'
-               };
-               const versionControllerData = {
-                       version: currentSoftwareProduct.version,
-                       viewableVersions:currentSoftwareProduct.viewableVersions,
-                       status: currentSoftwareProduct.status,
-                       isCheckedOut: true
-               };
-               const atTree = {
-                       'children': [
-                               {
-                                       'name': 'HEAT',
-                                       'expanded': true,
-                                       'type': 'heat',
-                                       'children': [
-                                               {
-                                                       'name': 'heat_zxeyCtMHhf2.yaml',
-                                                       'expanded': true,
-                                                       'type': 'heat',
-                                                       'errors': [
-                                                               {
-                                                                       'level': 'WARNING',
-                                                                       'message': 'Resource is not defined as output and thus cannot be Shared. resource id - network_4'
-                                                               }
-                                                       ],
-                                                       'children': [
-                                                               {
-                                                                       'name': 'heat_env_zxeyCtMHhf2.env',
-                                                                       'type': 'env'
-                                                               }
-                                                       ]
-                                               }
-                                       ]
-                               }
-                       ]
-               };
-               const errorList = [
-                       {
-                               'errorLevel': 'WARNING',
-                               'errorMessage': 'Resource is not defined as output and thus cannot be Shared. resource id - network_4',
-                               'name': 'heat_zxeyCtMHhf2.yaml',
-                               'hasParent': false,
-                               'parentName': 'HEAT',
-                               'type': 'heat'
+               let softwareProductAttachments = {
+                       heatSetup: {},
+                       heatValidation: {
+                               attachmentsTree,
+                               errorList
                        },
-                       {
-                               'errorLevel': 'WARNING',
-                               'errorMessage': 'Resource is not defined as output and thus cannot be Shared. resource id - network_3',
-                               'name': 'heat_zxeyCtMHhf2.yaml',
-                               'hasParent': false,
-                               'parentName': 'HEAT',
-                               'type': 'heat'
-                       }
-               ];
-
+                       shouldOpenValidationTab: false
+               };
+               let data = defaultStoreFactory.build({softwareProduct: {softwareProductAttachments, softwareProductEditor: {data: {...versionControllerData}}}});
+               var params = mapStateToProps(data);
 
                var renderer = TestUtils.createRenderer();
-               renderer.render(<SoftwareProductAttachmentsView
-                       versionControllerData={versionControllerData}
-                       currentSoftwareProduct={currentSoftwareProduct}
-                       attachmentsTree={atTree}
-                       errorList={errorList}/>);
+               renderer.render(<SoftwareProductAttachmentsView {...params}/>);
                var renderedOutput = renderer.getRenderOutput();
-               expect(renderedOutput).toExist();
+               expect(renderedOutput).toBeTruthy();
        });
 
 });