From: James Forsyth Date: Thu, 15 Aug 2019 14:01:14 +0000 (+0000) Subject: Merge "Shallow render generic components" X-Git-Tag: 6.0.0-ONAP~1 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=aai%2Fsparky-fe.git;a=commitdiff_plain;h=4fc2ea58cd77207f640a50e67605840c35a09171;hp=962b0410413800b18ced9e8adba1fa393292d4ad Merge "Shallow render generic components" --- diff --git a/pom.xml b/pom.xml index 422b04f..725d77f 100644 --- a/pom.xml +++ b/pom.xml @@ -23,10 +23,15 @@ 4.0.0 + + org.onap.oparent + oparent + 2.0.0 + org.onap.aai sparky-fe war - 1.4.0-SNAPSHOT + 1.5.1-SNAPSHOT aai-sparky-fe http://maven.apache.org @@ -88,6 +93,14 @@ npm generate-resources + + + install -ddd + + gulp build @@ -104,15 +117,8 @@ - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.7 - true - - ${nexusproxy} - 176c31dfe190a - ecomp-staging - + org.apache.maven.plugins + maven-deploy-plugin diff --git a/src/app/tierSupport/TierSupportActions.js b/src/app/tierSupport/TierSupportActions.js index 08e4e30..69370fa 100644 --- a/src/app/tierSupport/TierSupportActions.js +++ b/src/app/tierSupport/TierSupportActions.js @@ -183,8 +183,10 @@ export function querySelectedNodeElement( } return dispatch => { - dispatch(setBusyFeedback()); - dispatch(fetchSelectedNodeElement(selectedNodeFetchRequest)); + return Promise.all([ + dispatch(setBusyFeedback()), + dispatch(fetchSelectedNodeElement(selectedNodeFetchRequest)) + ]); }; } diff --git a/test/app/MainScreenWrapperActionHelper.test.js b/test/app/MainScreenWrapperActionHelper.test.js new file mode 100644 index 0000000..011010e --- /dev/null +++ b/test/app/MainScreenWrapperActionHelper.test.js @@ -0,0 +1,132 @@ +import configureStore from 'redux-mock-store'; +import thunk from 'redux-thunk' +import { + windowResize, + showMainMenu, + extensibleViewMessageCallback, + clearExtensibleViewData, + setSecondaryTitle +} from 'app/MainScreenWrapperActionHelper'; +import { + getSetGlobalMessageEvent, + getClearGlobalMessageEvent +} from 'app/globalInlineMessageBar/GlobalInlineMessageBarActions'; +import { + globalInlineMessageBarActionTypes +} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants'; +import {aaiActionTypes} from 'app/MainScreenWrapperConstants'; + +const mockStore = configureStore([thunk]); + +describe('MainScreenWrapperActionHelper', () => { + let store; + + beforeEach(() => { + store = mockStore({ tierSupportReducer: {} }); + }); + + describe('windowResize', () => { + it('emits action', () => { + // Given + const expectedActions = [{ + type: aaiActionTypes.AAI_WINDOW_RESIZE + }]; + + // When + store.dispatch(windowResize()); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + + describe('showMainMenu', () => { + it('emits action with payload', () => { + // Given + const input = "testInput"; + const expectedActions = [{ + type: aaiActionTypes.AAI_SHOW_MENU, + data: { + showMenu: input + } + }]; + + // When + store.dispatch(showMainMenu(input)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + + describe('extensibleViewMessageCallback', () => { + const msgSeverity = "msgSeverity"; + + it('emits action with payload when msgText is not blank', () => { + // Given + const msgText = "msgText"; + const expectedActions = [{ + type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE, + data: { + msgText: msgText, + msgSeverity: msgSeverity + } + }]; + + // When + store.dispatch(extensibleViewMessageCallback(msgText, msgSeverity)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits action when msgText is blank', () => { + // Given + const msgText = ""; + const expectedActions = [{ + type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE + + }]; + + // When + store.dispatch(extensibleViewMessageCallback(msgText, msgSeverity)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + + describe('clearExtensibleViewData', () => { + it('emits action with payload', () => { + // Given + const expectedActions = [{ + type: aaiActionTypes.EXTENSIBLE_VIEW_NETWORK_CALLBACK_CLEAR_DATA, + data: {} + }]; + + // When + store.dispatch(clearExtensibleViewData()); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + + describe('setSecondaryTitle', () => { + it('emits action with payload', () => { + // Given + const title = "testTitle"; + const expectedActions = [{ + type: aaiActionTypes.SET_SECONDARY_TITLE, + data: title + }]; + + // When + store.dispatch(setSecondaryTitle(title)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + +}); diff --git a/test/app/configurableViews/ConfigurableViewReducer.test.js b/test/app/configurableViews/ConfigurableViewReducer.test.js index 0c5c46e..53e8b89 100644 --- a/test/app/configurableViews/ConfigurableViewReducer.test.js +++ b/test/app/configurableViews/ConfigurableViewReducer.test.js @@ -4,6 +4,7 @@ import { import ConfigurableViewReducer from 'app/configurableViews/ConfigurableViewReducer.js' describe('ConfigurableViewsReducerTests', () => { it('Action Type: CONFIGURABLE_VIEWS_CONFIG_RECEIVED', () => { + // Given const data = { viewId: 'someViewId', viewName: 'Some View Name', @@ -14,13 +15,18 @@ describe('ConfigurableViewsReducerTests', () => { data: data }; let state = {}; + + // When state = ConfigurableViewReducer(state, action); + + // Then expect(state).toEqual({ configurableViewsConfig: data }); }); it('Action Type: CUSTOM_COMPONENTS_RECEIVED', () => { + // Given const data = { componentName: 'someComponentName', componentData: { @@ -33,22 +39,46 @@ describe('ConfigurableViewsReducerTests', () => { data: data }; let state = {}; + + // When state = ConfigurableViewReducer(state, action); + + // Then expect(state).toEqual({ customComponents: data }); }); it('Action Type: CUSTOM_ROUTES', () => { + // Given const data = 'some/custom/route'; const action = { type: configurableViewsActionTypes.CUSTOM_ROUTES, data: data }; let state = {}; + + // When state = ConfigurableViewReducer(state, action); + + // Then expect(state).toEqual({ customRoutes: data }); }); -}) + + it('Action Type: unknown', () => { + // Given + const action = { + type: "TestUnknownType", + data: "TestData" + }; + let state = {}; + + // When + state = ConfigurableViewReducer(state, action); + + // Then + expect(state).toEqual(state); + }); +}); diff --git a/test/app/globalInlineMessageBar/GlobalInlineMessageBarReducer.test.js b/test/app/globalInlineMessageBar/GlobalInlineMessageBarReducer.test.js index 62389b4..bbcb7c1 100644 --- a/test/app/globalInlineMessageBar/GlobalInlineMessageBarReducer.test.js +++ b/test/app/globalInlineMessageBar/GlobalInlineMessageBarReducer.test.js @@ -1,13 +1,14 @@ -import GlobalInlineMessageBarReducer from 'app/globalInlineMessageBar/GlobalInlineMessageBarReducer.js'; +import GlobalInlineMessageBarReducer from 'app/globalInlineMessageBar/GlobalInlineMessageBarReducer'; import { globalInlineMessageBarActionTypes -} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants.js'; +} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants'; import { MESSAGE_LEVEL_WARNING -} from 'utils/GlobalConstants.js' +} from 'utils/GlobalConstants' describe('GlobalInlineMessageBarReducerTests', () => { it('Action Type: SET_GLOBAL_MESSAGE', () => { + // Given const action = { type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE, data: { @@ -16,7 +17,11 @@ describe('GlobalInlineMessageBarReducerTests', () => { } }; let state = {}; + + // When state = GlobalInlineMessageBarReducer(state, action); + + // Then expect(state).toEqual({ feedbackMsgText: action.data.msgText, feedbackMsgSeverity: action.data.msgSeverity @@ -24,6 +29,7 @@ describe('GlobalInlineMessageBarReducerTests', () => { }); it('Action Type: CLEAR_GLOBAL_MESSAGE', () => { + // Given const action = { type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE }; @@ -31,10 +37,31 @@ describe('GlobalInlineMessageBarReducerTests', () => { feedbackMsgText: 'some error message here', feedbackMsgSeverity: MESSAGE_LEVEL_WARNING }; + + // When state = GlobalInlineMessageBarReducer(state, action); + + // Then expect(state).toEqual({ feedbackMsgText: '', feedbackMsgSeverity: '' }); }); -}) + + it('Action Type: unknown', () => { + // Given + const action = { + type: "TestUnknownType" + }; + const initialState = { + feedbackMsgText: 'some error message here', + feedbackMsgSeverity: MESSAGE_LEVEL_WARNING + }; + + // When + const newState = GlobalInlineMessageBarReducer(initialState, action); + + // Then + expect(newState).toEqual(initialState); + }); +}); diff --git a/test/app/tierSupport/TierSupportActions.test.js b/test/app/tierSupport/TierSupportActions.test.js index 62485ee..30d3fe9 100644 --- a/test/app/tierSupport/TierSupportActions.test.js +++ b/test/app/tierSupport/TierSupportActions.test.js @@ -5,173 +5,363 @@ import { splitPaneResize, onNodeMenuChange, clearVIData, - setNotificationText -} from 'app/tierSupport/TierSupportActions.js'; + setNotificationText, + fetchSelectedNodeElement, + querySelectedNodeElement +} +from 'app/tierSupport/TierSupportActions'; +import {tierSupportActionTypes} from 'app/tierSupport/TierSupportConstants'; +import {MESSAGE_LEVEL_WARNING} from 'utils/GlobalConstants'; +import {globalInlineMessageBarActionTypes} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants'; import { - tierSupportActionTypes -} from 'app/tierSupport/TierSupportConstants.js'; -import { - MESSAGE_LEVEL_WARNING -} from 'utils/GlobalConstants.js'; -import { - globalInlineMessageBarActionTypes -} from 'app/globalInlineMessageBar/GlobalInlineMessageBarConstants.js'; + NO_RESULTS_FOUND, + ERROR_RETRIEVING_DATA +} from 'app/networking/NetworkConstants'; +import networkCall from 'app/networking/NetworkCalls'; + +const mockStore = configureStore([thunk]); describe('TierSupportActionTests', () => { - it('onNodeDetailsChange', () => { - const newDetails = { - id: '7352312c7bfa814c3071a803d98c5b670952765974876e55ef954e0f8a930b1c', - itemType: 'complex', - nodeMeta: { - nodeLabel1: 'Artic', - nodeValidated: false, - nodeLocation: 'bottom' - }, - rootNode: false, - index: 2, - }; - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - store.dispatch(onNodeDetailsChange(newDetails)); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: tierSupportActionTypes.TS_GRAPH_NODE_SELECTED, - data: newDetails - }]); + let store; + + beforeEach(() => { + store = mockStore({ tierSupportReducer: {} }); }); - it('splitPaneResize', () => { - const initialLoad = { - test: 'message' - }; - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - store.dispatch(splitPaneResize(initialLoad)); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: tierSupportActionTypes.SPLIT_PANE_RESIZE, - data: initialLoad - }]); + describe('onNodeDetailsChange', () => { + it('emits TS_GRAPH_NODE_SELECTED with payload', () => { + // Given + const newDetails = { + testDetails: 'Test Details', + }; + const expectedActions = [{ + type: tierSupportActionTypes.TS_GRAPH_NODE_SELECTED, + data: newDetails + }]; + + // When + store.dispatch(onNodeDetailsChange(newDetails)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); }); - it('onNodeMenuChange', () => { - const selectedMenu = { - test: 'menuData' - }; - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - store.dispatch(onNodeMenuChange(selectedMenu)); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: tierSupportActionTypes.TS_GRAPH_NODE_MENU_SELECTED, - data: selectedMenu - }]); + describe('splitPaneResize', () => { + it('emits SPLIT_PANE_RESIZE action with payload', () => { + // Given + const initialLoad = { + test: 'message' + }; + const expectedActions = [{ + type: tierSupportActionTypes.SPLIT_PANE_RESIZE, + data: initialLoad + }]; + + // When + store.dispatch(splitPaneResize(initialLoad)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); }); - it('clearVIData', () => { - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - store.dispatch(clearVIData()); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: tierSupportActionTypes.TIER_SUPPORT_CLEAR_DATA - }]); + describe('onNodeMenuChange', () => { + it('emits TS_GRAPH_NODE_MENU_SELECTED action with payload', () => { + // Given + const selectedMenu = { + test: 'menuData' + }; + const expectedActions = [{ + type: tierSupportActionTypes.TS_GRAPH_NODE_MENU_SELECTED, + data: selectedMenu + }]; + + // When + store.dispatch(onNodeMenuChange(selectedMenu)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); }); - // - // it('fetchSelectedNodeElement - no results', () => { - // const middlewares = [thunk]; - // const mockStore = configureStore(middlewares); - // const store = mockStore({ tierSupportReducer: {} }); - // const nodes = [ - // { - // id: '7352312c7bfa814c3071a803d98c5b670952765974876e55ef954e0f8a930b1c', - // itemType: 'complex', - // nodeMeta: { - // className: 'selectedSearchedNodeClass', - // nodeLabel1: 'Artic', - // nodeValidated: false, - // nodeLocation: 'bottom' - // }, - // rootNode: false, - // index: 2 - // }, - // { - // id: '3899453d98c5b670952765974876e55ef954e0f8a930b1c', - // itemType: 'generic-vnf', - // nodeMeta: { - // className: 'someOtherClassName', - // nodeLabel1: 'Artic', - // nodeValidated: false, - // nodeLocation: 'bottom' - // }, - // rootNode: false, - // index: 1 - // } - // ]; - // const expectedActions = [ - // { - // type: tierSupportActionTypes.TS_NODE_SEARCH_RESULTS, - // data: { - // nodes: nodes - // } - // }, - // { - // type: tierSupportActionTypes.TS_GRAPH_NODE_SELECTED, - // data: nodes[0] - // } - // ]; - // - // console.log(nodes); - // - // let fetchRequestCallback = () => { - // const results = { - // nodes: nodes - // }; - // let init = { status: 200 }; - // let myBlob = new Blob(); - // let response = new Response(); - // return new Promise((resolve, reject) => { - // resolve(response); - // }); - // }; - // return store.dispatch(fetchSelectedNodeElement(fetchRequestCallback)) - // .then( () => { - // const actions = store.getActions(); - // expect(actions).toEqual(expectedActions); - // }); - // }); - - it('setNotificationText', () => { - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - const msgText = 'some test text'; - const msgSeverity = MESSAGE_LEVEL_WARNING; - store.dispatch(setNotificationText(msgText, msgSeverity)); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE, - data: { - msgText: msgText, - msgSeverity: msgSeverity - } - }]); + + describe('clearVIData', () => { + it('emits TIER_SUPPORT_CLEAR_DATA action', () => { + // Given + const expectedActions = [{ + type: tierSupportActionTypes.TIER_SUPPORT_CLEAR_DATA + }]; + + // When + store.dispatch(clearVIData()); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); }); - it('Clear notification text with setNotificationText', () => { - const middlewares = [thunk]; - const mockStore = configureStore(middlewares); - const store = mockStore({ tierSupportReducer: {} }); - const msgText = ''; - const msgSeverity = MESSAGE_LEVEL_WARNING; - store.dispatch(setNotificationText(msgText, msgSeverity)); - const actions = store.getActions(); - expect(actions).toEqual([{ - type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE - }]); + describe('fetchSelectedNodeElement', () => { + it('emits actions with proper error message when 204 code returned', async () => { + // Given + const promise = () => getPromiseWithStatusCode(204); + const expectedActions = [ + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK, + }, + { + type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, + data: {errorMsg: NO_RESULTS_FOUND} + } + ]; + + // When + await store.dispatch(fetchSelectedNodeElement(promise)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits actions with proper error message when 3XX code returned', async () => { + // Given + const promise = () => getPromiseWithStatusCode(301); + const expectedActions = [ + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK, + }, + { + type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, + data: {errorMsg: NO_RESULTS_FOUND} + } + ]; + + // When + await store.dispatch(fetchSelectedNodeElement(promise)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits actions with proper error message when 5XX code returned', async () => { + // Given + const promise = () => getPromiseWithStatusCode(501); + const expectedActions = [ + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK, + }, + { + type: tierSupportActionTypes.TIER_SUPPORT_NETWORK_ERROR, + data: {value: ERROR_RETRIEVING_DATA, errorMsg: ERROR_RETRIEVING_DATA} + } + ]; + + // When + await store.dispatch(fetchSelectedNodeElement(promise)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits actions with payload when 200 code returned and nodes not empty', async () => { + // Given + const {nodes, node1} = prepareTestNodes(); + const promise = () => getNodesPromise(nodes); + const expectedActions = [ + { + type: tierSupportActionTypes.TS_NODE_SEARCH_RESULTS, + data: {"nodes": nodes} + }, + { + type: tierSupportActionTypes.TS_GRAPH_NODE_SELECTED, + data: node1 + }, + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK + } + ]; + + // When + await store.dispatch(fetchSelectedNodeElement(promise)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits actions with payload when 200 code returned and nodes empty', async () => { + // Given + const promise = () => getNodesPromise([]); + const expectedActions = [ + { + type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, + data: {errorMsg: NO_RESULTS_FOUND} + }, + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK + } + ]; + + // When + await store.dispatch(fetchSelectedNodeElement(promise)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); }); -}) + + describe('querySelectedNodeElement', () => { + const searchHash = "testHash"; + + it('emits actions when fetchRequest defined ', async () => { + // Given + const promise = () => getNodesPromise([]); + const expectedAction = [ + { + type: tierSupportActionTypes.TIER_SUPPORT_ACTIVATE_BUSY_FEEDBACK, + }, + { + type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, + data: {errorMsg: NO_RESULTS_FOUND} + }, + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK + } + ]; + + // When + await store.dispatch(querySelectedNodeElement(searchHash, promise)); + + // Then + expect(store.getActions()).toEqual(expectedAction); + }); + + it('builds request and emits actions when fetchRequest undefined ', async () => { + // Given + const stringifySpy = jest.spyOn(JSON, 'stringify'); + const promise = getNodesPromise([]); + networkCall.fetchRequestObj = jest.fn(() => promise); + const expectedStringifyInput = { + hashId: searchHash + }; + const expectedFetchRequestBody = "{\"hashId\":\"testHash\"}"; + const expectedAction = [ + { + type: tierSupportActionTypes.TIER_SUPPORT_ACTIVATE_BUSY_FEEDBACK, + }, + { + type: tierSupportActionTypes.TS_NODE_SEARCH_NO_RESULTS, + data: {errorMsg: NO_RESULTS_FOUND} + }, + { + type: tierSupportActionTypes.TIER_SUPPORT_DISABLE_BUSY_FEEDBACK + } + ]; + + // When + await store.dispatch(querySelectedNodeElement(searchHash, undefined)); + + // Then + expect(stringifySpy).toHaveBeenCalledWith(expectedStringifyInput); + expect(networkCall.fetchRequestObj).toHaveBeenCalledWith( + expect.anything(), + expect.anything(), + expect.anything(), + expectedFetchRequestBody + ); + expect(store.getActions()).toEqual(expectedAction); + }); + }); + + describe('setNotificationText', () => { + const msgSeverity = MESSAGE_LEVEL_WARNING; + + it('emits SET_GLOBAL_MESSAGE action with payload when msgText is not blank ', () => { + // Given + const msgText = 'some test text'; + const expectedActions = [{ + type: globalInlineMessageBarActionTypes.SET_GLOBAL_MESSAGE, + data: { + msgText: msgText, + msgSeverity: msgSeverity + } + }]; + + // When + store.dispatch(setNotificationText(msgText, msgSeverity)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + + it('emits CLEAR_GLOBAL_MESSAGE when msgText is blank ', () => { + // Given + const msgText = ''; + const expectedActions = [{ + type: globalInlineMessageBarActionTypes.CLEAR_GLOBAL_MESSAGE + }]; + + // When + store.dispatch(setNotificationText(msgText, msgSeverity)); + + // Then + expect(store.getActions()).toEqual(expectedActions); + }); + }); + + function getPromiseWithStatusCode(statusCode) { + return new Promise(function(resolve) { + resolve({status: statusCode}); + }); + } + + function getNodesPromise(nodes) { + return new Promise(function (resolve) { + resolve({ + status: 200, + json: () => { + return { + nodes: nodes + }; + } + }); + }); + } + + function prepareTestNodes() { + const node1 = prepareSelectedClassTestNode(); + const node2 = prepareOtherClassTestNode(); + return { + nodes: [node1, node2], + node1, + node2 + } + } + + function prepareOtherClassTestNode() { + return { + id: '3899453d98c5b670952765974876e55ef954e0f8a930b1c', + itemType: 'generic-vnf', + nodeMeta: { + className: 'someOtherClassName', + nodeLabel1: 'Artic', + nodeValidated: false, + nodeLocation: 'bottom' + }, + rootNode: false, + index: 1 + }; + } + + function prepareSelectedClassTestNode() { + return { + id: '7352312c7bfa814c3071a803d98c5b670952765974876e55ef954e0f8a930b1c', + itemType: 'complex', + nodeMeta: { + className: 'selectedSearchedNodeClass', + nodeLabel1: 'Artic', + nodeValidated: false, + nodeLocation: 'bottom' + }, + rootNode: false, + index: 2 + }; + } +}); diff --git a/version.properties b/version.properties index 66827fd..4814eb2 100644 --- a/version.properties +++ b/version.properties @@ -4,8 +4,8 @@ # because they are used in Jenkins, whose plug-in doesn't support major_version=1 -minor_version=4 -patch_version=0 +minor_version=5 +patch_version=1 base_version=${major_version}.${minor_version}.${patch_version}