From 811fb48f0c31422e93aba218e76ed296fceeb0f0 Mon Sep 17 00:00:00 2001 From: Yarin Dekel Date: Sun, 4 Nov 2018 15:00:34 +0200 Subject: [PATCH] chache result in onboarding Issue-ID: SDC-1889 Change-Id: I99dc01cc32af99399bc232125b6195b7125e6c61 Signed-off-by: Yarin Dekel --- .../sdc-app/onboarding/OnboardingActionHelper.js | 6 +- .../onboarding/onboard/DetailsCatalogView.jsx | 20 +- .../src/sdc-app/onboarding/onboard/Onboard.js | 17 +- .../onboarding/onboard/OnboardActionHelper.js | 21 +- .../sdc-app/onboarding/onboard/OnboardConstants.js | 6 + .../sdc-app/onboarding/onboard/OnboardReducer.js | 6 +- .../src/sdc-app/onboarding/onboard/OnboardView.jsx | 18 +- .../sdc-app/onboarding/onboard/SearchReducer.js | 34 +++ .../OnboardingCatalogActionHelper.js | 3 - .../onboardingCatalog/OnboardingCatalogUtils.js | 33 +-- .../onboardingCatalog/OnboardingCatalogView.jsx | 9 +- .../onboardingCatalog/VendorCatalogView.jsx | 47 ++-- .../onboard/onboardingCatalog/VendorItem.jsx | 7 +- .../onboarding/onboard/workspace/WorkspaceView.jsx | 8 +- .../test/onboard/onboardingCatalog/test.js | 91 +++---- .../test/onboard/onboardingCatalog/views.test.js | 284 ++++++++++++--------- openecomp-ui/test/onboard/test.js | 17 +- 17 files changed, 372 insertions(+), 255 deletions(-) create mode 100644 openecomp-ui/src/sdc-app/onboarding/onboard/SearchReducer.js diff --git a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js index b9ffdc3076..c3cf8b292f 100644 --- a/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js +++ b/openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js @@ -4,9 +4,9 @@ * 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. @@ -31,7 +31,6 @@ import SoftwareProductComponentProcessesActionHelper from './softwareProduct/com import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js'; import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js'; import ComputeFlavorActionHelper from './softwareProduct/components/compute/ComputeFlavorActionHelper.js'; -import OnboardActionHelper from './onboard/OnboardActionHelper.js'; import MergeEditorActionHelper from 'sdc-app/common/merge/MergeEditorActionHelper.js'; import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js'; import { actionTypes, enums } from './OnboardingConstants.js'; @@ -82,7 +81,6 @@ const OnboardingActionHelper = { await FeaturesActionHelper.getFeaturesList(dispatch); UsersActionHelper.fetchUsersList(dispatch); this.loadItemsLists(dispatch); - OnboardActionHelper.resetOnboardStore(dispatch); setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG); dispatch({ type: filterActionTypes.FILTER_DATA_CHANGED, diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/DetailsCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/DetailsCatalogView.jsx index b535595355..c2fb2e7fd8 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/DetailsCatalogView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/DetailsCatalogView.jsx @@ -27,10 +27,12 @@ function renderCatalogItems({ filter, onSelect, onMigrate, - users + users, + activeTabName }) { + const filteredValue = filter[activeTabName]; const filteredItems = items.length - ? filterCatalogItemsByType({ items, filter }) + ? filterCatalogItemsByType({ items, filter: filteredValue }) : []; return filteredItems.map(item => ( @@ -82,7 +86,8 @@ class DetailsCatalogView extends React.Component { filter, onSelect: onSelectVLM, onMigrate, - users + users, + activeTabName })} {renderCatalogItems({ items: VSPList, @@ -90,7 +95,8 @@ class DetailsCatalogView extends React.Component { filter, onSelect: onSelectVSP, onMigrate, - users + users, + activeTabName })} ); diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js index 34f9b88a7b..c3e2963412 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js @@ -4,9 +4,9 @@ * 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. @@ -22,6 +22,7 @@ import LicenseModelCreationActionHelper from '../licenseModel/creation/LicenseMo import SoftwareProductCreationActionHelper from '../softwareProduct/creation/SoftwareProductCreationActionHelper.js'; import sortByStringProperty from 'nfvo-utils/sortByStringProperty.js'; import { tabsMapping } from './onboardingCatalog/OnboardingCatalogConstants.js'; +import { tabsMapping as onboardTabsMapping } from './OnboardConstants'; import { itemStatus } from 'sdc-app/common/helpers/ItemsHelperConstants.js'; import { catalogItemStatuses } from './onboardingCatalog/OnboardingCatalogConstants.js'; @@ -36,6 +37,9 @@ export const mapStateToProps = ({ finalizedSoftwareProductList, filteredItems }) => { + const activeTabName = Object.keys(onboardTabsMapping).filter(item => { + return onboardTabsMapping[item] === activeTab; + })[0]; const fullSoftwareProducts = softwareProductList .filter( vsp => @@ -104,6 +108,7 @@ export const mapStateToProps = ({ archivedLicenseModelList, archivedSoftwareProductList, fullLicenseModelList, + activeTabName, activeTab, catalogActiveTab, searchValue, @@ -143,8 +148,12 @@ const mapActionsToProps = dispatch => { onCatalogTabClick: tab => OnboardingCatalogActionHelper.changeActiveTab(dispatch, tab), onTabClick: tab => OnboardActionHelper.changeActiveTab(dispatch, tab), - onSearch: searchValue => - OnboardActionHelper.changeSearchValue(dispatch, searchValue), + onSearch: (searchValue, activeTab) => + OnboardActionHelper.changeSearchValue( + dispatch, + searchValue, + activeTab + ), onVendorSelect: vendor => OnboardingCatalogActionHelper.onVendorSelect(dispatch, { vendor }), onMigrate: ({ softwareProduct }) => diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js index 8443fe950b..9f2b3ddb12 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js @@ -4,16 +4,20 @@ * 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 { tabsMapping, actionTypes } from './OnboardConstants.js'; +import { + tabsMapping, + actionTypes, + searchValueObj +} from './OnboardConstants.js'; import ScreensHelper from 'sdc-app/common/helpers/ScreensHelper.js'; import { enums, screenTypes } from 'sdc-app/onboarding/OnboardingConstants.js'; import VersionsPageActionHelper from 'sdc-app/onboarding/versionsPage/VersionsPageActionHelper.js'; @@ -30,7 +34,6 @@ const OnboardActionHelper = { }); }, changeActiveTab(dispatch, activeTab) { - this.clearSearchValue(dispatch); dispatch({ type: actionTypes.CHANGE_ACTIVE_ONBOARD_TAB, activeTab @@ -47,16 +50,18 @@ const OnboardActionHelper = { } }); }, - changeSearchValue(dispatch, searchValue) { + changeSearchValue(dispatch, searchValue, activeTab) { dispatch({ type: actionTypes.CHANGE_SEARCH_VALUE, - searchValue + payload: { searchValue, activeTab } }); }, clearSearchValue(dispatch) { dispatch({ - type: actionTypes.CHANGE_SEARCH_VALUE, - searchValue: '' + type: actionTypes.CLEAR_SEARCH_VALUE, + payload: { + searchValue: searchValueObj + } }); }, diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardConstants.js b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardConstants.js index 6fbf265afb..fc34f74510 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardConstants.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardConstants.js @@ -20,9 +20,15 @@ export const tabsMapping = { CATALOG: 2 }; +export const searchValueObj = { + WORKSPACE: '', + CATALOG: '' +}; + export const actionTypes = keyMirror({ CHANGE_ACTIVE_ONBOARD_TAB: null, CHANGE_SEARCH_VALUE: null, + CLEAR_SEARCH_VALUE: null, RESET_ONBOARD_STORE: null, VSP_MIGRATION: null }); diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardReducer.js b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardReducer.js index 39ceb31b34..28cd7e248c 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardReducer.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardReducer.js @@ -17,6 +17,7 @@ import { actionTypes, tabsMapping } from './OnboardConstants.js'; import { combineReducers } from 'redux'; import onboardingCatalogReducer from './onboardingCatalog/OnboardingCatalogReducer.js'; import filterReducer from './filter/FilterReducer.js'; +import searchReducer from './SearchReducer.js'; const onboardReducer = combineReducers({ onboardingCatalog: onboardingCatalogReducer, @@ -25,10 +26,7 @@ const onboardReducer = combineReducers({ action.type === actionTypes.CHANGE_ACTIVE_ONBOARD_TAB ? action.activeTab : state, - searchValue: (state = '', action) => - action.type === actionTypes.CHANGE_SEARCH_VALUE - ? action.searchValue - : state + searchValue: searchReducer }); export default (state, action) => { diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardView.jsx index c5cf2926d4..b21ea3ee80 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/OnboardView.jsx @@ -4,9 +4,9 @@ * 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. @@ -78,7 +78,7 @@ class OnboardView extends React.Component { onSearch: PropTypes.func.isRequired, activeTab: PropTypes.number.isRequired, catalogActiveTab: PropTypes.number.isRequired, - searchValue: PropTypes.string.isRequired, + searchValue: PropTypes.object.isRequired, onMigrate: PropTypes.func.isRequired }; renderViewByTab(activeTab) { @@ -93,7 +93,13 @@ class OnboardView extends React.Component { } render() { - let { activeTab, onTabClick, onSearch, searchValue } = this.props; + let { + activeTab, + activeTabName, + onTabClick, + onSearch, + searchValue + } = this.props; return (
@@ -101,8 +107,8 @@ class OnboardView extends React.Component { onSearch(value)} + searchValue={searchValue[activeTabName]} + onSearch={value => onSearch(value, activeTabName)} /> {this.renderViewByTab(activeTab)}
diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/SearchReducer.js b/openecomp-ui/src/sdc-app/onboarding/onboard/SearchReducer.js new file mode 100644 index 0000000000..8440091265 --- /dev/null +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/SearchReducer.js @@ -0,0 +1,34 @@ +/* +* Copyright © 2018 European Support Limited +* +* 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 { actionTypes, searchValueObj } from '../onboard/OnboardConstants.js'; + +export default (state = searchValueObj, action) => { + switch (action.type) { + case actionTypes.CHANGE_SEARCH_VALUE: + return { + ...state, + ...{ + [action.payload.activeTab]: action.payload.searchValue + } + }; + case actionTypes.CLEAR_SEARCH_VALUE: + return { + ...action.payload.searchValue + }; + default: + return state; + } +}; diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js index aebb829a88..e4c7b5ce6b 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js @@ -17,7 +17,6 @@ import React from 'react'; import i18n from 'nfvo-utils/i18n/i18n.js'; import { actionTypes } from './OnboardingCatalogConstants.js'; import { actionTypes as modalActionTypes } from 'nfvo-components/modal/GlobalModalConstants.js'; -import OnboardActionHelper from '../OnboardActionHelper.js'; import SoftwareProductActionHelper from 'sdc-app/onboarding/softwareProduct/SoftwareProductActionHelper.js'; function getMessageForMigration(name) { @@ -47,14 +46,12 @@ const OnboardingCatalogActionHelper = { }); }, changeActiveTab(dispatch, activeTab) { - OnboardActionHelper.clearSearchValue(dispatch); dispatch({ type: actionTypes.CHANGE_ACTIVE_CATALOG_TAB, activeTab }); }, onVendorSelect(dispatch, { vendor }) { - OnboardActionHelper.clearSearchValue(dispatch); dispatch({ type: actionTypes.ONBOARDING_CATALOG_OPEN_VENDOR_PAGE, selectedVendor: vendor diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogUtils.js b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogUtils.js index d1e401f57d..1e87480605 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogUtils.js +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogUtils.js @@ -1,21 +1,22 @@ -/*! - * 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. - */ +/* +* Copyright © 2018 European Support Limited +* +* 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. +*/ export const filterCatalogItemsByType = ({ items, filter }) => { return items.filter( - item => item.name.toLowerCase().indexOf(filter.toLowerCase()) > -1 + item => + item.name.toLowerCase().indexOf(filter && filter.toLowerCase()) > -1 ); }; diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx index ec3d4550ef..bd7fff0dd1 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx @@ -4,9 +4,9 @@ * 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. @@ -45,7 +45,8 @@ class OnboardingCatalogView extends React.Component { searchValue, onMigrate, filteredItems, - isArchived + isArchived, + activeTabName } = this.props; const { vlmList, vspList } = filteredItems; @@ -74,6 +75,7 @@ class OnboardingCatalogView extends React.Component { WCTabsMapping.CATALOG ) } + activeTabName={activeTabName} filter={searchValue} onMigrate={onMigrate} /> @@ -107,6 +109,7 @@ class OnboardingCatalogView extends React.Component { selectedVendor={selectedVendor} onVspOverlayChange={onVspOverlayChange} onMigrate={onMigrate} + activeTabName={activeTabName} filter={searchValue} /> ); diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx index ec45258eb9..69ddb98f34 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx @@ -4,9 +4,9 @@ * 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. @@ -31,7 +31,8 @@ const VendorList = ({ filter, onMigrate, users, - isArchived + isArchived, + activeTabName }) => { const showAddButtons = !isArchived; const handeleSelectVSP = vsp => onSelectVSP(vsp, users); @@ -42,21 +43,22 @@ const VendorList = ({ - {filterCatalogItemsByType({ items: licenseModelList, filter }).map( - vlm => ( - - ) - )} + {filterCatalogItemsByType({ + items: licenseModelList, + filter: filter[activeTabName] + }).map(vlm => ( + + ))} ); }; @@ -70,7 +72,8 @@ const SoftwareProductListByVendor = ({ filter, onMigrate, users, - isArchived + isArchived, + activeTabName }) => { const handleAddVsp = !isArchived ? () => onAddVSP(selectedVendor.id) @@ -93,7 +96,7 @@ const SoftwareProductListByVendor = ({ /> {filterCatalogItemsByType({ items: selectedVendor.softwareProductList, - filter + filter: filter[activeTabName] }).map(vsp => ( { - const { onVendorSelect, vendor } = this.props; - onVendorSelect(vendor); + const { onVendorSelect, vendor, activeTabName } = this.props; + onVendorSelect(vendor, activeTabName); }; render() { let { vendor, onSelectVSP, shouldShowOverlay, onMigrate } = this.props; diff --git a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx index 8cc396f6fc..0297189fc0 100644 --- a/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx +++ b/openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx @@ -4,9 +4,9 @@ * 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. @@ -28,7 +28,8 @@ const WorkspaceView = props => { searchValue, onMigrate, filteredItems: { vspList, vlmList }, - isArchived + isArchived, + activeTabName } = props; const handleSelectVSP = (item, users) => onSelectSoftwareProduct(item, users, tabsMapping.WORKSPACE); @@ -49,6 +50,7 @@ const WorkspaceView = props => { onSelectVSP={handleSelectVSP} onMigrate={onMigrate} filter={searchValue} + activeTabName={activeTabName} /> ); diff --git a/openecomp-ui/test/onboard/onboardingCatalog/test.js b/openecomp-ui/test/onboard/onboardingCatalog/test.js index 4e38675fb7..9cbae40a45 100644 --- a/openecomp-ui/test/onboard/onboardingCatalog/test.js +++ b/openecomp-ui/test/onboard/onboardingCatalog/test.js @@ -4,60 +4,65 @@ * 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 {storeCreator} from 'sdc-app/AppStore.js'; -import {OnboardingCatalogStoreFactory} from 'test-utils/factories/onboard/OnboardingCatalogFactories.js'; -import {LicenseModelStoreFactory} from 'test-utils/factories/licenseModel/LicenseModelFactories.js'; +import { storeCreator } from 'sdc-app/AppStore.js'; +import { OnboardingCatalogStoreFactory } from 'test-utils/factories/onboard/OnboardingCatalogFactories.js'; +import { LicenseModelStoreFactory } from 'test-utils/factories/licenseModel/LicenseModelFactories.js'; import OnboardingCatalogActionHelper from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js'; -import {tabsMapping} from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogConstants.js'; - describe('Onboarding Catalog Module Tests', () => { - it('should return default state', () => { - const store = storeCreator(); - const expectedStore = OnboardingCatalogStoreFactory.build(); - expect(store.getState().onboard.onboardingCatalog).toEqual(expectedStore); - }); - - it('should change active tab to All', () => { - const store = storeCreator(); - const expectedStore = OnboardingCatalogStoreFactory.build({activeTab: tabsMapping.ACTIVE}); - OnboardingCatalogActionHelper.changeActiveTab(store.dispatch, tabsMapping.ACTIVE); - expect(store.getState().onboard.onboardingCatalog).toEqual(expectedStore); - }); - - - it('should change VSP Overlay', () => { - const vendor = LicenseModelStoreFactory.build(); - const store = storeCreator(); - const expectedStore = OnboardingCatalogStoreFactory.build({vendorCatalog: {vspOverlay: vendor.id}}); - OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, vendor); - expect(store.getState().onboard.onboardingCatalog).toEqual(expectedStore); - }); + it('should return default state', () => { + const store = storeCreator(); + const expectedStore = OnboardingCatalogStoreFactory.build(); + expect(store.getState().onboard.onboardingCatalog).toEqual( + expectedStore + ); + }); - it('should close VSP Overlay', () => { - const vendor = LicenseModelStoreFactory.build(); - const store = storeCreator(); - const expectedStore = OnboardingCatalogStoreFactory.build({vendorCatalog: {vspOverlay: null}}); - OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, vendor); - OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, null); - expect(store.getState().onboard.onboardingCatalog).toEqual(expectedStore); - }); + it('should change VSP Overlay', () => { + const vendor = LicenseModelStoreFactory.build(); + const store = storeCreator(); + const expectedStore = OnboardingCatalogStoreFactory.build({ + vendorCatalog: { vspOverlay: vendor.id } + }); + OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, vendor); + expect(store.getState().onboard.onboardingCatalog).toEqual( + expectedStore + ); + }); - it('should select vendor', () => { - const vendor = LicenseModelStoreFactory.build(); - const store = storeCreator(); - const expectedStore = OnboardingCatalogStoreFactory.build({vendorCatalog: {selectedVendor: vendor}}); - OnboardingCatalogActionHelper.onVendorSelect(store.dispatch, {vendor}); - expect(store.getState().onboard.onboardingCatalog).toEqual(expectedStore); - }); + it('should close VSP Overlay', () => { + const vendor = LicenseModelStoreFactory.build(); + const store = storeCreator(); + const expectedStore = OnboardingCatalogStoreFactory.build({ + vendorCatalog: { vspOverlay: null } + }); + OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, vendor); + OnboardingCatalogActionHelper.changeVspOverlay(store.dispatch, null); + expect(store.getState().onboard.onboardingCatalog).toEqual( + expectedStore + ); + }); + it('should select vendor', () => { + const vendor = LicenseModelStoreFactory.build(); + const store = storeCreator(); + const expectedStore = OnboardingCatalogStoreFactory.build({ + vendorCatalog: { selectedVendor: vendor } + }); + OnboardingCatalogActionHelper.onVendorSelect(store.dispatch, { + vendor + }); + expect(store.getState().onboard.onboardingCatalog).toEqual( + expectedStore + ); + }); }); diff --git a/openecomp-ui/test/onboard/onboardingCatalog/views.test.js b/openecomp-ui/test/onboard/onboardingCatalog/views.test.js index 63b49aafab..8b193befa9 100644 --- a/openecomp-ui/test/onboard/onboardingCatalog/views.test.js +++ b/openecomp-ui/test/onboard/onboardingCatalog/views.test.js @@ -15,138 +15,168 @@ */ import React from 'react'; -import {Provider} from 'react-redux'; -import {storeCreator} from 'sdc-app/AppStore.js'; +import { Provider } from 'react-redux'; +import { storeCreator } from 'sdc-app/AppStore.js'; import TestUtils from 'react-dom/test-utils'; -import {defaultStoreFactory} from 'test-utils/factories/onboard/OnboardingCatalogFactories.js'; -import {FinalizedLicenseModelFactory} from 'test-utils/factories/licenseModel/LicenseModelFactories.js'; -import {VSPEditorFactory} from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js'; -import {mapStateToProps} from 'sdc-app/onboarding/onboard/Onboard.js'; -import {catalogItemTypes} from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogConstants.js'; +import { defaultStoreFactory } from 'test-utils/factories/onboard/OnboardingCatalogFactories.js'; +import { FinalizedLicenseModelFactory } from 'test-utils/factories/licenseModel/LicenseModelFactories.js'; +import { VSPEditorFactory } from 'test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js'; +import { mapStateToProps } from 'sdc-app/onboarding/onboard/Onboard.js'; +import { catalogItemTypes } from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogConstants.js'; import OnboardingCatalogView from 'sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx'; import VendorItem from 'sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx'; import VSPOverlay from 'sdc-app/onboarding/onboard/onboardingCatalog/VSPOverlay.jsx'; import CatalogItemDetails from 'sdc-app/onboarding/onboard/CatalogItemDetails.jsx'; import DetailsCatalogView from 'sdc-app/onboarding/onboard/DetailsCatalogView.jsx'; - -describe('OnBoarding Catalog test - View: ', function () { - - - it('mapStateToProps mapper exists', () => { - expect(mapStateToProps).toBeTruthy(); - }); - - it('mapStateToProps data test', () => { - - const licenseModelList = FinalizedLicenseModelFactory.buildList(3); - const softwareProductList = VSPEditorFactory.buildList(4); - const data = defaultStoreFactory.build({licenseModelList, softwareProductList}); - - var results = mapStateToProps(data); - expect(results.softwareProductList).toBeTruthy(); - expect(results.licenseModelList).toBeTruthy(); - expect(results.activeTab).toBeTruthy(); - expect(results.licenseModelList.length).toEqual(3); - }); - - it('licenseModelList creating algorithm test', () => { - - const finalizedLicenseModelList = FinalizedLicenseModelFactory.buildList(3); - const licenseModelList = FinalizedLicenseModelFactory.buildList(3); - const finalizedSoftwareProductList = VSPEditorFactory.buildList(4, {vendorId: finalizedLicenseModelList[0].id}); - const softwareProductList = VSPEditorFactory.buildList(4, {vendorId: finalizedLicenseModelList[1].id}); - const data = defaultStoreFactory.build({licenseModelList, finalizedLicenseModelList, softwareProductList, finalizedSoftwareProductList}); - - var results = mapStateToProps(data); - expect(results.finalizedLicenseModelList[0].softwareProductList.length).toEqual(finalizedSoftwareProductList.length); - }); - - - it('Catalog view test', () => { - - const dummyFunc = () => {}; - const licenseModelList = FinalizedLicenseModelFactory.buildList(3); - const softwareProductList = VSPEditorFactory.buildList(4, {vendorId: licenseModelList[0].id}); - const data = defaultStoreFactory.build({licenseModelList, softwareProductList}); - - const func = { - onAddLicenseModelClick: dummyFunc, - onAddSoftwareProductClick: dummyFunc, - closeVspOverlay: dummyFunc, - onVspOverlayChange: dummyFunc, - onTabClick: dummyFunc, - onSearch: dummyFunc, - onSelectLicenseModel: dummyFunc, - onSelectSoftwareProduct: dummyFunc, - resetOnboardingCatalogStore: '' - }; - - let params = {...func, ...mapStateToProps(data)}; - const store = storeCreator(); - - let CatalogView = TestUtils.renderIntoDocument( - - - ); - expect(CatalogView).toBeTruthy(); - }); - - it('VendorItem view test', () => { - let vendor = FinalizedLicenseModelFactory.build(); - const dummyFunc = () => {}; - let params = { - softwareProductList: VSPEditorFactory.buildList(4 ,{vendorId: vendor.id}), - vendor, - onSelectVSP: dummyFunc, - shouldShowOverlay: false, - onVendorSelect: dummyFunc, - onAddVSP: dummyFunc, - onVSPIconClick: dummyFunc, - }; - - let VendorItemView = TestUtils.renderIntoDocument(); - expect(VendorItemView).toBeTruthy(); - }); - - - it('VSPOverlay view test', () => { - - let params = { - VSPList: VSPEditorFactory.buildList(10 ,{vendorId: '1'}), - onSelectVSP: () => {} - }; - - let VSPOverlayView = TestUtils.renderIntoDocument(
); - expect(VSPOverlayView).toBeTruthy(); - }); - - it('CatalogItemDetails view test', () => { - - let params = { - catalogItemData: FinalizedLicenseModelFactory.build(), - onSelect: () => {}, - catalogItemTypeClass: catalogItemTypes.LICENSE_MODEL - }; - - let CatalogItemDetailsView = TestUtils.renderIntoDocument(
); - expect(CatalogItemDetailsView).toBeTruthy(); - }); - - it('DetailsCatalogView view test', () => { - - let params = { - VLMList: FinalizedLicenseModelFactory.buildList(3), - VSPList: VSPEditorFactory.buildList(4), - onSelectVLM: () => {}, - onSelectVSP: () => {}, - onAddVLM: () => {}, - onAddVSP: () => {}, - filter: '' - }; - - let AllCatalog = TestUtils.renderIntoDocument(); - expect(AllCatalog).toBeTruthy(); - }); +import { + searchValueObj, + tabsMapping +} from 'sdc-app/onboarding/onboard/OnboardConstants'; + +describe('OnBoarding Catalog test - View: ', function() { + it('mapStateToProps mapper exists', () => { + expect(mapStateToProps).toBeTruthy(); + }); + + it('mapStateToProps data test', () => { + const licenseModelList = FinalizedLicenseModelFactory.buildList(3); + const softwareProductList = VSPEditorFactory.buildList(4); + const data = defaultStoreFactory.build({ + licenseModelList, + softwareProductList + }); + + var results = mapStateToProps(data); + expect(results.softwareProductList).toBeTruthy(); + expect(results.licenseModelList).toBeTruthy(); + expect(results.activeTab).toBeTruthy(); + expect(results.licenseModelList.length).toEqual(3); + }); + + it('licenseModelList creating algorithm test', () => { + const finalizedLicenseModelList = FinalizedLicenseModelFactory.buildList( + 3 + ); + const licenseModelList = FinalizedLicenseModelFactory.buildList(3); + const finalizedSoftwareProductList = VSPEditorFactory.buildList(4, { + vendorId: finalizedLicenseModelList[0].id + }); + const softwareProductList = VSPEditorFactory.buildList(4, { + vendorId: finalizedLicenseModelList[1].id + }); + const data = defaultStoreFactory.build({ + licenseModelList, + finalizedLicenseModelList, + softwareProductList, + finalizedSoftwareProductList + }); + + var results = mapStateToProps(data); + expect( + results.finalizedLicenseModelList[0].softwareProductList.length + ).toEqual(finalizedSoftwareProductList.length); + }); + + it('Catalog view test', () => { + const dummyFunc = () => {}; + const licenseModelList = FinalizedLicenseModelFactory.buildList(3); + const softwareProductList = VSPEditorFactory.buildList(4, { + vendorId: licenseModelList[0].id + }); + const data = defaultStoreFactory.build({ + licenseModelList, + softwareProductList + }); + + const func = { + onAddLicenseModelClick: dummyFunc, + onAddSoftwareProductClick: dummyFunc, + closeVspOverlay: dummyFunc, + onVspOverlayChange: dummyFunc, + onTabClick: dummyFunc, + onSearch: dummyFunc, + onSelectLicenseModel: dummyFunc, + onSelectSoftwareProduct: dummyFunc, + resetOnboardingCatalogStore: '' + }; + + let params = { ...func, ...mapStateToProps(data) }; + const store = storeCreator(); + + let CatalogView = TestUtils.renderIntoDocument( + + + + ); + expect(CatalogView).toBeTruthy(); + }); + + it('VendorItem view test', () => { + let vendor = FinalizedLicenseModelFactory.build(); + const dummyFunc = () => {}; + let params = { + softwareProductList: VSPEditorFactory.buildList(4, { + vendorId: vendor.id + }), + vendor, + onSelectVSP: dummyFunc, + shouldShowOverlay: false, + onVendorSelect: dummyFunc, + onAddVSP: dummyFunc, + onVSPIconClick: dummyFunc + }; + + let VendorItemView = TestUtils.renderIntoDocument( + + ); + expect(VendorItemView).toBeTruthy(); + }); + + it('VSPOverlay view test', () => { + let params = { + VSPList: VSPEditorFactory.buildList(10, { vendorId: '1' }), + onSelectVSP: () => {} + }; + + let VSPOverlayView = TestUtils.renderIntoDocument( +
+ +
+ ); + expect(VSPOverlayView).toBeTruthy(); + }); + + it('CatalogItemDetails view test', () => { + let params = { + catalogItemData: FinalizedLicenseModelFactory.build(), + onSelect: () => {}, + catalogItemTypeClass: catalogItemTypes.LICENSE_MODEL + }; + + let CatalogItemDetailsView = TestUtils.renderIntoDocument( +
+ +
+ ); + expect(CatalogItemDetailsView).toBeTruthy(); + }); + + it('DetailsCatalogView view test when filter obj', () => { + let params = { + VLMList: FinalizedLicenseModelFactory.buildList(3), + VSPList: VSPEditorFactory.buildList(4), + onSelectVLM: () => {}, + onSelectVSP: () => {}, + onAddVLM: () => {}, + onAddVSP: () => {}, + filter: searchValueObj, + activeTabName: Object.keys(tabsMapping)[0] + }; + + let AllCatalog = TestUtils.renderIntoDocument( + + ); + expect(AllCatalog).toBeTruthy(); + }); }); diff --git a/openecomp-ui/test/onboard/test.js b/openecomp-ui/test/onboard/test.js index b2131ceed5..0cd703ed6c 100644 --- a/openecomp-ui/test/onboard/test.js +++ b/openecomp-ui/test/onboard/test.js @@ -4,9 +4,9 @@ * 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. @@ -60,10 +60,19 @@ describe('Onboard Module Tests', () => { it('should change searchValue', () => { const store = storeCreator(); + const searchValue = 'test'; + const searchValueObj = { + WORKSPACE: searchValue, + CATALOG: '' + }; const expectedStore = OnboardStoreFactory.build({ - searchValue: 'hello' + searchValue: searchValueObj }); - OnboardActionHelper.changeSearchValue(store.dispatch, 'hello'); + OnboardActionHelper.changeSearchValue( + store.dispatch, + searchValue, + 'WORKSPACE' + ); expect(store.getState().onboard).toEqual(expectedStore); }); -- 2.16.6