improved stored data

created reset action to reset stored merge requests
This commit is contained in:
Phil Hughes 2018-05-30 10:59:29 +01:00
parent c760965079
commit 8f646faf3d
No known key found for this signature in database
GPG key ID: 32245528C52E0F9F
6 changed files with 45 additions and 3 deletions

View file

@ -14,11 +14,13 @@ export const receiveMergeRequestsSuccess = ({ commit }, data) =>
export const fetchMergeRequests = ({ dispatch, state }) => {
dispatch('requestMergeRequests');
Api.mergeRequests({ scope: state.scope, view: 'simple' })
Api.mergeRequests({ scope: state.scope, state: 'opened' })
.then(({ data }) => {
dispatch('receiveMergeRequestsSuccess', data);
})
.catch(() => dispatch('receiveMergeRequestsError'));
};
export const resetMergeRequests = ({ commit }) => commit(types.RESET_MERGE_REQUESTS);
export default () => {};

View file

@ -1,3 +1,5 @@
export const REQUEST_MERGE_REQUESTS = 'REQUEST_MERGE_REQUESTS';
export const RECEIVE_MERGE_REQUESTS_ERROR = 'RECEIVE_MERGE_REQUESTS_ERROR';
export const RECEIVE_MERGE_REQUESTS_SUCCESS = 'RECEIVE_MERGE_REQUESTS_SUCCESS';
export const RESET_MERGE_REQUESTS = 'RESET_MERGE_REQUESTS';

View file

@ -10,8 +10,16 @@ export default {
},
[types.RECEIVE_MERGE_REQUESTS_SUCCESS](state, data) {
state.mergeRequests = data.map(mergeRequest => ({
id: mergeRequest.iid,
id: mergeRequest.id,
iid: mergeRequest.iid,
title: mergeRequest.title,
projectId: mergeRequest.project_id,
projectPathWithNamespace: mergeRequest.web_url
.replace(`${gon.gitlab_url}/`, '')
.replace(`/merge_requests/${mergeRequest.iid}`, ''),
}));
},
[types.RESET_MERGE_REQUESTS](state) {
state.mergeRequests = [];
},
};

View file

@ -96,8 +96,10 @@ export const fullPipelinesResponse = {
export const mergeRequests = [
{
id: 1,
iid: 1,
title: 'Test merge request',
project_id: 1,
web_url: `${gl.TEST_HOST}/namespace/project-path/merge_requests/1`,
},
];

View file

@ -7,6 +7,7 @@ import actions, {
receiveMergeRequestsError,
receiveMergeRequestsSuccess,
fetchMergeRequests,
resetMergeRequests,
} from '~/ide/stores/modules/merge_requests/actions';
import { mergeRequests } from '../../../mock_data';
import testAction from '../../../../helpers/vuex_action_helper';
@ -93,7 +94,7 @@ describe('IDe merge requests actions', () => {
expect(apiSpy).toHaveBeenCalledWith(jasmine.anything(), {
params: {
scope: 'assigned-to-me',
view: 'simple',
state: 'opened',
},
});
});
@ -141,4 +142,17 @@ describe('IDe merge requests actions', () => {
});
});
});
describe('resetMergeRequests', () => {
it('commits reset', done => {
testAction(
resetMergeRequests,
null,
mockedState,
[{ type: types.RESET_MERGE_REQUESTS }],
[],
done,
);
});
});
});

View file

@ -28,14 +28,28 @@ describe('IDE merge requests mutations', () => {
describe(types.RECEIVE_MERGE_REQUESTS_SUCCESS, () => {
it('sets merge requests', () => {
gon.gitlab_url = gl.TEST_HOST;
mutations[types.RECEIVE_MERGE_REQUESTS_SUCCESS](mockedState, mergeRequests);
expect(mockedState.mergeRequests).toEqual([
{
id: 1,
iid: 1,
title: 'Test merge request',
projectId: 1,
projectPathWithNamespace: 'namespace/project-path',
},
]);
});
});
describe(types.RESET_MERGE_REQUESTS, () => {
it('clears merge request array', () => {
mockedState.mergeRequests = ['test'];
mutations[types.RESET_MERGE_REQUESTS](mockedState);
expect(mockedState.mergeRequests).toEqual([]);
});
});
});