summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2018-05-30 11:10:32 +0100
committerPhil Hughes <me@iamphill.com>2018-05-30 11:10:32 +0100
commit3bffbb159eebf80dabfa2476a040a620e051be0b (patch)
tree5e300e5c4ebeceb72e06cc971d61f4a69ac26dfc
parent8f646faf3dc2ded677a9a5fbca16b5da9b146d19 (diff)
downloadgitlab-ce-3bffbb159eebf80dabfa2476a040a620e051be0b.tar.gz
ability to search merge requests
reset merge requests before fetch
-rw-r--r--app/assets/javascripts/ide/stores/modules/merge_requests/actions.js9
-rw-r--r--app/assets/javascripts/ide/stores/modules/merge_requests/constants.js7
-rw-r--r--app/assets/javascripts/ide/stores/modules/merge_requests/state.js3
-rw-r--r--spec/javascripts/ide/stores/modules/merge_requests/actions_spec.js30
4 files changed, 39 insertions, 10 deletions
diff --git a/app/assets/javascripts/ide/stores/modules/merge_requests/actions.js b/app/assets/javascripts/ide/stores/modules/merge_requests/actions.js
index 35b1492f1cf..d3050183bd3 100644
--- a/app/assets/javascripts/ide/stores/modules/merge_requests/actions.js
+++ b/app/assets/javascripts/ide/stores/modules/merge_requests/actions.js
@@ -11,13 +11,12 @@ export const receiveMergeRequestsError = ({ commit }) => {
export const receiveMergeRequestsSuccess = ({ commit }, data) =>
commit(types.RECEIVE_MERGE_REQUESTS_SUCCESS, data);
-export const fetchMergeRequests = ({ dispatch, state }) => {
+export const fetchMergeRequests = ({ dispatch, state: { scope, state } }, search = '') => {
dispatch('requestMergeRequests');
+ dispatch('resetMergeRequests');
- Api.mergeRequests({ scope: state.scope, state: 'opened' })
- .then(({ data }) => {
- dispatch('receiveMergeRequestsSuccess', data);
- })
+ Api.mergeRequests({ scope, state, search })
+ .then(({ data }) => dispatch('receiveMergeRequestsSuccess', data))
.catch(() => dispatch('receiveMergeRequestsError'));
};
diff --git a/app/assets/javascripts/ide/stores/modules/merge_requests/constants.js b/app/assets/javascripts/ide/stores/modules/merge_requests/constants.js
index c25edf11d96..64b7763f257 100644
--- a/app/assets/javascripts/ide/stores/modules/merge_requests/constants.js
+++ b/app/assets/javascripts/ide/stores/modules/merge_requests/constants.js
@@ -1,5 +1,10 @@
-// eslint-disable-next-line import/prefer-default-export
export const scopes = {
assignedToMe: 'assigned-to-me',
createdByMe: 'created-by-me',
};
+
+export const states = {
+ opened: 'opened',
+ closed: 'closed',
+ merged: 'merged',
+};
diff --git a/app/assets/javascripts/ide/stores/modules/merge_requests/state.js b/app/assets/javascripts/ide/stores/modules/merge_requests/state.js
index 7ac555eef49..2947b686c1c 100644
--- a/app/assets/javascripts/ide/stores/modules/merge_requests/state.js
+++ b/app/assets/javascripts/ide/stores/modules/merge_requests/state.js
@@ -1,7 +1,8 @@
-import { scopes } from './constants';
+import { scopes, states } from './constants';
export default () => ({
isLoading: false,
mergeRequests: [],
scope: scopes.assignedToMe,
+ state: states.opened,
});
diff --git a/spec/javascripts/ide/stores/modules/merge_requests/actions_spec.js b/spec/javascripts/ide/stores/modules/merge_requests/actions_spec.js
index 3b88ac36683..b571cfb963a 100644
--- a/spec/javascripts/ide/stores/modules/merge_requests/actions_spec.js
+++ b/spec/javascripts/ide/stores/modules/merge_requests/actions_spec.js
@@ -12,7 +12,7 @@ import actions, {
import { mergeRequests } from '../../../mock_data';
import testAction from '../../../../helpers/vuex_action_helper';
-describe('IDe merge requests actions', () => {
+describe('IDE merge requests actions', () => {
let mockedState;
let mock;
@@ -95,6 +95,21 @@ describe('IDe merge requests actions', () => {
params: {
scope: 'assigned-to-me',
state: 'opened',
+ search: '',
+ },
+ });
+ });
+
+ it('calls API with search', () => {
+ const apiSpy = spyOn(axios, 'get').and.callThrough();
+
+ fetchMergeRequests({ dispatch() {}, state: mockedState }, 'testing search');
+
+ expect(apiSpy).toHaveBeenCalledWith(jasmine.anything(), {
+ params: {
+ scope: 'assigned-to-me',
+ state: 'opened',
+ search: 'testing search',
},
});
});
@@ -105,7 +120,11 @@ describe('IDe merge requests actions', () => {
null,
mockedState,
[],
- [{ type: 'requestMergeRequests' }, { type: 'receiveMergeRequestsSuccess' }],
+ [
+ { type: 'requestMergeRequests' },
+ { type: 'resetMergeRequests' },
+ { type: 'receiveMergeRequestsSuccess' },
+ ],
done,
);
});
@@ -118,6 +137,7 @@ describe('IDe merge requests actions', () => {
[],
[
{ type: 'requestMergeRequests' },
+ { type: 'resetMergeRequests' },
{ type: 'receiveMergeRequestsSuccess', payload: mergeRequests },
],
done,
@@ -136,7 +156,11 @@ describe('IDe merge requests actions', () => {
null,
mockedState,
[],
- [{ type: 'requestMergeRequests' }, { type: 'receiveMergeRequestsError' }],
+ [
+ { type: 'requestMergeRequests' },
+ { type: 'resetMergeRequests' },
+ { type: 'receiveMergeRequestsError' },
+ ],
done,
);
});