diff options
Diffstat (limited to 'spec/frontend/projects/compare/components/revision_dropdown_spec.js')
-rw-r--r-- | spec/frontend/projects/compare/components/revision_dropdown_spec.js | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/spec/frontend/projects/compare/components/revision_dropdown_spec.js b/spec/frontend/projects/compare/components/revision_dropdown_spec.js index 69d3167c99c..aab9607ceae 100644 --- a/spec/frontend/projects/compare/components/revision_dropdown_spec.js +++ b/spec/frontend/projects/compare/components/revision_dropdown_spec.js @@ -1,4 +1,4 @@ -import { GlDropdown } from '@gitlab/ui'; +import { GlDropdown, GlSearchBoxByType } from '@gitlab/ui'; import { shallowMount } from '@vue/test-utils'; import AxiosMockAdapter from 'axios-mock-adapter'; import createFlash from '~/flash'; @@ -23,6 +23,10 @@ describe('RevisionDropdown component', () => { ...defaultProps, ...props, }, + stubs: { + GlDropdown, + GlSearchBoxByType, + }, }); }; @@ -36,6 +40,7 @@ describe('RevisionDropdown component', () => { }); const findGlDropdown = () => wrapper.find(GlDropdown); + const findSearchBox = () => wrapper.find(GlSearchBoxByType); it('sets hidden input', () => { createComponent(); @@ -85,6 +90,40 @@ describe('RevisionDropdown component', () => { expect(axios.get).toHaveBeenLastCalledWith(newRefsProjectPath); }); + describe('search', () => { + it('shows flash message on error', async () => { + axiosMock.onGet('some/invalid/path').replyOnce(404); + + createComponent(); + + await wrapper.vm.searchBranchesAndTags(); + expect(createFlash).toHaveBeenCalled(); + }); + + it('makes request with search param', async () => { + jest.spyOn(axios, 'get').mockResolvedValue({ + data: { + Branches: [], + Tags: [], + }, + }); + + const mockSearchTerm = 'foobar'; + createComponent(); + findSearchBox().vm.$emit('input', mockSearchTerm); + await axios.waitForAll(); + + expect(axios.get).toHaveBeenCalledWith( + defaultProps.refsProjectPath, + expect.objectContaining({ + params: { + search: mockSearchTerm, + }, + }), + ); + }); + }); + describe('GlDropdown component', () => { it('renders props', () => { createComponent(); |