2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 import React from 'react';
18 import {Provider} from 'react-redux';
19 import {storeCreator} from 'sdc-app/AppStore.js';
21 import TestUtils from 'react-dom/test-utils';
22 import {defaultStoreFactory} from 'test-utils/factories/onboard/OnboardingCatalogFactories.js';
23 import {FinalizedLicenseModelFactory} from 'test-utils/factories/licenseModel/LicenseModelFactories.js';
24 import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js';
25 import {mapStateToProps} from 'sdc-app/onboarding/onboard/Onboard.js';
26 import {catalogItemTypes} from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogConstants.js';
27 import OnboardingCatalogView from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx';
28 import VendorItem from 'sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx';
29 import VSPOverlay from 'sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx';
30 import CatalogItemDetails from 'sdc-app/onboarding/onboard/CatalogItemDetails.jsx';
31 import DetailsCatalogView from 'sdc-app/onboarding/onboard/DetailsCatalogView.jsx';
33 describe('OnBoarding Catalog test - View: ', function () {
36 it('mapStateToProps mapper exists', () => {
37 expect(mapStateToProps).toBeTruthy();
40 it('mapStateToProps data test', () => {
42 const licenseModelList = FinalizedLicenseModelFactory.buildList(3);
43 const softwareProductList = VSPEditorFactory.buildList(4);
44 const data = defaultStoreFactory.build({licenseModelList, softwareProductList});
46 var results = mapStateToProps(data);
47 expect(results.softwareProductList).toBeTruthy();
48 expect(results.licenseModelList).toBeTruthy();
49 expect(results.activeTab).toBeTruthy();
50 expect(results.licenseModelList.length).toEqual(3);
53 it('licenseModelList creating algorithm test', () => {
55 const finalizedLicenseModelList = FinalizedLicenseModelFactory.buildList(3);
56 const licenseModelList = FinalizedLicenseModelFactory.buildList(3);
57 const finalizedSoftwareProductList = VSPEditorFactory.buildList(4, {vendorId: finalizedLicenseModelList[0].id});
58 const softwareProductList = VSPEditorFactory.buildList(4, {vendorId: finalizedLicenseModelList[1].id});
59 const data = defaultStoreFactory.build({licenseModelList, finalizedLicenseModelList, softwareProductList, finalizedSoftwareProductList});
61 var results = mapStateToProps(data);
62 expect(results.finalizedLicenseModelList[0].softwareProductList.length).toEqual(finalizedSoftwareProductList.length);
66 it('Catalog view test', () => {
68 const dummyFunc = () => {};
69 const licenseModelList = FinalizedLicenseModelFactory.buildList(3);
70 const softwareProductList = VSPEditorFactory.buildList(4, {vendorId: licenseModelList[0].id});
71 const data = defaultStoreFactory.build({licenseModelList, softwareProductList});
74 onAddLicenseModelClick: dummyFunc,
75 onAddSoftwareProductClick: dummyFunc,
76 closeVspOverlay: dummyFunc,
77 onVspOverlayChange: dummyFunc,
78 onTabClick: dummyFunc,
80 onSelectLicenseModel: dummyFunc,
81 onSelectSoftwareProduct: dummyFunc,
82 resetOnboardingCatalogStore: ''
85 let params = {...func, ...mapStateToProps(data)};
86 const store = storeCreator();
88 let CatalogView = TestUtils.renderIntoDocument(
89 <Provider store={store}>
90 <OnboardingCatalogView
93 expect(CatalogView).toBeTruthy();
96 it('VendorItem view test', () => {
97 let vendor = FinalizedLicenseModelFactory.build();
98 const dummyFunc = () => {};
100 softwareProductList: VSPEditorFactory.buildList(4 ,{vendorId: vendor.id}),
102 onSelectVSP: dummyFunc,
103 shouldShowOverlay: false,
104 onVendorSelect: dummyFunc,
106 onVSPIconClick: dummyFunc,
109 let VendorItemView = TestUtils.renderIntoDocument(<VendorItem{...params}/>);
110 expect(VendorItemView).toBeTruthy();
114 it('VSPOverlay view test', () => {
117 VSPList: VSPEditorFactory.buildList(10 ,{vendorId: '1'}),
118 onSelectVSP: () => {}
121 let VSPOverlayView = TestUtils.renderIntoDocument(<div><VSPOverlay {...params}/></div>);
122 expect(VSPOverlayView).toBeTruthy();
125 it('CatalogItemDetails view test', () => {
128 catalogItemData: FinalizedLicenseModelFactory.build(),
130 catalogItemTypeClass: catalogItemTypes.LICENSE_MODEL
133 let CatalogItemDetailsView = TestUtils.renderIntoDocument(<div><CatalogItemDetails {...params}/></div>);
134 expect(CatalogItemDetailsView).toBeTruthy();
137 it('DetailsCatalogView view test', () => {
140 VLMList: FinalizedLicenseModelFactory.buildList(3),
141 VSPList: VSPEditorFactory.buildList(4),
142 onSelectVLM: () => {},
143 onSelectVSP: () => {},
149 let AllCatalog = TestUtils.renderIntoDocument(<DetailsCatalogView {...params}/>);
150 expect(AllCatalog).toBeTruthy();