diff options
| author | Winnie Hellmann <winnie@gitlab.com> | 2017-10-26 14:47:17 +0200 |
|---|---|---|
| committer | Winnie Hellmann <winnie@gitlab.com> | 2017-10-26 14:53:17 +0200 |
| commit | 34d53d2b5a150d10de3c84cb73f8a67f7fe297a7 (patch) | |
| tree | 569ca3223b829603e70d0aaf0d83aebdf0e317e5 /spec/javascripts | |
| parent | 46259f74d0571ce8607fddd74093b96284ef2489 (diff) | |
| download | gitlab-ce-34d53d2b5a150d10de3c84cb73f8a67f7fe297a7.tar.gz | |
Add failing test for https://gitlab.com/gitlab-org/gitlab-ce/issues/37277
Diffstat (limited to 'spec/javascripts')
| -rw-r--r-- | spec/javascripts/namespace_select_spec.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/spec/javascripts/namespace_select_spec.js b/spec/javascripts/namespace_select_spec.js new file mode 100644 index 00000000000..9d7625ca269 --- /dev/null +++ b/spec/javascripts/namespace_select_spec.js @@ -0,0 +1,65 @@ +import NamespaceSelect from '~/namespace_select'; + +describe('NamespaceSelect', () => { + beforeEach(() => { + spyOn($.fn, 'glDropdown'); + }); + + it('initializes glDropdown', () => { + const dropdown = document.createElement('div'); + + // eslint-disable-next-line no-new + new NamespaceSelect({ dropdown }); + + expect($.fn.glDropdown).toHaveBeenCalled(); + }); + + describe('as input', () => { + let glDropdownOptions; + + beforeEach(() => { + const dropdown = document.createElement('div'); + // eslint-disable-next-line no-new + new NamespaceSelect({ dropdown }); + glDropdownOptions = $.fn.glDropdown.calls.argsFor(0)[0]; + }); + + it('prevents click events', () => { + const dummyEvent = new Event('dummy'); + spyOn(dummyEvent, 'preventDefault'); + + glDropdownOptions.clicked({ e: dummyEvent }); + + expect(dummyEvent.preventDefault).toHaveBeenCalled(); + }); + }); + + describe('as filter', () => { + let glDropdownOptions; + + beforeEach(() => { + const dropdown = document.createElement('div'); + dropdown.dataset.isFilter = 'true'; + // eslint-disable-next-line no-new + new NamespaceSelect({ dropdown }); + glDropdownOptions = $.fn.glDropdown.calls.argsFor(0)[0]; + }); + + it('does not prevent click events', () => { + const dummyEvent = new Event('dummy'); + spyOn(dummyEvent, 'preventDefault'); + + glDropdownOptions.clicked({ e: dummyEvent }); + + expect(dummyEvent.preventDefault).not.toHaveBeenCalled(); + }); + + it('sets URL of dropdown items', () => { + const dummyNamespace = { id: 'eal' }; + + const itemUrl = glDropdownOptions.url(dummyNamespace); + + expect(itemUrl).toContain(`namespace_id=${dummyNamespace.id}`); + }); + }); +}); |
