Skip to content
This repository was archived by the owner on May 29, 2019. It is now read-only.

Commit 8348d8e

Browse files
committed
feat(datepicker): ng-model-options: timezone: dateParse spec
1 parent 42b9117 commit 8348d8e

File tree

1 file changed

+112
-0
lines changed

1 file changed

+112
-0
lines changed

Diff for: src/dateparser/test/dateparser.spec.js

+112
Original file line numberDiff line numberDiff line change
@@ -387,4 +387,116 @@ describe('date parser', function() {
387387

388388
expect(dateParser.init).toHaveBeenCalled();
389389
}));
390+
391+
392+
describe('timezone functions', function() {
393+
describe('toTimezone', function() {
394+
it('adjusts date: EST + PST', function() {
395+
var date = new Date('2008-01-01T00:00:00.000Z');
396+
var toWestDate = dateParser.toTimezone(date, 'PST');
397+
var toEastDate = dateParser.toTimezone(date, 'EST');
398+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 3);
399+
});
400+
401+
it('adjusts date: GMT-0500 + GMT+0500', function() {
402+
var date = new Date('2008-01-01T00:00:00.000Z');
403+
var toWestDate = dateParser.toTimezone(date, 'GMT-0500');
404+
var toEastDate = dateParser.toTimezone(date, 'GMT+0500');
405+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 10);
406+
});
407+
408+
it('adjusts date: -600 + +600', function() {
409+
var date = new Date('2008-01-01T00:00:00.000Z');
410+
var toWestDate = dateParser.toTimezone(date, '-600');
411+
var toEastDate = dateParser.toTimezone(date, '+600');
412+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 12);
413+
});
414+
415+
it('tolerates null date', function() {
416+
var date = null;
417+
var toNullDate = dateParser.toTimezone(date, '-600');
418+
expect(toNullDate).toEqual(date);
419+
});
420+
421+
it('tolerates null timezone', function() {
422+
var date = new Date('2008-01-01T00:00:00.000Z');
423+
var toNullTimezoneDate = dateParser.toTimezone(date, null);
424+
expect(toNullTimezoneDate).toEqual(date);
425+
});
426+
});
427+
428+
describe('fromTimezone', function() {
429+
it('adjusts date: EST + PST', function() {
430+
var date = new Date('2008-01-01T00:00:00.000Z');
431+
var fromWestDate = dateParser.fromTimezone(date, 'PST');
432+
var fromEastDate = dateParser.fromTimezone(date, 'EST');
433+
expect(fromWestDate.getTime() - fromEastDate.getTime()).toEqual(1000 * 60 * 60 * -3);
434+
});
435+
436+
it('adjusts date: GMT-0500 + GMT+0500', function() {
437+
var date = new Date('2008-01-01T00:00:00.000Z');
438+
var fromWestDate = dateParser.fromTimezone(date, 'GMT-0500');
439+
var fromEastDate = dateParser.fromTimezone(date, 'GMT+0500');
440+
expect(fromWestDate.getTime() - fromEastDate.getTime()).toEqual(1000 * 60 * 60 * -10);
441+
});
442+
443+
it('adjusts date: -600 + +600', function() {
444+
var date = new Date('2008-01-01T00:00:00.000Z');
445+
var fromWestDate = dateParser.fromTimezone(date, '-600');
446+
var fromEastDate = dateParser.fromTimezone(date, '+600');
447+
expect(fromWestDate.getTime() - fromEastDate.getTime()).toEqual(1000 * 60 * 60 * -12);
448+
});
449+
450+
it('tolerates null date', function() {
451+
var date = null;
452+
var toNullDate = dateParser.fromTimezone(date, '-600');
453+
expect(toNullDate).toEqual(date);
454+
});
455+
456+
it('tolerates null timezone', function() {
457+
var date = new Date('2008-01-01T00:00:00.000Z');
458+
var toNullTimezoneDate = dateParser.fromTimezone(date, null);
459+
expect(toNullTimezoneDate).toEqual(date);
460+
});
461+
});
462+
463+
describe('timezoneToOffset', function() {
464+
it('calculates minutes off from current timezone', function() {
465+
var offsetMinutesUtc = dateParser.timezoneToOffset('UTC');
466+
var offsetMinutesUtcPlus1 = dateParser.timezoneToOffset('GMT+0100');
467+
expect(offsetMinutesUtc - offsetMinutesUtcPlus1).toEqual(60);
468+
});
469+
});
470+
471+
describe('addDateMinutes', function() {
472+
it('adds minutes to a date', function() {
473+
var date = new Date('2008-01-01T00:00:00.000Z');
474+
var oneHourMore = dateParser.addDateMinutes(date, 60);
475+
expect(oneHourMore).toEqual(new Date('2008-01-01T01:00:00.000Z'));
476+
});
477+
});
478+
479+
describe('convertTimezoneToLocal', function() {
480+
it('adjusts date: EST + PST', function() {
481+
var date = new Date('2008-01-01T00:00:00.000Z');
482+
var toWestDate = dateParser.convertTimezoneToLocal(date, 'PST');
483+
var toEastDate = dateParser.convertTimezoneToLocal(date, 'EST');
484+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 3);
485+
});
486+
487+
it('adjusts date: GMT-0500 + GMT+0500', function() {
488+
var date = new Date('2008-01-01T00:00:00.000Z');
489+
var toWestDate = dateParser.convertTimezoneToLocal(date, 'GMT-0500');
490+
var toEastDate = dateParser.convertTimezoneToLocal(date, 'GMT+0500');
491+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 10);
492+
});
493+
494+
it('adjusts date: -600 + +600', function() {
495+
var date = new Date('2008-01-01T00:00:00.000Z');
496+
var toWestDate = dateParser.convertTimezoneToLocal(date, '-600');
497+
var toEastDate = dateParser.convertTimezoneToLocal(date, '+600');
498+
expect(toWestDate.getTime() - toEastDate.getTime()).toEqual(1000 * 60 * 60 * 12);
499+
});
500+
});
501+
});
390502
});

0 commit comments

Comments
 (0)