diff options
Diffstat (limited to 'spec/javascripts/zen_mode_spec.js')
-rw-r--r-- | spec/javascripts/zen_mode_spec.js | 122 |
1 files changed, 60 insertions, 62 deletions
diff --git a/spec/javascripts/zen_mode_spec.js b/spec/javascripts/zen_mode_spec.js index a225b04c47e..55beb6cc590 100644 --- a/spec/javascripts/zen_mode_spec.js +++ b/spec/javascripts/zen_mode_spec.js @@ -4,75 +4,73 @@ import ZenMode from '~/zen_mode'; -(function() { - var enterZen, escapeKeydown, exitZen; +var enterZen, escapeKeydown, exitZen; - describe('ZenMode', function() { - var fixtureName = 'issues/open-issue.html.raw'; - preloadFixtures(fixtureName); +describe('ZenMode', function() { + var fixtureName = 'issues/open-issue.html.raw'; + preloadFixtures(fixtureName); + beforeEach(function() { + loadFixtures(fixtureName); + spyOn(Dropzone, 'forElement').and.callFake(function() { + return { + enable: function() { + return true; + } + }; + // Stub Dropzone.forElement(...).enable() + }); + this.zen = new ZenMode(); + // Set this manually because we can't actually scroll the window + return this.zen.scroll_position = 456; + }); + describe('on enter', function() { + it('pauses Mousetrap', function() { + spyOn(Mousetrap, 'pause'); + enterZen(); + return expect(Mousetrap.pause).toHaveBeenCalled(); + }); + return it('removes textarea styling', function() { + $('.notes-form textarea').attr('style', 'height: 400px'); + enterZen(); + return expect($('.notes-form textarea')).not.toHaveAttr('style'); + }); + }); + describe('in use', function() { beforeEach(function() { - loadFixtures(fixtureName); - spyOn(Dropzone, 'forElement').and.callFake(function() { - return { - enable: function() { - return true; - } - }; - // Stub Dropzone.forElement(...).enable() - }); - this.zen = new ZenMode(); - // Set this manually because we can't actually scroll the window - return this.zen.scroll_position = 456; + return enterZen(); + }); + return it('exits on Escape', function() { + escapeKeydown(); + return expect($('.notes-form .zen-backdrop')).not.toHaveClass('fullscreen'); }); - describe('on enter', function() { - it('pauses Mousetrap', function() { - spyOn(Mousetrap, 'pause'); - enterZen(); - return expect(Mousetrap.pause).toHaveBeenCalled(); - }); - return it('removes textarea styling', function() { - $('.notes-form textarea').attr('style', 'height: 400px'); - enterZen(); - return expect($('.notes-form textarea')).not.toHaveAttr('style'); - }); + }); + return describe('on exit', function() { + beforeEach(function() { + return enterZen(); }); - describe('in use', function() { - beforeEach(function() { - return enterZen(); - }); - return it('exits on Escape', function() { - escapeKeydown(); - return expect($('.notes-form .zen-backdrop')).not.toHaveClass('fullscreen'); - }); + it('unpauses Mousetrap', function() { + spyOn(Mousetrap, 'unpause'); + exitZen(); + return expect(Mousetrap.unpause).toHaveBeenCalled(); }); - return describe('on exit', function() { - beforeEach(function() { - return enterZen(); - }); - it('unpauses Mousetrap', function() { - spyOn(Mousetrap, 'unpause'); - exitZen(); - return expect(Mousetrap.unpause).toHaveBeenCalled(); - }); - return it('restores the scroll position', function() { - spyOn(this.zen, 'scrollTo'); - exitZen(); - return expect(this.zen.scrollTo).toHaveBeenCalled(); - }); + return it('restores the scroll position', function() { + spyOn(this.zen, 'scrollTo'); + exitZen(); + return expect(this.zen.scrollTo).toHaveBeenCalled(); }); }); +}); - enterZen = function() { - return $('.notes-form .js-zen-enter').click(); - }; +enterZen = function() { + return $('.notes-form .js-zen-enter').click(); +}; - exitZen = function() { - return $('.notes-form .js-zen-leave').click(); - }; +exitZen = function() { + return $('.notes-form .js-zen-leave').click(); +}; - escapeKeydown = function() { - return $('.notes-form textarea').trigger($.Event('keydown', { - keyCode: 27 - })); - }; -}).call(window); +escapeKeydown = function() { + return $('.notes-form textarea').trigger($.Event('keydown', { + keyCode: 27 + })); +}; |