chache result in onboarding 95/71795/4
authorYarin Dekel <yarind@amdocs.com>
Sun, 4 Nov 2018 13:00:34 +0000 (15:00 +0200)
committerAvi Gaffa <avi.gaffa@amdocs.com>
Sun, 4 Nov 2018 13:40:10 +0000 (13:40 +0000)
Issue-ID: SDC-1889
Change-Id: I99dc01cc32af99399bc232125b6195b7125e6c61
Signed-off-by: Yarin Dekel <yarind@amdocs.com>
17 files changed:
openecomp-ui/src/sdc-app/onboarding/OnboardingActionHelper.js
openecomp-ui/src/sdc-app/onboarding/onboard/DetailsCatalogView.jsx
openecomp-ui/src/sdc-app/onboarding/onboard/Onboard.js
openecomp-ui/src/sdc-app/onboarding/onboard/OnboardActionHelper.js
openecomp-ui/src/sdc-app/onboarding/onboard/OnboardConstants.js
openecomp-ui/src/sdc-app/onboarding/onboard/OnboardReducer.js
openecomp-ui/src/sdc-app/onboarding/onboard/OnboardView.jsx
openecomp-ui/src/sdc-app/onboarding/onboard/SearchReducer.js [new file with mode: 0644]
openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogActionHelper.js
openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogUtils.js
openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/OnboardingCatalogView.jsx
openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorCatalogView.jsx
openecomp-ui/src/sdc-app/onboarding/onboard/onboardingCatalog/VendorItem.jsx
openecomp-ui/src/sdc-app/onboarding/onboard/workspace/WorkspaceView.jsx
openecomp-ui/test/onboard/onboardingCatalog/test.js
openecomp-ui/test/onboard/onboardingCatalog/views.test.js
openecomp-ui/test/onboard/test.js

index b9ffdc3..c3cf8b2 100644 (file)
@@ -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,
index b535595..c2fb2e7 100644 (file)
@@ -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 => (
         <CatalogItemDetails
@@ -51,7 +53,8 @@ class DetailsCatalogView extends React.Component {
         onSelectVSP: PropTypes.func.isRequired,
         onAddVLM: PropTypes.func,
         onAddVSP: PropTypes.func,
-        filter: PropTypes.string.isRequired
+        filter: PropTypes.object.isRequired,
+        activeTabName: PropTypes.string
     };
 
     shouldComponentUpdate(nextProps) {
@@ -71,8 +74,9 @@ class DetailsCatalogView extends React.Component {
             onAddVLM,
             onSelectVLM,
             onSelectVSP,
-            filter = '',
-            onMigrate
+            filter,
+            onMigrate,
+            activeTabName
         } = this.props;
         return (
             <CatalogList onAddVLM={onAddVLM} onAddVSP={onAddVSP}>
@@ -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
                 })}
             </CatalogList>
         );
index 34f9b88..c3e2963 100644 (file)
@@ -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 }) =>
index 8443fe9..9f2b3dd 100644 (file)
@@ -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
+            }
         });
     },
 
index 6fbf265..fc34f74 100644 (file)
@@ -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
 });
index 39ceb31..28cd7e2 100644 (file)
@@ -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) => {
index c5cf292..b21ea3e 100644 (file)
@@ -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 (
             <div className="catalog-view">
                 <Filter />
@@ -101,8 +107,8 @@ class OnboardView extends React.Component {
                     <OnboardHeader
                         activeTab={activeTab}
                         onTabClick={onTabClick}
-                        searchValue={searchValue}
-                        onSearch={value => onSearch(value)}
+                        searchValue={searchValue[activeTabName]}
+                        onSearch={value => onSearch(value, activeTabName)}
                     />
                     {this.renderViewByTab(activeTab)}
                 </div>
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 (file)
index 0000000..8440091
--- /dev/null
@@ -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;
+    }
+};
index aebb829..e4c7b5c 100644 (file)
@@ -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
index d1e401f..1e87480 100644 (file)
@@ -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
     );
 };
index ec3d455..bd7fff0 100644 (file)
@@ -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}
                     />
                 );
index ec45258..69ddb98 100644 (file)
@@ -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 = ({
         <CatalogList
             onAddVLM={showAddButtons ? onAddVLM : false}
             onAddVSP={showAddButtons ? onAddVSP : false}>
-            {filterCatalogItemsByType({ items: licenseModelList, filter }).map(
-                vlm => (
-                    <VendorItem
-                        key={vlm.id}
-                        vlm={vlm}
-                        onAddVSP={onAddVSP}
-                        onSelectVSP={handeleSelectVSP}
-                        shouldShowOverlay={currentOverlay === vlm.id}
-                        onVSPButtonClick={handleOnVspButtonClick}
-                        onVendorSelect={onVendorSelect}
-                        onMigrate={onMigrate}
-                        vendor={vlm}
-                    />
-                )
-            )}
+            {filterCatalogItemsByType({
+                items: licenseModelList,
+                filter: filter[activeTabName]
+            }).map(vlm => (
+                <VendorItem
+                    key={vlm.id}
+                    vlm={vlm}
+                    onAddVSP={onAddVSP}
+                    onSelectVSP={handeleSelectVSP}
+                    shouldShowOverlay={currentOverlay === vlm.id}
+                    onVSPButtonClick={handleOnVspButtonClick}
+                    onVendorSelect={onVendorSelect}
+                    onMigrate={onMigrate}
+                    vendor={vlm}
+                />
+            ))}
         </CatalogList>
     );
 };
@@ -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 => (
                     <CatalogItemDetails
                         key={vsp.id}
@@ -109,6 +112,10 @@ const SoftwareProductListByVendor = ({
 };
 
 class VendorCatalogView extends React.Component {
+    componentDidMount() {
+        const { onVendorSelect } = this.props;
+        onVendorSelect(false);
+    }
     render() {
         let { selectedVendor } = this.props;
         return selectedVendor ? (
index d3e0eb4..73545d7 100644 (file)
@@ -39,11 +39,12 @@ class VendorItem extends React.Component {
         onSelectVSP: PropTypes.func,
         onVendorSelect: PropTypes.func,
         onAddVSP: PropTypes.func,
-        onVSPButtonClick: PropTypes.func
+        onVSPButtonClick: PropTypes.func,
+        activeTabName: PropTypes.string
     };
     handleSeeMore = () => {
-        const { onVendorSelect, vendor } = this.props;
-        onVendorSelect(vendor);
+        const { onVendorSelect, vendor, activeTabName } = this.props;
+        onVendorSelect(vendor, activeTabName);
     };
     render() {
         let { vendor, onSelectVSP, shouldShowOverlay, onMigrate } = this.props;
index 8cc396f..0297189 100644 (file)
@@ -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}
             />
         </div>
     );
index 4e38675..9cbae40 100644 (file)
@@ -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
+        );
+    });
 });
index 63b49aa..8b193be 100644 (file)
  */
 
 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(
-                       <Provider store={store}>
-                               <OnboardingCatalogView
-                                       {...params}/>
-                       </Provider>);
-               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(<VendorItem{...params}/>);
-               expect(VendorItemView).toBeTruthy();
-       });
-
-
-       it('VSPOverlay view test', () => {
-
-               let params = {
-                       VSPList: VSPEditorFactory.buildList(10 ,{vendorId: '1'}),
-                       onSelectVSP: () => {}
-               };
-
-               let VSPOverlayView = TestUtils.renderIntoDocument(<div><VSPOverlay {...params}/></div>);
-               expect(VSPOverlayView).toBeTruthy();
-       });
-
-       it('CatalogItemDetails view test', () => {
-
-               let params = {
-                       catalogItemData: FinalizedLicenseModelFactory.build(),
-                       onSelect: () => {},
-                       catalogItemTypeClass: catalogItemTypes.LICENSE_MODEL
-               };
-
-               let CatalogItemDetailsView = TestUtils.renderIntoDocument(<div><CatalogItemDetails {...params}/></div>);
-               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(<DetailsCatalogView {...params}/>);
-               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(
+            <Provider store={store}>
+                <OnboardingCatalogView {...params} />
+            </Provider>
+        );
+        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(
+            <VendorItem {...params} />
+        );
+        expect(VendorItemView).toBeTruthy();
+    });
+
+    it('VSPOverlay view test', () => {
+        let params = {
+            VSPList: VSPEditorFactory.buildList(10, { vendorId: '1' }),
+            onSelectVSP: () => {}
+        };
+
+        let VSPOverlayView = TestUtils.renderIntoDocument(
+            <div>
+                <VSPOverlay {...params} />
+            </div>
+        );
+        expect(VSPOverlayView).toBeTruthy();
+    });
+
+    it('CatalogItemDetails view test', () => {
+        let params = {
+            catalogItemData: FinalizedLicenseModelFactory.build(),
+            onSelect: () => {},
+            catalogItemTypeClass: catalogItemTypes.LICENSE_MODEL
+        };
+
+        let CatalogItemDetailsView = TestUtils.renderIntoDocument(
+            <div>
+                <CatalogItemDetails {...params} />
+            </div>
+        );
+        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(
+            <DetailsCatalogView {...params} />
+        );
+        expect(AllCatalog).toBeTruthy();
+    });
 });
index b2131ce..0cd703e 100644 (file)
@@ -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);
     });