diff options
author | Clement Ho <ClemMakesApps@gmail.com> | 2017-02-09 16:19:12 -0600 |
---|---|---|
committer | Clement Ho <ClemMakesApps@gmail.com> | 2017-02-15 10:22:14 -0600 |
commit | 25fec0f882300ab4f917a71a5650ab0d29c7b939 (patch) | |
tree | e082995e3f67eeed1afd0b4f8d7dd3d117f086e6 /spec/javascripts/todos_spec.js | |
parent | 059f47b6ba09ae1a6b1dbfc2debf82064d8793fc (diff) | |
download | gitlab-ce-25fec0f882300ab4f917a71a5650ab0d29c7b939.tar.gz |
Fix regression where cmd-click stopped working for todos and merge request tabs27922-cmd-click-todo-doesn-t-work
Diffstat (limited to 'spec/javascripts/todos_spec.js')
-rw-r--r-- | spec/javascripts/todos_spec.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/spec/javascripts/todos_spec.js b/spec/javascripts/todos_spec.js new file mode 100644 index 00000000000..66e4fbd6304 --- /dev/null +++ b/spec/javascripts/todos_spec.js @@ -0,0 +1,63 @@ +require('~/todos'); +require('~/lib/utils/common_utils'); + +describe('Todos', () => { + preloadFixtures('todos/todos.html.raw'); + let todoItem; + + beforeEach(() => { + loadFixtures('todos/todos.html.raw'); + todoItem = document.querySelector('.todos-list .todo'); + + return new gl.Todos(); + }); + + describe('goToTodoUrl', () => { + it('opens the todo url', (done) => { + const todoLink = todoItem.dataset.url; + + spyOn(gl.utils, 'visitUrl').and.callFake((url) => { + expect(url).toEqual(todoLink); + done(); + }); + + todoItem.click(); + }); + + describe('meta click', () => { + let visitUrlSpy; + + beforeEach(() => { + spyOn(gl.utils, 'isMetaClick').and.returnValue(true); + visitUrlSpy = spyOn(gl.utils, 'visitUrl').and.callFake(() => {}); + }); + + it('opens the todo url in another tab', (done) => { + const todoLink = todoItem.dataset.url; + + spyOn(window, 'open').and.callFake((url, target) => { + expect(todoLink).toEqual(url); + expect(target).toEqual('_blank'); + done(); + }); + + todoItem.click(); + expect(visitUrlSpy).not.toHaveBeenCalled(); + }); + + it('opens the avatar\'s url in another tab when the avatar is clicked', (done) => { + const avatarImage = todoItem.querySelector('img'); + const avatarUrl = avatarImage.parentElement.getAttribute('href'); + + spyOn(window, 'open').and.callFake((url, target) => { + expect(avatarUrl).toEqual(url); + expect(target).toEqual('_blank'); + done(); + }); + + avatarImage.click(); + expect(visitUrlSpy).not.toHaveBeenCalled(); + }); + }); + }); +}); |