diff options
author | Phil Hughes <me@iamphill.com> | 2017-05-18 20:53:16 +0000 |
---|---|---|
committer | Timothy Andrew <mail@timothyandrew.net> | 2017-05-19 05:03:31 +0000 |
commit | af81730b5a47e1e2df5c0877160d9ca991963adc (patch) | |
tree | 8edee729bb4486bb289bca6dbccbe317cf3867ad | |
parent | 6a4d079edee03fa3de8bdc1b215f5dd72898881d (diff) | |
download | gitlab-ce-af81730b5a47e1e2df5c0877160d9ca991963adc.tar.gz |
Merge branch 'disable-clicking-disabled-clipboard-button' into 'master'
Fix clicking disabled clipboard button toolip
Closes #32518
See merge request !11493
-rw-r--r-- | app/assets/javascripts/blob/viewer/index.js | 4 | ||||
-rw-r--r-- | spec/javascripts/blob/viewer/index_spec.js | 31 |
2 files changed, 29 insertions, 6 deletions
diff --git a/app/assets/javascripts/blob/viewer/index.js b/app/assets/javascripts/blob/viewer/index.js index 07d67d49aa5..5ca8270919d 100644 --- a/app/assets/javascripts/blob/viewer/index.js +++ b/app/assets/javascripts/blob/viewer/index.js @@ -29,9 +29,9 @@ export default class BlobViewer { if (this.copySourceBtn) { this.copySourceBtn.addEventListener('click', () => { - if (this.copySourceBtn.classList.contains('disabled')) return; + if (this.copySourceBtn.classList.contains('disabled')) return this.copySourceBtn.blur(); - this.switchToViewer('simple'); + return this.switchToViewer('simple'); }); } } diff --git a/spec/javascripts/blob/viewer/index_spec.js b/spec/javascripts/blob/viewer/index_spec.js index 13f122b68b2..af04e7c1e72 100644 --- a/spec/javascripts/blob/viewer/index_spec.js +++ b/spec/javascripts/blob/viewer/index_spec.js @@ -83,25 +83,48 @@ describe('Blob viewer', () => { }); describe('copy blob button', () => { + let copyButton; + + beforeEach(() => { + copyButton = document.querySelector('.js-copy-blob-source-btn'); + }); + it('disabled on load', () => { expect( - document.querySelector('.js-copy-blob-source-btn').classList.contains('disabled'), + copyButton.classList.contains('disabled'), ).toBeTruthy(); }); it('has tooltip when disabled', () => { expect( - document.querySelector('.js-copy-blob-source-btn').getAttribute('data-original-title'), + copyButton.getAttribute('data-original-title'), ).toBe('Switch to the source to copy it to the clipboard'); }); + it('is blurred when clicked and disabled', () => { + spyOn(copyButton, 'blur'); + + copyButton.click(); + + expect(copyButton.blur).toHaveBeenCalled(); + }); + + it('is not blurred when clicked and not disabled', () => { + spyOn(copyButton, 'blur'); + + copyButton.classList.remove('disabled'); + copyButton.click(); + + expect(copyButton.blur).not.toHaveBeenCalled(); + }); + it('enables after switching to simple view', (done) => { document.querySelector('.js-blob-viewer-switch-btn[data-viewer="simple"]').click(); setTimeout(() => { expect($.ajax).toHaveBeenCalled(); expect( - document.querySelector('.js-copy-blob-source-btn').classList.contains('disabled'), + copyButton.classList.contains('disabled'), ).toBeFalsy(); done(); @@ -115,7 +138,7 @@ describe('Blob viewer', () => { expect($.ajax).toHaveBeenCalled(); expect( - document.querySelector('.js-copy-blob-source-btn').getAttribute('data-original-title'), + copyButton.getAttribute('data-original-title'), ).toBe('Copy source to clipboard'); done(); |