diff options
Diffstat (limited to 'test/tierSupport/autoCompleteSearchBar')
4 files changed, 0 insertions, 939 deletions
diff --git a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBar.test.js b/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBar.test.js deleted file mode 100644 index dc4ebf4..0000000 --- a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBar.test.js +++ /dev/null @@ -1,313 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -import {expect, deep} from 'chai'; -import React from 'react'; -import {Provider} from 'react-redux'; -import sinon from 'sinon'; -import configureStore from 'redux-mock-store'; -import thunk from 'redux-thunk'; -import {storeCreator} from 'app/AppStore.js'; -import TestUtils from 'react-dom/test-utils'; -import { - autoCompleteSearchBarActionTypes, - ERROR_INVALID_SEARCH_TERMS, - TS_BACKEND_SEARCH_SELECTED_NODE_URL, - NO_MATCHES_FOUND -} from 'generic-components/autoCompleteSearchBar/AutoCompleteSearchBarConstants.js'; -import {AutoCompleteSearchBar} from 'generic-components/autoCompleteSearchBar/AutoCompleteSearchBar.jsx'; -import {ERROR_RETRIEVING_DATA, POST, POST_HEADER} from 'app/networking/NetworkConstants.js'; -import {tierSupportActionTypes, TSUI_SEARCH_URL} from 'app/tierSupport/TierSupportConstants.js'; - -import {mount, shallow} from 'enzyme'; -import i18n from 'utils/i18n/i18n'; -import { - queryRequestedValues, - clearSuggestionsTextField, - onSuggestionsChange, - onSuggestionsClearRequested, - querySelectedNodeElement, - getInvalidSearchInputEvent -} from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarActions.js'; -import * as networkCall from 'app/networking/NetworkCalls.js'; -import autoCompleteSearchBarTestConstants from './autoCompleteSearchBarTestConstants'; - -const middlewares = [thunk]; // add your middlewares like `redux-thunk` -const mockStore = configureStore(middlewares); - - -describe('Core AutoCompleteSearchBar suite', function() { - - describe('AutoCompleteSearchBar - View test ', function() { - let wrapper = undefined; - - beforeEach(() => { - wrapper = mount( - <AutoCompleteSearchBar - onSuggestionsFetchRequested={() => {}} - value='' - suggestions={[]} - cachedSuggestions={[]} - feedbackMsgText='' - feedbackMsgSeverity='' - /> - ); - }); - - function createState(currentScreen, tierSupport) { - return { - currentScreen: currentScreen, - tierSupport: tierSupport - }; - } - - - - it('Test flow - test onNewSearch() success test: Expect tierSupportActionTypes.TS_NODE_SEARCH_RESULTS action being passed When the selected node is found in the main database and e', done => { - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.validResponseJsonForNodeSearchFromFetchWithHits)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onSucessfullNodeDetailsFoundEvent(){ - return { - type: tierSupportActionTypes.TS_NODE_SEARCH_RESULTS, - data: autoCompleteSearchBarTestConstants.validResponseJsonForNodeSearchFromFetchWithHits - }; - } - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => expect(mStore.getActions()[0]).to.deep.equal(onSucessfullNodeDetailsFoundEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Test flow - test onNewSearch() failure test: Expect tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS action being passed When the selected node is not found in the main database and e', done => { - - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.inValidResponseJsonForNodeSearchFromFetchWithHits)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onNofullNodeDetailsFoundEvent(){ - return { - type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, - data: {searchTag: autoCompleteSearchBarTestConstants.nodeSearchKeyword} - }; - } - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => { - expect(mStore.getActions()[0]).to.deep.equal(onNofullNodeDetailsFoundEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut; - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Test flow - test onNewSearch() failure: Expect tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR action being passed When Network fails', done => { - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.networkError)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onInvalidSelectedNodeSearchEvent(){ - return { - type: tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR, - data: {value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, errorMsg: ERROR_RETRIEVING_DATA} - }; - } - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => { - expect(mStore.getActions()[0]).to.deep.equal(onInvalidSelectedNodeSearchEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut; - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - - it('Test flow - test onNewSearch() failure: Expect tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS action being passed When no cached suggestions are found', done => { - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').never().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.networkError)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: [], - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onInvalidSearchInputEvent(){ - return { - type: tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS, - data: {value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, errorMsg: ERROR_INVALID_SEARCH_TERMS} - }; - } - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => { - expect(mStore.getActions()[0]).to.deep.equal(onInvalidSearchInputEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut; - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Test flow - test onNewSearch() failure: Expect no matches found When no cached suggestions does not have the node searched for', done => { - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').never().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.networkError)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType2.hits.hits, - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onInvalidSearchInputEvent(){ - return { - type: tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS, - data: {value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, errorMsg: ERROR_INVALID_SEARCH_TERMS} - }; - } - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => { - expect(mStore.getActions()[0]).to.deep.equal(onInvalidSearchInputEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut; - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Test flow - test onNewSearch() failure: Expect no node search When no matches are found in lookup search', done => { - const mStore = mockStore({}); - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').never().withArgs(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword).returns(Promise.resolve(autoCompleteSearchBarTestConstants.networkError)); - let mockedNetworkFetchRequest = () => networkCall.fetchRequest(TS_BACKEND_SEARCH_SELECTED_NODE_URL, POST, POST_HEADER, autoCompleteSearchBarTestConstants.nodeSearchKeyword); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.multipleNodeSearchKeyword, - suggestions: [{_source:{ entityType:i18n(NO_MATCHES_FOUND),searchTags:''}}], - cachedSuggestions: [{_source:{ entityType:i18n(NO_MATCHES_FOUND),searchTags:''}}], - onNewSearch: (searchRequestObject, value) => { - if (Object.keys(searchRequestObject).length === 0) { - mStore.dispatch(getInvalidSearchInputEvent(autoCompleteSearchBarTestConstants.nodeSearchKeyword)); - } else { - mStore.dispatch(querySelectedNodeElement(searchRequestObject, autoCompleteSearchBarTestConstants.nodeSearchKeyword, mockedNetworkFetchRequest)); - } - } - - }); - - function onInvalidSearchInputEvent(){ - return { - type: tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS, - data: {value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, errorMsg: ERROR_INVALID_SEARCH_TERMS} - }; - - } - wrapper.find('.react-autosuggest__input').simulate('focus'); - wrapper.find('.auto-complete-search-button').simulate('click'); - mockNetwork.verify(); - mockNetwork.restore(); - setTimeout(() => { - expect(mStore.getActions()[0]).to.deep.equal(onInvalidSearchInputEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut; - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Expect the list to be populated when a the auto suggest input box is focused', function() { - const mStore = mockStore({}); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeywordWithOutEqualSign, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits, - - }); - wrapper.find('.react-autosuggest__input').simulate('focus'); - expect(wrapper.find('Item').children()).to.have.length(6); - }); - - it('Expect small list to be populated when a the auto suggest input box is focused', function() { - const mStore = mockStore({}); - wrapper.setProps({ - value: autoCompleteSearchBarTestConstants.nodeSearchKeyword, - suggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType2.hits.hits, - cachedSuggestions: autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType2.hits.hits, - - }); - wrapper.find('.react-autosuggest__input').simulate('focus'); - expect(wrapper.find('Item').children()).to.have.length(3); - }); - }); -}); diff --git a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarActions.test.js b/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarActions.test.js deleted file mode 100644 index b1b89e0..0000000 --- a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarActions.test.js +++ /dev/null @@ -1,259 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -import {expect, deep} from "chai"; -import React from "react"; -import {Provider} from "react-redux"; -import sinon from "sinon"; -import configureStore from "redux-mock-store"; -import thunk from "redux-thunk"; -import {storeCreator} from "app/AppStore.js"; -import { - autoCompleteSearchBarActionTypes, - TS_BACKEND_SEARCH_SELECTED_NODE_URL, - ERROR_INVALID_SEARCH_TERMS, - TIER_SUPPORT_NETWORK_ERROR -} from 'generic-components/autoCompleteSearchBar/AutoCompleteSearchBarConstants.js'; -import { - searchResultsFound, - clearSuggestionsTextField, - onSuggestionsChange, - onSuggestionsClearRequested, - getInvalidSearchInputEvent, - fetchRequestedValues, - fetchSelectedNodeElement, - queryRequestedValues -} from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarActions.js'; -import {tierSupportActionTypes, TSUI_SEARCH_URL} from "app/tierSupport/TierSupportConstants.js"; -import {getDynamicTSUISearchURL} from "app/tierSupport/TierSupportActions.js"; -import * as networkCall from "app/networking/NetworkCalls.js"; -import {POST, - POST_HEADER, - ERROR_RETRIEVING_DATA} from "app/networking/NetworkConstants.js"; -import autoCompleteSearchBarTestConstants from "./autoCompleteSearchBarTestConstants"; - -const middlewares = [thunk]; // add your middlewares like `redux-thunk` -const mockStore = configureStore(middlewares); - - -describe('Core AutoCompleteSearchBar suite', function() { - - describe('AutoCompleteSearchBar - Actions test ', function() { - - function createState(currentScreen, tierSupport) { - return { - currentScreen: currentScreen, - tierSupport: tierSupport - }; - } - - it('Expect CLEAR_SUGGESTIONS_TEXT_FIELD action being passed When clearSuggestionsTextField is dispatched.', function(){ - const store = mockStore({}); - function clearSuggestionsTextFieldSuccess() { - return { - type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS_TEXT_FIELD - } - } - - store.dispatch(clearSuggestionsTextField()); - expect(store.getActions()[0]).to.deep.equal(clearSuggestionsTextFieldSuccess()); - }); - - it('Expect CLEAR_SUGGESTIONS action being passed When onSuggestionsClearRequested is dispatched.', function() { - const store = mockStore({}); - function onSuggestionsClearRequestedSuccess() { - return { - type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS - } - } - - store.dispatch(onSuggestionsClearRequested()); - expect(store.getActions()[0]).to.deep.equal(onSuggestionsClearRequestedSuccess()); - - }); - - it('Expect TS_NODE_SEARCH_INVALID_TERMS action being passed When getInvalidSearchInputEvent is dispatched.', function(){ - const store = mockStore({}); - const value = 'test'; - - function onGetInvalidSearchInputEvent(){ - return{ - type: tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS, - data: {value: value, errorMsg: ERROR_INVALID_SEARCH_TERMS} - } - } - - store.dispatch(getInvalidSearchInputEvent(value)); - expect(store.getActions()[0]).to.deep.equal(onGetInvalidSearchInputEvent()); - - }); - - }); - - it('Expect SUGGESTION_CHANGED action being passed When onSuggestionsChangeSuccess is dispatched with tab key.', function() { - const store = mockStore({}); - const value = 'test'; - - function onSuggestionsChangeSuccess() { - return { - type: autoCompleteSearchBarActionTypes.SUGGESTION_CHANGED, - data: value - } - } - - var event = { - keyCode: 9 - }; - - store.dispatch(onSuggestionsChange(event, value)); - expect(store.getActions()[0]).to.deep.equal(onSuggestionsChangeSuccess()); - - }); - - it('Expect SUGGESTION_CHANGED action being passed When onSuggestionsChange is dispatched with enter key.', function() { - const store = mockStore({}); - const value = 'test'; - - function onSuggestionsChangeSucessfull() { - return {type: autoCompleteSearchBarActionTypes.SUGGESTION_CHANGED, data: value}; - } - - var event = { - keyCode: 13 - }; - - store.dispatch(onSuggestionsChange(event, value)); - expect(store.getActions()[0]).to.deep.equal(onSuggestionsChangeSucessfull()); - }); - - it('Expect fetchRequest being called once and SUGGESTION_FOUND action being when passed fetchRequestedValues is dispatched, and a valid response is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TSUI_SEARCH_URL, POST, POST_HEADER, value).returns(Promise.resolve(autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1)); - store.dispatch(fetchRequestedValues(() => networkCall.fetchRequest(TSUI_SEARCH_URL, POST, POST_HEADER, value))); - mockNetwork.verify(); - mockNetwork.restore(); - - function onCreateSuggestionFoundEvent() { - return { - type: autoCompleteSearchBarActionTypes.SUGGESTION_FOUND, - data: {suggestions : autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits } - }; - } - - setTimeout(() => expect(store.getActions()[0]).to.deep.equal(onCreateSuggestionFoundEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - - - }); - - it('Expect fetchRequest being called once and SUGGESTION_NOT_FOUND action being when passed fetchRequestedValues is dispatched, and a valid response with no hits is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TSUI_SEARCH_URL, POST, POST_HEADER, value).returns(Promise.resolve(autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithOutHits)); - store.dispatch(fetchRequestedValues(() => networkCall.fetchRequest(TSUI_SEARCH_URL, POST, POST_HEADER, value))); - mockNetwork.verify(); - mockNetwork.restore(); - function onCreateSuggestionNotFoundEvent() { - return { - type: autoCompleteSearchBarActionTypes.SUGGESTION_NOT_FOUND - }; - } - - setTimeout(() => expect(store.getActions()[0]).to.deep.equal(onCreateSuggestionNotFoundEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Expect fetchRequest being called once and TIER_SUPPORT_NETWORK_ERROR action being when passed fetchRequestedValues is dispatched, and network error is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TSUI_SEARCH_URL, POST, POST_HEADER, value).returns(Promise.resolve(autoCompleteSearchBarTestConstants.networkError)); - store.dispatch(fetchRequestedValues(() => networkCall.fetchRequest(TSUI_SEARCH_URL, POST, POST_HEADER, value))); - mockNetwork.verify(); - mockNetwork.restore(); - - function onGetInvalidQueryEvent() { - return { - type: tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR, - data: {value: value, errorMsg: ERROR_RETRIEVING_DATA} - }; - } - - setTimeout(() => { - expect(store.getActions()[0].type.toString()).to.equal(tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR.toString()), autoCompleteSearchBarTestConstants.mockRequestTimeOut - }); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Expect fetchRequest being called once and SUGGESTION_FOUND action being when passed queryRequestedValues is dispatched, and network error is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - let mockNetwork = sinon.mock(networkCall); - mockNetwork.expects('fetchRequest').once().withArgs(TSUI_SEARCH_URL, POST, POST_HEADER, value).returns(Promise.resolve(autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1)); - store.dispatch(fetchRequestedValues(() => networkCall.fetchRequest(TSUI_SEARCH_URL, POST, POST_HEADER, value))); - mockNetwork.verify(); - mockNetwork.restore(); - - function onCreateSuggestionFoundEvent() { - return { - type: autoCompleteSearchBarActionTypes.SUGGESTION_FOUND, - data: {suggestions : autoCompleteSearchBarTestConstants.validResponseJsonForRequestFromFetchWithHitsType1.hits.hits } - }; - } - - setTimeout(() => expect(store.getActions()[0]).to.deep.equal(onCreateSuggestionFoundEvent()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Expect TIER_SUPPORT_NETWORK_ERROR action being passed when clearSuggestionsTextField is dispatched with no mock, and network error is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - store.dispatch(clearSuggestionsTextField()); - - function onClearSuggestionsTextField() { - return {type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS_TEXT_FIELD}; - } - - setTimeout(() => expect(store.getActions()[0]).to.deep.equal(onClearSuggestionsTextField()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); - - it('Expect CLEAR_SUGGESTIONS action being passed when onSuggestionsClearRequested is dispatched with no mock, and network error is sent in mock', done => { - const store = mockStore({}); - const value = 'test'; - - store.dispatch(onSuggestionsClearRequested()); - - function onSuggestionsClearRequestedExpected() { - return{type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS}; - } - - setTimeout(() => expect(store.getActions()[0]).to.deep.equal(onSuggestionsClearRequestedExpected()), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - setTimeout(() => done(), autoCompleteSearchBarTestConstants.mockRequestTimeOut); - }); -}); diff --git a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarReducer.test.js b/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarReducer.test.js deleted file mode 100644 index a4c35e6..0000000 --- a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarReducer.test.js +++ /dev/null @@ -1,136 +0,0 @@ -/*
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
- * Copyright © 2017-2018 Amdocs
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-import {expect} from 'chai';
-import React from 'react';
-import {Provider} from 'react-redux';
-import TestUtils from 'react-dom/test-utils';
-import {tierSupportActionTypes} from 'app/tierSupport/TierSupportConstants.js';
-import reducer from 'app/globalAutoCompleteSearchBar/GlobalAutoCompleteSearchBarReducer.js';
-import {MESSAGE_LEVEL_WARNING, MESSAGE_LEVEL_DANGER} from 'utils/GlobalConstants.js';
-import {
- autoCompleteSearchBarActionTypes,
- NO_MATCHES_FOUND,
- ERROR_INVALID_SEARCH_TERMS} from 'generic-components/autoCompleteSearchBar/AutoCompleteSearchBarConstants.js';
-import {
- ERROR_RETRIEVING_DATA} from 'app/networking/NetworkConstants.js';
-
-describe('AutoCompleteSearchBar - Reducer test ', function() {
-
- const testSuggestionData = [
- {_source:{ entityType: 'vserver',searchTags:'testing'}},
- {_source:{ entityType: 'vserver',searchTags:'someTag'}},
- {_source:{ entityType: 'vserver',searchTags:'test2'}}];
-
- it('AutoCompleteSearchBar reducer - Suggestion not found', function() {
- const feedbackMsgText = '';
- const suggestions = [];
- const action = {type: autoCompleteSearchBarActionTypes.SUGGESTION_NOT_FOUND};
- const initialState = {
- suggestions: suggestions
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.have.deep.property('[0]._source.entityType', 'No Matches Found');
- });
-
- it('AutoCompleteSearchBar reducer - Suggestion found', function() {
- const feedbackMsgText = '';
- const action =
- {
- type: autoCompleteSearchBarActionTypes.SUGGESTION_FOUND,
- data: {
- suggestions: testSuggestionData
- }
- };
- const initialState = {
- suggestions: []
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.have.deep.property('[0]._source.searchTags', 'testing');
- expect(newState.suggestions).to.have.deep.property('[1]._source.searchTags', 'someTag');
- expect(newState.suggestions).to.have.deep.property('[2]._source.searchTags', 'test2');
- });
-
- it('AutoCompleteSearchBar reducer - Clear Suggestion field', function() {
- const feedbackMsgText = '';
- const action = {type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS_TEXT_FIELD, value: 'test'};
- const initialState = {
- suggestions: testSuggestionData
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.be.empty;
- expect(newState.value).to.equal('');
- });
-
- it('AutoCompleteSearchBar reducer - Clear Suggestions', function() {
- const feedbackMsgText = '';
- const action = {type: autoCompleteSearchBarActionTypes.CLEAR_SUGGESTIONS, value: 'test'};
- const initialState = {
- suggestions: testSuggestionData
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.be.empty;
- });
-
- it('AutoCompleteSearchBar reducer - Suggestions changed', function() {
- const feedbackMsgText = '';
- const action = {type: autoCompleteSearchBarActionTypes.SUGGESTION_CHANGED, value: 'test'};
- const initialState = {
- suggestions: testSuggestionData
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.have.deep.property('[0]._source.searchTags', 'testing');
- expect(newState.suggestions).to.have.deep.property('[1]._source.searchTags', 'someTag');
- expect(newState.suggestions).to.have.deep.property('[2]._source.searchTags', 'test2');
- });
-
- it('AutoCompleteSearchBar reducer - Network error', function() {
- const feedbackMsgText = '';
- const feedbackMsgSeverity = '';
- const action = {type: tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR, data: {value: 'test', errorMsg: ERROR_RETRIEVING_DATA}};
- const initialState = {
- suggestions: testSuggestionData
- };
-
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.be.empty;
- expect(newState.feedbackMsgText).to.equal(ERROR_RETRIEVING_DATA);
- expect(newState.feedbackMsgSeverity).to.equal(MESSAGE_LEVEL_DANGER);
- });
-
- it('AutoCompleteSearchBar reducer - TS_NODE_SEARCH_INVALID_TERMS', function(){
- const feedbackMsgText = ERROR_INVALID_SEARCH_TERMS;
- const action = {type: tierSupportActionTypes.TS_NODE_SEARCH_INVALID_TERMS, data: {value: 'test', errorMsg: ERROR_INVALID_SEARCH_TERMS}};
- const initialState = {
- suggestions: testSuggestionData
- };
- const newState = reducer(initialState, action);
- expect(newState.suggestions).to.be.empty;
- expect(newState.cachedSuggestions).to.be.empty;
- expect(newState.feedbackMsgText).to.equal(ERROR_INVALID_SEARCH_TERMS);
- expect(newState.feedbackMsgSeverity).to.equal(MESSAGE_LEVEL_WARNING);
- });
-
-});
diff --git a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarTestConstants.js b/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarTestConstants.js deleted file mode 100644 index 57f7af8..0000000 --- a/test/tierSupport/autoCompleteSearchBar/autoCompleteSearchBarTestConstants.js +++ /dev/null @@ -1,231 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * Copyright © 2017-2018 Amdocs - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ -const validResponseJsonForRequestFromFetchWithHitsType1 = { - "took": 5, - "timed_out": false, - "_shards": { - "total": 5, - "successful": 5, - "failed": 0 - }, - "hits": { - "total": 9376, - "max_score": 3.3899312, - "hits": [ - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "4785c7ec8ae11be12ca742248713346ea03a473ef65aa84bbea102c67fa5d", - "_score": 3.3899312, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1", - "searchTagIDs": "0", - "searchTags": "service-instance-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1" - } - }, - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "8e9baedcbf1cb2f9439f6b8b5eeaf0b8fa364086c8ef5ee6edcf6f5da114", - "_score": 3.1589103, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8", - "searchTagIDs": "0", - "searchTags": "service-instance-id=d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8" - } - }, - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "dd4bdbf810f5c1bc7be7d91f241b0221d75617a45f574f2ed6207e9c8ceb9e", - "_score": 3.147036, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "6c27a7cb-d8e1-45a8-aa12-61a694201cca", - "searchTagIDs": "0", - "searchTags": "service-instance-id=6c27a7cb-d8e1-45a8-aa12-61a694201cca" - } - }, - { - "_index": "entitysearchindex-localhost2", - "_type": "aaiEntities", - "_id": "4785c7ec8ae11be12ca742248713346ea03a473ef65aa84bbea102c67fa5d", - "_score": 3.3899312, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1", - "searchTagIDs": "0", - "searchTags": "service-instance-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1" - } - }, - { - "_index": "entitysearchindex-localhost2", - "_type": "aaiEntities", - "_id": "8e9baedcbf1cb2f9439f6b8b5eeaf0b8fa364086c8ef5ee6edcf6f5da114", - "_score": 3.1589103, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8", - "searchTagIDs": "0", - "searchTags": "service-instance-id=d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8" - } - }, - { - "_index": "entitysearchindex-localhost2", - "_type": "aaiEntities", - "_id": "dd4bdbf810f5c1bc7be7d91f241b0221d75617a45f574f2ed6207e9c8ceb9e", - "_score": 3.147036, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "6c27a7cb-d8e1-45a8-aa12-61a694201cca", - "searchTagIDs": "0", - "searchTags": "service-instance-id=6c27a7cb-d8e1-45a8-aa12-61a694201cca" - } - } - ] - } -}; - -const validResponseJsonForRequestFromFetchWithHitsType2 = { - "took": 5, - "timed_out": false, - "_shards": { - "total": 5, - "successful": 5, - "failed": 0 - }, - "hits": { - "total": 9376, - "max_score": 3.3899312, - "hits": [ - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "4785c7ec8ae11be12ca742248713346ea03a473ef65aa84bbea102c67fa5d", - "_score": 3.3899312, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "entityPrimaryKeyValue": "a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1", - "searchTagIDs": "0", - "searchTags": "hostname-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1" - } - }, - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "8e9baedcbf1cb2f9439f6b8b5eeaf0b8fa364086c8ef5ee6edcf6f5da114", - "_score": 3.1589103, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8", - "searchTagIDs": "0", - "searchTags": "hostname-id=d1f3c3be-7a7f-42ea-a9ac-ca20af1588b8" - } - }, - { - "_index": "entitysearchindex-localhost", - "_type": "aaiEntities", - "_id": "dd4bdbf810f5c1bc7be7d91f241b0221d75617a45f574f2ed6207e9c8ceb9e", - "_score": 3.147036, - "_source": { - "entityType": "service-instance", - "edgeTagQueryEntityFieldName": "service-instance.service-instance-id", - "edgeTagQueryEntityFieldValue": "6c27a7cb-d8e1-45a8-aa12-61a694201cca", - "searchTagIDs": "0", - "searchTags": "hostname-id=6c27a7cb-d8e1-45a8-aa12-61a694201cca" - } - } - ] - } -}; - -const validResponseJsonForRequestFromFetchWithOutHits = { - "took": 5, - "timed_out": false, - "_shards": { - "total": 5, - "successful": 5, - "failed": 0 - }, - "hits": { - "total": 0, - "max_score": 3.3899312, - "hits": [] - } -}; - -const networkError = { - "error": "Network Error" -}; - -const validResponseJsonForNodeSearchFromFetchWithHits = { - "graphMeta":{}, - "nodes" : [ { - "id" : "service-instance.PRUCPEHOST0627002", - "itemType" : "service-instance", - "itemNameKey" : "service-instance.PRUCPEHOST0627002", - "itemNameValue" : "PRUCPEHOST0627002", - "itemProperties" : { - "resource-version" : "1467233099", - "service-instance-id" : "PRUCPEHOST0627002" - }, - "nodeMeta" : { - "className" : "selectedSearchedNodeClass", - "nodeDebug" : null, - "selfLinkResponseTimeInMs" : 131, - "relationshipNode" : false, - "searchTarget" : true, - "enrichableNode" : false - } - } ] -}; - -const inValidResponseJsonForNodeSearchFromFetchWithHits = { - "graphMeta":{}, - "nodes" : [] -}; - -const nodeSearchKeyword = 'service-instance-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1'; -const nodeSearchKeywordWithOutEqualSign = 'a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1'; -const multipleNodeSearchKeyword = 'service-instance-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1, service-instance-id=a162a2a2-ea7e-4e94-afc3-e9d064a3c2a1'; -const mockRequestTimeOut = 1; -export default{ - validResponseJsonForRequestFromFetchWithHitsType1: validResponseJsonForRequestFromFetchWithHitsType1, - validResponseJsonForRequestFromFetchWithHitsType2: validResponseJsonForRequestFromFetchWithHitsType2, - validResponseJsonForRequestFromFetchWithOutHits: validResponseJsonForRequestFromFetchWithOutHits, - networkError: networkError, - validResponseJsonForNodeSearchFromFetchWithHits: validResponseJsonForNodeSearchFromFetchWithHits, - inValidResponseJsonForNodeSearchFromFetchWithHits: inValidResponseJsonForNodeSearchFromFetchWithHits, - nodeSearchKeyword: nodeSearchKeyword, - nodeSearchKeywordWithOutEqualSign: nodeSearchKeywordWithOutEqualSign, - multipleNodeSearchKeyword: multipleNodeSearchKeyword, - mockRequestTimeOut: mockRequestTimeOut -}; |