Sha256: 38ef54285cd2ffe36d8e6af9652437d8943f9278c5f5689437796020aaee9b1f
Contents?: true
Size: 1.27 KB
Versions: 26
Compression:
Stored size: 1.27 KB
Contents
const RealDate = Date; let now = null; class MockDate extends RealDate { constructor(y, m, d, h, M, s, ms) { super(); let date; switch (arguments.length) { case 0: if (now !== null) { date = new RealDate(now.valueOf()); } else { date = new RealDate(); } break; case 1: date = new RealDate(y); break; default: d = typeof d === "undefined" ? 1 : d; h = h || 0; M = M || 0; s = s || 0; ms = ms || 0; date = new RealDate(y, m, d, h, M, s, ms); break; } Object.setPrototypeOf(date, MockDate.prototype); return date; } } MockDate.UTC = RealDate.UTC; MockDate.now = function() { return new MockDate().valueOf(); }; MockDate.parse = function(dateString) { return RealDate.parse(dateString); }; MockDate.toString = function() { return RealDate.toString(); }; function mockDate(date) { const dateObj = new RealDate(date.valueOf()); if (Number.isNaN(dateObj.getTime())) { throw new TypeError(`mockdate: The time set is an invalid date: ${date}`); } globalThis.Date = MockDate; now = dateObj.valueOf(); } function resetDate() { globalThis.Date = RealDate; } export { RealDate as R, mockDate as m, resetDate as r };
Version data entries
26 entries across 26 versions & 1 rubygems