diff options
Diffstat (limited to 'spec/frontend/ref')
-rw-r--r-- | spec/frontend/ref/components/ref_selector_spec.js | 22 | ||||
-rw-r--r-- | spec/frontend/ref/stores/actions_spec.js | 7 | ||||
-rw-r--r-- | spec/frontend/ref/stores/mutations_spec.js | 10 |
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'; |