From 2e1615dfec6e71d68fb80f4816772ba2add94603 Mon Sep 17 00:00:00 2001 From: rstijerina Date: Thu, 4 Feb 2021 14:45:17 -0600 Subject: [PATCH 1/2] fix add definition to list --- client/src/redux/reducers/datafiles.reducers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/redux/reducers/datafiles.reducers.js b/client/src/redux/reducers/datafiles.reducers.js index 501a03a37..97648b1e2 100644 --- a/client/src/redux/reducers/datafiles.reducers.js +++ b/client/src/redux/reducers/datafiles.reducers.js @@ -69,7 +69,7 @@ export function systems(state = initialSystemState, action) { ...state, definitions: { ...state.definitions, - list: addSystemDefinition(action.payload, state.definitions), + list: addSystemDefinition(action.payload, state.definitions.list), error: false, errorMessage: null, loading: false @@ -79,7 +79,7 @@ export function systems(state = initialSystemState, action) { return { ...state, definitions: { - ...state.datafiles, + ...state.definitions, error: true, errorMessage: action.payload, loading: false From 30595c16a063beae6e92f54775315d7b6116f782 Mon Sep 17 00:00:00 2001 From: rstijerina Date: Thu, 4 Feb 2021 15:03:51 -0600 Subject: [PATCH 2/2] add system def list unit test --- .../reducers/tests/datafiles.reducers.test.js | 26 +++++++++++ .../fixtures/systemDefinition.fixture.js | 43 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 client/src/redux/reducers/tests/datafiles.reducers.test.js create mode 100644 client/src/redux/sagas/fixtures/systemDefinition.fixture.js diff --git a/client/src/redux/reducers/tests/datafiles.reducers.test.js b/client/src/redux/reducers/tests/datafiles.reducers.test.js new file mode 100644 index 000000000..cf2b4d8ce --- /dev/null +++ b/client/src/redux/reducers/tests/datafiles.reducers.test.js @@ -0,0 +1,26 @@ +import {systems as datafilesReducer, initialSystemState } from "../datafiles.reducers"; +import systemDefinitionFixture from '../../sagas/fixtures/systemDefinition.fixture'; + +describe("Datafiles Reducer", () => { + test("Load initial state", () => { + expect(datafilesReducer(initialSystemState, { type: undefined })).toEqual( + initialSystemState + ); + }); + test("Add system definition to state", () => { + const addSystemDefinitionAction = { + type: "FETCH_SYSTEM_DEFINITION_SUCCESS", + payload: systemDefinitionFixture + }; + expect(datafilesReducer(initialSystemState, addSystemDefinitionAction)).toEqual({ + ...initialSystemState, + definitions: { + ...initialSystemState.definitions, + list: [systemDefinitionFixture], + error: false, + errorMessage: null, + loading: false + } + }); + }); +}); diff --git a/client/src/redux/sagas/fixtures/systemDefinition.fixture.js b/client/src/redux/sagas/fixtures/systemDefinition.fixture.js new file mode 100644 index 000000000..60bed7378 --- /dev/null +++ b/client/src/redux/sagas/fixtures/systemDefinition.fixture.js @@ -0,0 +1,43 @@ +const systemDefinitionFixture = { + owner: 'wma_prtl', + _links: { + owner: { href: 'https://portals-api.tacc.utexas.edu/profiles/v2/wma_prtl' }, + metadata: { + href: + 'https://portals-api.tacc.utexas.edu/meta/v2/data/?q=%7B%22associationIds%22%3A%221843722814843916777-242ac119-0001-006%22%7D' + }, + roles: { + href: + 'https://portals-api.tacc.utexas.edu/systems/v2/frontera.home.user/roles' + }, + self: { + href: 'https://portals-api.tacc.utexas.edu/systems/v2/frontera.home.user' + } + }, + available: true, + description: 'Home system for user: user', + storage: { + proxy: null, + protocol: 'SFTP', + mirror: false, + port: 22, + auth: { type: 'SSHKEYS' }, + publicAppsDir: null, + host: 'frontera.tacc.utexas.edu', + rootDir: '/home1/12345/user', + homeDir: '/' + }, + type: 'STORAGE', + uuid: '1843722814843916777-242ac119-0001-006', + revision: 2, + site: 'portal.dev', + default: false, + public: false, + globalDefault: false, + name: 'frontera.home.user', + id: 'frontera.home.user', + lastModified: '2020-08-11T14:37:39-05:00', + status: 'UP' +}; + +export default systemDefinitionFixture;