diff options
Diffstat (limited to 'spec/javascripts/lib')
-rw-r--r-- | spec/javascripts/lib/utils/common_utils_spec.js | 25 | ||||
-rw-r--r-- | spec/javascripts/lib/utils/datetime_utility_spec.js | 40 | ||||
-rw-r--r-- | spec/javascripts/lib/utils/text_utility_spec.js | 16 |
3 files changed, 80 insertions, 1 deletions
diff --git a/spec/javascripts/lib/utils/common_utils_spec.js b/spec/javascripts/lib/utils/common_utils_spec.js index 1ec1e8a8dd9..f320f232687 100644 --- a/spec/javascripts/lib/utils/common_utils_spec.js +++ b/spec/javascripts/lib/utils/common_utils_spec.js @@ -716,4 +716,29 @@ describe('common_utils', () => { expect(commonUtils.roundOffFloat(34567.14159, -5)).toBe(0); }); }); + + describe('isInViewport', () => { + let el; + + beforeEach(() => { + el = document.createElement('div'); + }); + + afterEach(() => { + document.body.removeChild(el); + }); + + it('returns true when provided `el` is in viewport', () => { + document.body.appendChild(el); + + expect(commonUtils.isInViewport(el)).toBe(true); + }); + + it('returns false when provided `el` is not in viewport', () => { + el.setAttribute('style', 'position: absolute; top: -1000px; left: -1000px;'); + document.body.appendChild(el); + + expect(commonUtils.isInViewport(el)).toBe(false); + }); + }); }); diff --git a/spec/javascripts/lib/utils/datetime_utility_spec.js b/spec/javascripts/lib/utils/datetime_utility_spec.js index bebe76f76c5..5327ec9d2a0 100644 --- a/spec/javascripts/lib/utils/datetime_utility_spec.js +++ b/spec/javascripts/lib/utils/datetime_utility_spec.js @@ -156,7 +156,7 @@ describe('getSundays', () => { }); describe('getTimeframeWindowFrom', () => { - it('returns array of date objects upto provided length start with provided startDate', () => { + it('returns array of date objects upto provided length (positive number) into the future starting from provided startDate', () => { const startDate = new Date(2018, 0, 1); const mockTimeframe = [ new Date(2018, 0, 1), @@ -174,6 +174,25 @@ describe('getTimeframeWindowFrom', () => { expect(timeframeItem.getDate()).toBe(mockTimeframe[index].getDate()); }); }); + + it('returns array of date objects upto provided length (negative number) into the past starting from provided startDate', () => { + const startDate = new Date(2018, 0, 1); + const mockTimeframe = [ + new Date(2018, 0, 1), + new Date(2017, 11, 1), + new Date(2017, 10, 1), + new Date(2017, 9, 1), + new Date(2017, 8, 1), + ]; + const timeframe = datetimeUtility.getTimeframeWindowFrom(startDate, -5); + + expect(timeframe.length).toBe(5); + timeframe.forEach((timeframeItem, index) => { + expect(timeframeItem.getFullYear()).toBe(mockTimeframe[index].getFullYear()); + expect(timeframeItem.getMonth()).toBe(mockTimeframe[index].getMonth()); + expect(timeframeItem.getDate()).toBe(mockTimeframe[index].getDate()); + }); + }); }); describe('formatTime', () => { @@ -376,3 +395,22 @@ describe('calculateRemainingMilliseconds', () => { expect(milliseconds).toBe(0); }); }); + +describe('newDate', () => { + it('returns new date instance from existing date instance', () => { + const initialDate = new Date(2019, 0, 1); + const copiedDate = datetimeUtility.newDate(initialDate); + + expect(copiedDate.getTime()).toBe(initialDate.getTime()); + + initialDate.setMonth(initialDate.getMonth() + 1); + + expect(copiedDate.getTime()).not.toBe(initialDate.getTime()); + }); + + it('returns date instance when provided date param is not of type date or is undefined', () => { + const initialDate = datetimeUtility.newDate(); + + expect(initialDate instanceof Date).toBe(true); + }); +}); diff --git a/spec/javascripts/lib/utils/text_utility_spec.js b/spec/javascripts/lib/utils/text_utility_spec.js index 92ebfc38722..0a266b19ea5 100644 --- a/spec/javascripts/lib/utils/text_utility_spec.js +++ b/spec/javascripts/lib/utils/text_utility_spec.js @@ -135,4 +135,20 @@ describe('text_utility', () => { expect(textUtils.getFirstCharacterCapitalized(null)).toEqual(''); }); }); + + describe('truncatePathMiddleToLength', () => { + it('does not truncate text', () => { + expect(textUtils.truncatePathMiddleToLength('app/test', 50)).toEqual('app/test'); + }); + + it('truncates middle of the path', () => { + expect(textUtils.truncatePathMiddleToLength('app/test/diff', 13)).toEqual('app/…/diff'); + }); + + it('truncates multiple times in the middle of the path', () => { + expect(textUtils.truncatePathMiddleToLength('app/test/merge_request/diff', 13)).toEqual( + 'app/…/…/diff', + ); + }); + }); }); |