diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-04-21 02:50:22 +0300 |
commit | 9dc93a4519d9d5d7be48ff274127136236a3adb3 (patch) | |
tree | 70467ae3692a0e35e5ea56bcb803eb512a10bedb /spec/frontend/blob | |
parent | 4b0f34b6d759d6299322b3a54453e930c6121ff0 (diff) |
Add latest changes from gitlab-org/gitlab@13-11-stable-eev13.11.0-rc43
Diffstat (limited to 'spec/frontend/blob')
-rw-r--r-- | spec/frontend/blob/file_template_selector_spec.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/spec/frontend/blob/file_template_selector_spec.js b/spec/frontend/blob/file_template_selector_spec.js new file mode 100644 index 00000000000..2ab3b3ebc82 --- /dev/null +++ b/spec/frontend/blob/file_template_selector_spec.js @@ -0,0 +1,61 @@ +import $ from 'jquery'; +import FileTemplateSelector from '~/blob/file_template_selector'; + +describe('FileTemplateSelector', () => { + let subject; + let dropdown; + let wrapper; + + const createSubject = () => { + subject = new FileTemplateSelector({}); + subject.config = { + dropdown, + wrapper, + }; + subject.initDropdown = jest.fn(); + }; + + afterEach(() => { + subject = null; + }); + + describe('show method', () => { + beforeEach(() => { + dropdown = document.createElement('div'); + wrapper = document.createElement('div'); + wrapper.classList.add('hidden'); + createSubject(); + }); + + it('calls init on first call', () => { + jest.spyOn(subject, 'init'); + subject.show(); + + expect(subject.init).toHaveBeenCalledTimes(1); + }); + + it('does not call init on subsequent calls', () => { + jest.spyOn(subject, 'init'); + subject.show(); + subject.show(); + + expect(subject.init).toHaveBeenCalledTimes(1); + }); + + it('removes hidden class from $wrapper', () => { + expect($(wrapper).hasClass('hidden')).toBe(true); + + subject.show(); + + expect($(wrapper).hasClass('hidden')).toBe(false); + }); + + it('sets the focus on the dropdown', async () => { + subject.show(); + jest.spyOn(subject.$dropdown, 'focus'); + jest.runAllTimers(); + + expect(subject.$dropdown.focus).toHaveBeenCalled(); + }); + }); +}); |