diff options
author | Mike Greiling <mike@pixelcog.com> | 2018-10-17 10:13:26 +0300 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2018-10-17 19:18:17 +0300 |
commit | f666026d71ebefd70219d5078b1f0c83fa01f84d (patch) | |
tree | ce43feb99c12c21dd266d25de24b1768bac1d459 /spec/javascripts/line_highlighter_spec.js | |
parent | 5a6fffcffca3dc8e4f52c90d3d18eaefd9e48aef (diff) |
Prettify all spec files
Diffstat (limited to 'spec/javascripts/line_highlighter_spec.js')
-rw-r--r-- | spec/javascripts/line_highlighter_spec.js | 375 |
1 files changed, 186 insertions, 189 deletions
diff --git a/spec/javascripts/line_highlighter_spec.js b/spec/javascripts/line_highlighter_spec.js index 84cbb47a69e..4eea364bd69 100644 --- a/spec/javascripts/line_highlighter_spec.js +++ b/spec/javascripts/line_highlighter_spec.js @@ -3,266 +3,263 @@ import $ from 'jquery'; import LineHighlighter from '~/line_highlighter'; -(function() { - describe('LineHighlighter', function() { - var clickLine; - preloadFixtures('static/line_highlighter.html.raw'); - clickLine = function(number, eventData = {}) { - if ($.isEmptyObject(eventData)) { - return $("#L" + number).click(); - } else { - const e = $.Event('click', eventData); - return $("#L" + number).trigger(e); +describe('LineHighlighter', function() { + var clickLine; + preloadFixtures('static/line_highlighter.html.raw'); + clickLine = function(number, eventData = {}) { + if ($.isEmptyObject(eventData)) { + return $('#L' + number).click(); + } else { + const e = $.Event('click', eventData); + return $('#L' + number).trigger(e); + } + }; + beforeEach(function() { + loadFixtures('static/line_highlighter.html.raw'); + this['class'] = new LineHighlighter(); + this.css = this['class'].highlightLineClass; + return (this.spies = { + __setLocationHash__: spyOn(this['class'], '__setLocationHash__').and.callFake(function() {}), + }); + }); + + describe('behavior', function() { + it('highlights one line given in the URL hash', function() { + new LineHighlighter({ hash: '#L13' }); + + expect($('#LC13')).toHaveClass(this.css); + }); + + it('highlights one line given in the URL hash with given CSS class name', function() { + const hiliter = new LineHighlighter({ hash: '#L13', highlightLineClass: 'hilite' }); + + expect(hiliter.highlightLineClass).toBe('hilite'); + expect($('#LC13')).toHaveClass('hilite'); + expect($('#LC13')).not.toHaveClass('hll'); + }); + + it('highlights a range of lines given in the URL hash', function() { + var line; + new LineHighlighter({ hash: '#L5-25' }); + + expect($('.' + this.css).length).toBe(21); + for (line = 5; line <= 25; line += 1) { + expect($('#LC' + line)).toHaveClass(this.css); } - }; - beforeEach(function() { - loadFixtures('static/line_highlighter.html.raw'); - this["class"] = new LineHighlighter(); - this.css = this["class"].highlightLineClass; - return this.spies = { - __setLocationHash__: spyOn(this["class"], '__setLocationHash__').and.callFake(function() {}) - }; }); - describe('behavior', function() { - it('highlights one line given in the URL hash', function() { - new LineHighlighter({ hash: '#L13' }); + it('scrolls to the first highlighted line on initial load', function() { + var spy; + spy = spyOn($, 'scrollTo'); + new LineHighlighter({ hash: '#L5-25' }); - expect($('#LC13')).toHaveClass(this.css); - }); + expect(spy).toHaveBeenCalledWith('#L5', jasmine.anything()); + }); - it('highlights one line given in the URL hash with given CSS class name', function() { - const hiliter = new LineHighlighter({ hash: '#L13', highlightLineClass: 'hilite' }); + it('discards click events', function() { + var spy; + spy = spyOnEvent('a[data-line-number]', 'click'); + clickLine(13); - expect(hiliter.highlightLineClass).toBe('hilite'); - expect($('#LC13')).toHaveClass('hilite'); - expect($('#LC13')).not.toHaveClass('hll'); - }); + expect(spy).toHaveBeenPrevented(); + }); - it('highlights a range of lines given in the URL hash', function() { - var line; - new LineHighlighter({ hash: '#L5-25' }); + it('handles garbage input from the hash', function() { + var func; + func = function() { + return new LineHighlighter({ fileHolderSelector: '#blob-content-holder' }); + }; - expect($("." + this.css).length).toBe(21); - for (line = 5; line <= 25; line += 1) { - expect($("#LC" + line)).toHaveClass(this.css); - } - }); + expect(func).not.toThrow(); + }); + }); - it('scrolls to the first highlighted line on initial load', function() { - var spy; - spy = spyOn($, 'scrollTo'); - new LineHighlighter({ hash: '#L5-25' }); + describe('clickHandler', function() { + it('handles clicking on a child icon element', function() { + var spy; + spy = spyOn(this['class'], 'setHash').and.callThrough(); + $('#L13 i') + .mousedown() + .click(); + + expect(spy).toHaveBeenCalledWith(13); + expect($('#LC13')).toHaveClass(this.css); + }); + + describe('without shiftKey', function() { + it('highlights one line when clicked', function() { + clickLine(13); - expect(spy).toHaveBeenCalledWith('#L5', jasmine.anything()); + expect($('#LC13')).toHaveClass(this.css); }); - it('discards click events', function() { - var spy; - spy = spyOnEvent('a[data-line-number]', 'click'); + it('unhighlights previously highlighted lines', function() { clickLine(13); + clickLine(20); - expect(spy).toHaveBeenPrevented(); + expect($('#LC13')).not.toHaveClass(this.css); + expect($('#LC20')).toHaveClass(this.css); }); - it('handles garbage input from the hash', function() { - var func; - func = function() { - return new LineHighlighter({ fileHolderSelector: '#blob-content-holder' }); - }; + it('sets the hash', function() { + var spy; + spy = spyOn(this['class'], 'setHash').and.callThrough(); + clickLine(13); - expect(func).not.toThrow(); + expect(spy).toHaveBeenCalledWith(13); }); }); - describe('clickHandler', function() { - it('handles clicking on a child icon element', function() { + describe('with shiftKey', function() { + it('sets the hash', function() { var spy; - spy = spyOn(this["class"], 'setHash').and.callThrough(); - $('#L13 i').mousedown().click(); + spy = spyOn(this['class'], 'setHash').and.callThrough(); + clickLine(13); + clickLine(20, { + shiftKey: true, + }); expect(spy).toHaveBeenCalledWith(13); - expect($('#LC13')).toHaveClass(this.css); + expect(spy).toHaveBeenCalledWith(13, 20); }); - describe('without shiftKey', function() { - it('highlights one line when clicked', function() { - clickLine(13); + describe('without existing highlight', function() { + it('highlights the clicked line', function() { + clickLine(13, { + shiftKey: true, + }); expect($('#LC13')).toHaveClass(this.css); - }); - - it('unhighlights previously highlighted lines', function() { - clickLine(13); - clickLine(20); - - expect($('#LC13')).not.toHaveClass(this.css); - expect($('#LC20')).toHaveClass(this.css); + expect($('.' + this.css).length).toBe(1); }); it('sets the hash', function() { var spy; - spy = spyOn(this["class"], 'setHash').and.callThrough(); - clickLine(13); + spy = spyOn(this['class'], 'setHash'); + clickLine(13, { + shiftKey: true, + }); expect(spy).toHaveBeenCalledWith(13); }); }); - describe('with shiftKey', function() { - it('sets the hash', function() { - var spy; - spy = spyOn(this["class"], 'setHash').and.callThrough(); - clickLine(13); - clickLine(20, { - shiftKey: true + describe('with existing single-line highlight', function() { + it('uses existing line as last line when target is lesser', function() { + var line; + clickLine(20); + clickLine(15, { + shiftKey: true, }); - expect(spy).toHaveBeenCalledWith(13); - expect(spy).toHaveBeenCalledWith(13, 20); + expect($('.' + this.css).length).toBe(6); + for (line = 15; line <= 20; line += 1) { + expect($('#LC' + line)).toHaveClass(this.css); + } }); - describe('without existing highlight', function() { - it('highlights the clicked line', function() { - clickLine(13, { - shiftKey: true - }); - - expect($('#LC13')).toHaveClass(this.css); - expect($("." + this.css).length).toBe(1); + it('uses existing line as first line when target is greater', function() { + var line; + clickLine(5); + clickLine(10, { + shiftKey: true, }); - it('sets the hash', function() { - var spy; - spy = spyOn(this["class"], 'setHash'); - clickLine(13, { - shiftKey: true - }); - - expect(spy).toHaveBeenCalledWith(13); - }); + expect($('.' + this.css).length).toBe(6); + for (line = 5; line <= 10; line += 1) { + expect($('#LC' + line)).toHaveClass(this.css); + } }); + }); - describe('with existing single-line highlight', function() { - it('uses existing line as last line when target is lesser', function() { - var line; - clickLine(20); - clickLine(15, { - shiftKey: true - }); - - expect($("." + this.css).length).toBe(6); - for (line = 15; line <= 20; line += 1) { - expect($("#LC" + line)).toHaveClass(this.css); - } + describe('with existing multi-line highlight', function() { + beforeEach(function() { + clickLine(10, { + shiftKey: true, }); - - it('uses existing line as first line when target is greater', function() { - var line; - clickLine(5); - clickLine(10, { - shiftKey: true - }); - - expect($("." + this.css).length).toBe(6); - for (line = 5; line <= 10; line += 1) { - expect($("#LC" + line)).toHaveClass(this.css); - } + clickLine(13, { + shiftKey: true, }); }); - describe('with existing multi-line highlight', function() { - beforeEach(function() { - clickLine(10, { - shiftKey: true - }); - clickLine(13, { - shiftKey: true - }); + it('uses target as first line when it is less than existing first line', function() { + var line; + clickLine(5, { + shiftKey: true, }); - it('uses target as first line when it is less than existing first line', function() { - var line; - clickLine(5, { - shiftKey: true - }); + expect($('.' + this.css).length).toBe(6); + for (line = 5; line <= 10; line += 1) { + expect($('#LC' + line)).toHaveClass(this.css); + } + }); - expect($("." + this.css).length).toBe(6); - for (line = 5; line <= 10; line += 1) { - expect($("#LC" + line)).toHaveClass(this.css); - } + it('uses target as last line when it is greater than existing first line', function() { + var line; + clickLine(15, { + shiftKey: true, }); - it('uses target as last line when it is greater than existing first line', function() { - var line; - clickLine(15, { - shiftKey: true - }); - - expect($("." + this.css).length).toBe(6); - for (line = 10; line <= 15; line += 1) { - expect($("#LC" + line)).toHaveClass(this.css); - } - }); + expect($('.' + this.css).length).toBe(6); + for (line = 10; line <= 15; line += 1) { + expect($('#LC' + line)).toHaveClass(this.css); + } }); }); }); + }); - describe('hashToRange', function() { - beforeEach(function() { - this.subject = this["class"].hashToRange; - }); - - it('extracts a single line number from the hash', function() { - - expect(this.subject('#L5')).toEqual([5, null]); - }); - - it('extracts a range of line numbers from the hash', function() { + describe('hashToRange', function() { + beforeEach(function() { + this.subject = this['class'].hashToRange; + }); - expect(this.subject('#L5-15')).toEqual([5, 15]); - }); + it('extracts a single line number from the hash', function() { + expect(this.subject('#L5')).toEqual([5, null]); + }); - it('returns [null, null] when the hash is not a line number', function() { + it('extracts a range of line numbers from the hash', function() { + expect(this.subject('#L5-15')).toEqual([5, 15]); + }); - expect(this.subject('#foo')).toEqual([null, null]); - }); + it('returns [null, null] when the hash is not a line number', function() { + expect(this.subject('#foo')).toEqual([null, null]); }); + }); - describe('highlightLine', function() { - beforeEach(function() { - this.subject = this["class"].highlightLine; - }); + describe('highlightLine', function() { + beforeEach(function() { + this.subject = this['class'].highlightLine; + }); - it('highlights the specified line', function() { - this.subject(13); + it('highlights the specified line', function() { + this.subject(13); - expect($('#LC13')).toHaveClass(this.css); - }); + expect($('#LC13')).toHaveClass(this.css); + }); - it('accepts a String-based number', function() { - this.subject('13'); + it('accepts a String-based number', function() { + this.subject('13'); - expect($('#LC13')).toHaveClass(this.css); - }); + expect($('#LC13')).toHaveClass(this.css); }); + }); - describe('setHash', function() { - beforeEach(function() { - this.subject = this["class"].setHash; - }); + describe('setHash', function() { + beforeEach(function() { + this.subject = this['class'].setHash; + }); - it('sets the location hash for a single line', function() { - this.subject(5); + it('sets the location hash for a single line', function() { + this.subject(5); - expect(this.spies.__setLocationHash__).toHaveBeenCalledWith('#L5'); - }); + expect(this.spies.__setLocationHash__).toHaveBeenCalledWith('#L5'); + }); - it('sets the location hash for a range', function() { - this.subject(5, 15); + it('sets the location hash for a range', function() { + this.subject(5, 15); - expect(this.spies.__setLocationHash__).toHaveBeenCalledWith('#L5-15'); - }); + expect(this.spies.__setLocationHash__).toHaveBeenCalledWith('#L5-15'); }); }); -}).call(window); +}); |