summaryrefslogtreecommitdiff
path: root/spec/javascripts/zen_mode_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/javascripts/zen_mode_spec.js')
-rw-r--r--spec/javascripts/zen_mode_spec.js122
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
+ }));
+};