LInt mockdate helper

This commit is contained in:
rejas 2020-03-25 06:53:09 +01:00
parent 3659b5b5c9
commit 4e4d3418b3

View File

@ -6,88 +6,88 @@
*/ */
(function(name, definition) { (function(name, definition) {
if (typeof module !== 'undefined') module.exports = definition(); if (typeof module !== "undefined") {module.exports = definition();}
else if (typeof define === 'function' && typeof define.amd === 'object') define(definition); else if (typeof define === "function" && typeof define.amd === "object") {define(definition);}
else this[name] = definition(); else {this[name] = definition();}
}('MockDate', function() { }("MockDate", function() {
"use strict"; "use strict";
var _Date = Date var _Date = Date
, _getTimezoneOffset = Date.prototype.getTimezoneOffset , _getTimezoneOffset = Date.prototype.getTimezoneOffset
, now = null , now = null
; ;
function MockDate(y, m, d, h, M, s, ms) { function MockDate(y, m, d, h, M, s, ms) {
var date; var date;
switch (arguments.length) { switch (arguments.length) {
case 0: case 0:
if (now !== null) { if (now !== null) {
date = new _Date(now); date = new _Date(now);
} else { } else {
date = new _Date(); date = new _Date();
} }
break; break;
case 1: case 1:
date = new _Date(y); date = new _Date(y);
break; break;
default: default:
d = typeof d === 'undefined' ? 1 : d; d = typeof d === "undefined" ? 1 : d;
h = h || 0; h = h || 0;
M = M || 0; M = M || 0;
s = s || 0; s = s || 0;
ms = ms || 0; ms = ms || 0;
date = new _Date(y, m, d, h, M, s, ms); date = new _Date(y, m, d, h, M, s, ms);
break; break;
} }
return date; return date;
} }
MockDate.UTC = _Date.UTC; MockDate.UTC = _Date.UTC;
MockDate.now = function() { MockDate.now = function() {
return new MockDate().valueOf(); return new MockDate().valueOf();
}; };
MockDate.parse = function(dateString) { MockDate.parse = function(dateString) {
return _Date.parse(dateString); return _Date.parse(dateString);
}; };
MockDate.toString = function() { MockDate.toString = function() {
return _Date.toString(); return _Date.toString();
}; };
MockDate.prototype = _Date.prototype; MockDate.prototype = _Date.prototype;
function set(date, timezoneOffset) { function set(date, timezoneOffset) {
var dateObj = new Date(date) var dateObj = new Date(date);
if (isNaN(dateObj.getTime())) { if (isNaN(dateObj.getTime())) {
throw new TypeError('mockdate: The time set is an invalid date: ' + date) throw new TypeError("mockdate: The time set is an invalid date: " + date);
} }
if (typeof timezoneOffset === 'number') { if (typeof timezoneOffset === "number") {
MockDate.prototype.getTimezoneOffset = function() { MockDate.prototype.getTimezoneOffset = function() {
return timezoneOffset; return timezoneOffset;
} };
} }
Date = MockDate; Date = MockDate;
now = dateObj.valueOf(); now = dateObj.valueOf();
} }
function reset() { function reset() {
Date = _Date; Date = _Date;
Date.prototype.getTimezoneOffset = _getTimezoneOffset Date.prototype.getTimezoneOffset = _getTimezoneOffset;
} }
return { return {
set: set, set: set,
reset: reset reset: reset
}; };
})); }));