summaryrefslogtreecommitdiff
path: root/spec/frontend/ref
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ref')
-rw-r--r--spec/frontend/ref/components/ref_selector_spec.js22
-rw-r--r--spec/frontend/ref/stores/actions_spec.js7
-rw-r--r--spec/frontend/ref/stores/mutations_spec.js10
3 files changed, 39 insertions, 0 deletions
diff --git a/spec/frontend/ref/components/ref_selector_spec.js b/spec/frontend/ref/components/ref_selector_spec.js
index 6b90827f9c2..5e15ba26ece 100644
--- a/spec/frontend/ref/components/ref_selector_spec.js
+++ b/spec/frontend/ref/components/ref_selector_spec.js
@@ -35,6 +35,7 @@ describe('Ref selector component', () => {
const projectId = '8';
const totalBranchesCount = 123;
const totalTagsCount = 456;
+ const queryParams = { sort: 'updated_desc' };
let wrapper;
let branchesApiCallSpy;
@@ -738,4 +739,25 @@ describe('Ref selector component', () => {
expect(lastCallProps.matches).toMatchObject(expectedMatches);
});
});
+ describe('when queryParam prop is present', () => {
+ it('passes params to a branches API call', () => {
+ createComponent({ propsData: { queryParams } });
+
+ return waitForRequests().then(() => {
+ expect(branchesApiCallSpy).toHaveBeenCalledWith(
+ expect.objectContaining({ params: { per_page: 20, search: '', sort: queryParams.sort } }),
+ );
+ });
+ });
+
+ it('does not pass params to tags API call', () => {
+ createComponent({ propsData: { queryParams } });
+
+ return waitForRequests().then(() => {
+ expect(tagsApiCallSpy).toHaveBeenCalledWith(
+ expect.objectContaining({ params: { per_page: 20, search: '' } }),
+ );
+ });
+ });
+ });
});
diff --git a/spec/frontend/ref/stores/actions_spec.js b/spec/frontend/ref/stores/actions_spec.js
index 099ce062a3a..c6aac8c9c98 100644
--- a/spec/frontend/ref/stores/actions_spec.js
+++ b/spec/frontend/ref/stores/actions_spec.js
@@ -52,6 +52,13 @@ describe('Ref selector Vuex store actions', () => {
});
});
+ describe('setParams', () => {
+ it(`commits ${types.SET_PARAMS} with the provided params`, () => {
+ const params = { sort: 'updated_asc' };
+ testAction(actions.setParams, params, state, [{ type: types.SET_PARAMS, payload: params }]);
+ });
+ });
+
describe('search', () => {
it(`commits ${types.SET_QUERY} with the new search query`, () => {
const query = 'hello';
diff --git a/spec/frontend/ref/stores/mutations_spec.js b/spec/frontend/ref/stores/mutations_spec.js
index 37eee18dc10..8f16317b751 100644
--- a/spec/frontend/ref/stores/mutations_spec.js
+++ b/spec/frontend/ref/stores/mutations_spec.js
@@ -34,6 +34,7 @@ describe('Ref selector Vuex store mutations', () => {
error: null,
},
},
+ params: null,
selectedRef: null,
requestCount: 0,
});
@@ -56,6 +57,15 @@ describe('Ref selector Vuex store mutations', () => {
});
});
+ describe(`${types.SET_PARAMS}`, () => {
+ it('sets the additional query params', () => {
+ const params = { sort: 'updated_desc' };
+ mutations[types.SET_PARAMS](state, params);
+
+ expect(state.params).toBe(params);
+ });
+ });
+
describe(`${types.SET_PROJECT_ID}`, () => {
it('updates the project ID', () => {
const newProjectId = '4';