diff options
author | Ezekiel Kigbo <ekigbo@gitlab.com> | 2019-04-02 23:12:53 +1100 |
---|---|---|
committer | Ezekiel Kigbo <ekigbo@gitlab.com> | 2019-04-03 01:16:37 +1100 |
commit | 49b48df101b7c81d4775ce67da115ca219c4a008 (patch) | |
tree | 7dd247f0f57411f0d15b34ed8b464c491f76f522 | |
parent | d2f7bcd4becdbbb8f6d420d293c092eb45b16dc1 (diff) | |
download | gitlab-ce-ekigbo-extend-timezone-dropdown.tar.gz |
Fix formatting when offset is 0ekigbo-extend-timezone-dropdown
2 files changed, 21 insertions, 16 deletions
diff --git a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown.js b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown.js index 02d8f7bef99..c1f6edf2f27 100644 --- a/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown.js +++ b/app/assets/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown.js @@ -1,16 +1,11 @@ const defaultTimezone = 'UTC'; export const formatUtcOffset = offset => { - if (Number.isNaN(parseInt(offset, 10))) { - return ` 0`; - } - - let prefix = ''; - if (offset > 0) { - prefix = '+'; - } else if (offset < 0) { - prefix = '-'; + const parsed = parseInt(offset, 10); + if (Number.isNaN(parsed) || parsed === 0) { + return `0`; } + const prefix = offset > 0 ? '+' : '-'; return `${prefix} ${Math.abs(offset / 3600)}`; }; diff --git a/spec/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown_spec.js b/spec/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown_spec.js index f50f4148231..a89952ee435 100644 --- a/spec/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown_spec.js +++ b/spec/javascripts/pages/projects/pipeline_schedules/shared/components/timezone_dropdown_spec.js @@ -108,28 +108,28 @@ describe('Timezone Dropdown', function() { }); it('will return 0 when given a string', () => { - expect(formatUtcOffset('BLAH')).toEqual(' 0'); - expect(formatUtcOffset('$%$%')).toEqual(' 0'); + expect(formatUtcOffset('BLAH')).toEqual('0'); + expect(formatUtcOffset('$%$%')).toEqual('0'); }); it('will return 0 when given an array', () => { - expect(formatUtcOffset(['an', 'array'])).toEqual(' 0'); + expect(formatUtcOffset(['an', 'array'])).toEqual('0'); }); it('will return 0 when given an object', () => { - expect(formatUtcOffset({ some: '', object: '' })).toEqual(' 0'); + expect(formatUtcOffset({ some: '', object: '' })).toEqual('0'); }); it('will return 0 when given null', () => { - expect(formatUtcOffset(null)).toEqual(' 0'); + expect(formatUtcOffset(null)).toEqual('0'); }); it('will return 0 when given undefined', () => { - expect(formatUtcOffset(undefined)).toEqual(' 0'); + expect(formatUtcOffset(undefined)).toEqual('0'); }); it('will return 0 when given empty input', () => { - expect(formatUtcOffset('')).toEqual(' 0'); + expect(formatUtcOffset('')).toEqual('0'); }); }); @@ -153,5 +153,15 @@ describe('Timezone Dropdown', function() { }), ).toEqual('[UTC - 6] Saskatchewan'); }); + + it('given name: "Accra", offset: "0", will format for display as "[UTC 0] Accra"', () => { + expect( + formatTimezone({ + name: 'Accra', + offset: 0, + identifier: 'Africa/Accra', + }), + ).toEqual('[UTC 0] Accra'); + }); }); }); |