From 82b50d3059c0e04db246fd0ae9c49841e4fec73e Mon Sep 17 00:00:00 2001 From: rejas Date: Sun, 8 Mar 2020 23:18:09 +0100 Subject: [PATCH 01/11] Add basic compliment on a specific day of the year --- modules/default/compliments/compliments.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 606da1df..c137a379 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -28,7 +28,10 @@ Module.register("compliments", { "Wow, you look hot!", "You look nice!", "Hi, sexy!" - ] + ], + date: [ + ["12-10", "Happy birthday, Ada Lovelace!"] + ], }, updateInterval: 30000, remoteFile: null, @@ -102,6 +105,8 @@ Module.register("compliments", { */ complimentArray: function() { var hour = moment().hour(); + var year = moment().year(); + var today = moment(new Date()); var compliments; if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.compliments.hasOwnProperty("morning")) { @@ -122,6 +127,12 @@ Module.register("compliments", { compliments.push.apply(compliments, this.config.compliments.anytime); + this.config.compliments.date.forEach(d => { + if (today.isSame(year + "-" + d[0], "month")) { + compliments.push(d[1]); + } + }); + return compliments; }, From cafa4211a657b454f631e2755aacabd1c92bab70 Mon Sep 17 00:00:00 2001 From: rejas Date: Mon, 9 Mar 2020 18:24:27 +0100 Subject: [PATCH 02/11] Update changelog and add another birtday --- CHANGELOG.md | 1 + modules/default/compliments/compliments.js | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b7f5572..6be1c1a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Run tests on long term support and latest stable version of nodejs - Added the ability to configure a list of modules that shouldn't be update checked. - Run linters on git commits +- Added date functionality to compliments: display birthday wishes or celebrate an anniversary ### Fixed - Force declaration of public ip address in config file (ISSUE #1852) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index c137a379..6a2fca2c 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -30,6 +30,7 @@ Module.register("compliments", { "Hi, sexy!" ], date: [ + ["03-14", "Happy birthday, Albert Einstein!"], ["12-10", "Happy birthday, Ada Lovelace!"] ], }, From 2a31ece0c691a3b6ae73fec60766e0ebccc36c85 Mon Sep 17 00:00:00 2001 From: rejas Date: Tue, 10 Mar 2020 10:45:09 +0100 Subject: [PATCH 03/11] Refactor code --- modules/default/compliments/compliments.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 6a2fca2c..3ccf742e 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -29,10 +29,12 @@ Module.register("compliments", { "You look nice!", "Hi, sexy!" ], - date: [ - ["03-14", "Happy birthday, Albert Einstein!"], - ["12-10", "Happy birthday, Ada Lovelace!"] + 1403 : [ + "Happy birthday, Albert Einstein!" ], + 1012: [ + "Happy birthday, Ada Lovelace!" + ] }, updateInterval: 30000, remoteFile: null, @@ -106,8 +108,7 @@ Module.register("compliments", { */ complimentArray: function() { var hour = moment().hour(); - var year = moment().year(); - var today = moment(new Date()); + var date = moment().format("DDMM"); var compliments; if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.compliments.hasOwnProperty("morning")) { @@ -128,11 +129,9 @@ Module.register("compliments", { compliments.push.apply(compliments, this.config.compliments.anytime); - this.config.compliments.date.forEach(d => { - if (today.isSame(year + "-" + d[0], "month")) { - compliments.push(d[1]); - } - }); + if (date in this.config.compliments) { + compliments.push.apply(compliments, this.config.compliments[date]); + } return compliments; }, From b08f8823247328b51e44192a2f8ac9738c2c6cbf Mon Sep 17 00:00:00 2001 From: rejas Date: Sat, 14 Mar 2020 21:14:45 +0100 Subject: [PATCH 04/11] Add (failing) test for new date field --- .../modules/compliments/compliments_date.js | 40 +++++++++++++++++++ tests/e2e/modules/compliments_spec.js | 37 +++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 tests/configs/modules/compliments/compliments_date.js diff --git a/tests/configs/modules/compliments/compliments_date.js b/tests/configs/modules/compliments/compliments_date.js new file mode 100644 index 00000000..04acdde4 --- /dev/null +++ b/tests/configs/modules/compliments/compliments_date.js @@ -0,0 +1,40 @@ +/* Magic Mirror Test config compliments with date type + * + * By Rejas + * + * MIT Licensed. + */ + +let config = { + port: 8080, + ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], + + language: "en", + timeFormat: 12, + units: "metric", + electronOptions: { + webPreferences: { + nodeIntegration: true, + }, + }, + + modules: [ + { + module: "compliments", + position: "middle_center", + config: { + compliments: { + morning: [], + afternoon: [], + evening: [], + 1012: [ + "Happy birthday, Ada Lovelace!" + ] + } + } + } + ] +}; + +/*************** DO NOT EDIT THE LINE BELOW ***************/ +if (typeof module !== "undefined") {module.exports = config;} diff --git a/tests/e2e/modules/compliments_spec.js b/tests/e2e/modules/compliments_spec.js index 35529b19..68dcb7ff 100644 --- a/tests/e2e/modules/compliments_spec.js +++ b/tests/e2e/modules/compliments_spec.js @@ -1,5 +1,6 @@ const helpers = require("../global-setup"); const expect = require("chai").expect; +const moment = require("moment"); const describe = global.describe; const it = global.it; @@ -89,4 +90,40 @@ describe("Compliments module", function() { }); }); }); + + describe("Feature date in compliments module", function() { + describe("Set date and empty compliments for anytime, morning, evening and afternoon", function() { + let RealDate; + + before(function() { + // Set config sample for use in test + process.env.MM_CONFIG_FILE = "tests/configs/modules/compliments/compliments_date.js"; + + RealDate = Date; + let customTimeMs = moment("2015-10-12T06:00:00.000Z").valueOf(); + + function MockDate() { + return new RealDate(customTimeMs); + } + + MockDate.now = function () { + return new MockDate().valueOf(); + }; + + MockDate.prototype = RealDate.prototype; + + Date = MockDate; + }); + + it("Show anytime because if configure empty parts of day compliments and set anytime compliments", function() { + return app.client.waitUntilWindowLoaded().getText(".compliments").then(function(text) { + expect(text).to.be.oneOf(["Happy birthday, Ada Lovelace!"]); + }); + }); + + after(function() { + Date = RealDate; + }); + }); + }); }); From e2427fe29901cd24bcd11ffb7023439c4d468f7a Mon Sep 17 00:00:00 2001 From: rejas Date: Sun, 15 Mar 2020 09:11:55 +0100 Subject: [PATCH 05/11] Try out a mockdate class --- tests/e2e/modules/compliments_spec.js | 24 ++------ tests/e2e/modules/mocks/date.js | 86 +++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 20 deletions(-) create mode 100644 tests/e2e/modules/mocks/date.js diff --git a/tests/e2e/modules/compliments_spec.js b/tests/e2e/modules/compliments_spec.js index 68dcb7ff..2ebd2e82 100644 --- a/tests/e2e/modules/compliments_spec.js +++ b/tests/e2e/modules/compliments_spec.js @@ -1,6 +1,6 @@ const helpers = require("../global-setup"); const expect = require("chai").expect; -const moment = require("moment"); +const MockDate = require("./mocks/date.js"); const describe = global.describe; const it = global.it; @@ -93,36 +93,20 @@ describe("Compliments module", function() { describe("Feature date in compliments module", function() { describe("Set date and empty compliments for anytime, morning, evening and afternoon", function() { - let RealDate; - before(function() { // Set config sample for use in test process.env.MM_CONFIG_FILE = "tests/configs/modules/compliments/compliments_date.js"; - - RealDate = Date; - let customTimeMs = moment("2015-10-12T06:00:00.000Z").valueOf(); - - function MockDate() { - return new RealDate(customTimeMs); - } - - MockDate.now = function () { - return new MockDate().valueOf(); - }; - - MockDate.prototype = RealDate.prototype; - - Date = MockDate; + MockDate.set("2000-12-10"); }); - it("Show anytime because if configure empty parts of day compliments and set anytime compliments", function() { + it("Show happy birthday compliment on special date", function() { return app.client.waitUntilWindowLoaded().getText(".compliments").then(function(text) { expect(text).to.be.oneOf(["Happy birthday, Ada Lovelace!"]); }); }); after(function() { - Date = RealDate; + MockDate.reset(); }); }); }); diff --git a/tests/e2e/modules/mocks/date.js b/tests/e2e/modules/mocks/date.js new file mode 100644 index 00000000..ff33f2e6 --- /dev/null +++ b/tests/e2e/modules/mocks/date.js @@ -0,0 +1,86 @@ +(function(name, definition) { + if (typeof module !== 'undefined') module.exports = definition(); + else if (typeof define === 'function' && typeof define.amd === 'object') define(definition); + else this[name] = definition(); +}('MockDate', function() { + "use strict"; + + var _Date = Date + , _getTimezoneOffset = Date.prototype.getTimezoneOffset + , now = null + ; + + function MockDate(y, m, d, h, M, s, ms) { + var date; + + switch (arguments.length) { + + case 0: + if (now !== null) { + date = new _Date(now); + } else { + date = new _Date(); + } + break; + + case 1: + date = new _Date(y); + break; + + default: + d = typeof d === 'undefined' ? 1 : d; + h = h || 0; + M = M || 0; + s = s || 0; + ms = ms || 0; + date = new _Date(y, m, d, h, M, s, ms); + break; + } + + return date; + } + + MockDate.UTC = _Date.UTC; + + MockDate.now = function() { + return new MockDate().valueOf(); + }; + + MockDate.parse = function(dateString) { + return _Date.parse(dateString); + }; + + MockDate.toString = function() { + return _Date.toString(); + }; + + MockDate.prototype = _Date.prototype; + + function set(date, timezoneOffset) { + var dateObj = new Date(date) + if (isNaN(dateObj.getTime())) { + throw new TypeError('mockdate: The time set is an invalid date: ' + date) + } + + if (typeof timezoneOffset === 'number') { + MockDate.prototype.getTimezoneOffset = function() { + return timezoneOffset; + } + } + + Date = MockDate; + + now = dateObj.valueOf(); + } + + function reset() { + Date = _Date; + Date.prototype.getTimezoneOffset = _getTimezoneOffset + } + + return { + set: set, + reset: reset + }; + +})); From 65e1b60fb7bc773cb60041080e8966e8e6bd53ad Mon Sep 17 00:00:00 2001 From: rejas Date: Sun, 15 Mar 2020 09:49:32 +0100 Subject: [PATCH 06/11] Fix error when no compliments are set --- modules/default/compliments/compliments.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 3ccf742e..7b2fa74a 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -162,19 +162,19 @@ Module.register("compliments", { // get the current time of day compliments list var compliments = this.complimentArray(); // variable for index to next message to display - let index=0; + let index = 0; // are we randomizing if(this.config.random){ // yes index = this.randomIndex(compliments); } else{ - // no, sequetial - // if doing sequential, don't fall off the end + // no, sequential + // if doing sequential, don't fall off the end index = (this.lastIndexUsed >= (compliments.length-1))?0: ++this.lastIndexUsed; } - return compliments[index]; + return compliments[index] || ""; }, // Override dom generator. @@ -184,9 +184,9 @@ Module.register("compliments", { // get the compliment text var complimentText = this.randomCompliment(); // split it into parts on newline text - var parts= complimentText.split("\n"); + var parts = complimentText.split("\n"); // create a span to hold it all - var compliment=document.createElement("span"); + var compliment = document.createElement("span"); // process all the parts of the compliment text for (part of parts){ // create a text element for each part From 3659b5b5c97efbf0298f6a7ed5e8b0fcf643bff6 Mon Sep 17 00:00:00 2001 From: rejas Date: Sun, 15 Mar 2020 10:20:20 +0100 Subject: [PATCH 07/11] Update mockdate info --- tests/e2e/modules/mocks/date.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/e2e/modules/mocks/date.js b/tests/e2e/modules/mocks/date.js index ff33f2e6..b254e1da 100644 --- a/tests/e2e/modules/mocks/date.js +++ b/tests/e2e/modules/mocks/date.js @@ -1,3 +1,10 @@ +/** + * MockDate + * + * By Bob Lauer (https://github.com/boblauer/MockDate + * MIT Licensed. +*/ + (function(name, definition) { if (typeof module !== 'undefined') module.exports = definition(); else if (typeof define === 'function' && typeof define.amd === 'object') define(definition); From 4e4d3418b365b1c639a344f7512e9eaea0a92ec6 Mon Sep 17 00:00:00 2001 From: rejas Date: Wed, 25 Mar 2020 06:53:09 +0100 Subject: [PATCH 08/11] LInt mockdate helper --- tests/e2e/modules/mocks/date.js | 128 ++++++++++++++++---------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/tests/e2e/modules/mocks/date.js b/tests/e2e/modules/mocks/date.js index b254e1da..35113566 100644 --- a/tests/e2e/modules/mocks/date.js +++ b/tests/e2e/modules/mocks/date.js @@ -6,88 +6,88 @@ */ (function(name, definition) { - if (typeof module !== 'undefined') module.exports = definition(); - else if (typeof define === 'function' && typeof define.amd === 'object') define(definition); - else this[name] = definition(); -}('MockDate', function() { - "use strict"; + if (typeof module !== "undefined") {module.exports = definition();} + else if (typeof define === "function" && typeof define.amd === "object") {define(definition);} + else {this[name] = definition();} +}("MockDate", function() { + "use strict"; - var _Date = Date - , _getTimezoneOffset = Date.prototype.getTimezoneOffset - , now = null + var _Date = Date + , _getTimezoneOffset = Date.prototype.getTimezoneOffset + , now = null ; - function MockDate(y, m, d, h, M, s, ms) { - var date; + function MockDate(y, m, d, h, M, s, ms) { + var date; - switch (arguments.length) { + switch (arguments.length) { - case 0: - if (now !== null) { - date = new _Date(now); - } else { - date = new _Date(); - } - break; + case 0: + if (now !== null) { + date = new _Date(now); + } else { + date = new _Date(); + } + break; - case 1: - date = new _Date(y); - break; + case 1: + date = new _Date(y); + break; - default: - d = typeof d === 'undefined' ? 1 : d; - h = h || 0; - M = M || 0; - s = s || 0; - ms = ms || 0; - date = new _Date(y, m, d, h, M, s, ms); - break; - } + default: + d = typeof d === "undefined" ? 1 : d; + h = h || 0; + M = M || 0; + s = s || 0; + ms = ms || 0; + date = new _Date(y, m, d, h, M, s, ms); + break; + } - return date; - } + return date; + } - MockDate.UTC = _Date.UTC; + MockDate.UTC = _Date.UTC; - MockDate.now = function() { - return new MockDate().valueOf(); - }; + MockDate.now = function() { + return new MockDate().valueOf(); + }; - MockDate.parse = function(dateString) { - return _Date.parse(dateString); - }; + MockDate.parse = function(dateString) { + return _Date.parse(dateString); + }; - MockDate.toString = function() { - return _Date.toString(); - }; + MockDate.toString = function() { + return _Date.toString(); + }; - MockDate.prototype = _Date.prototype; + MockDate.prototype = _Date.prototype; - function set(date, timezoneOffset) { - var dateObj = new Date(date) - if (isNaN(dateObj.getTime())) { - throw new TypeError('mockdate: The time set is an invalid date: ' + date) - } + function set(date, timezoneOffset) { + var dateObj = new Date(date); + if (isNaN(dateObj.getTime())) { + throw new TypeError("mockdate: The time set is an invalid date: " + date); + } - if (typeof timezoneOffset === 'number') { - MockDate.prototype.getTimezoneOffset = function() { - return timezoneOffset; - } - } + if (typeof timezoneOffset === "number") { + MockDate.prototype.getTimezoneOffset = function() { + return timezoneOffset; + }; + } - Date = MockDate; + Date = MockDate; - now = dateObj.valueOf(); - } + now = dateObj.valueOf(); + } - function reset() { - Date = _Date; - Date.prototype.getTimezoneOffset = _getTimezoneOffset - } + function reset() { + Date = _Date; + Date.prototype.getTimezoneOffset = _getTimezoneOffset; + } - return { - set: set, - reset: reset - }; + return { + set: set, + reset: reset + }; })); From ff7dc95e93c46599949b3bae93e8ca0f6622c935 Mon Sep 17 00:00:00 2001 From: rejas Date: Sat, 28 Mar 2020 09:24:30 +0100 Subject: [PATCH 09/11] Implement suggestions from Michael --- modules/default/compliments/compliments.js | 19 ++++++++++++------- .../modules/compliments/compliments_date.js | 4 ++-- tests/e2e/modules/compliments_spec.js | 6 +++--- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 7b2fa74a..14ad67dc 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -29,11 +29,14 @@ Module.register("compliments", { "You look nice!", "Hi, sexy!" ], - 1403 : [ - "Happy birthday, Albert Einstein!" + "....-01-01": [ + "Happy new year!" ], - 1012: [ - "Happy birthday, Ada Lovelace!" + "....-..-14": [ + "Have a great 14th day of the month!" + ], + "2020-12-10": [ + "Happy 205th Birthday, Ada Lovelace!" ] }, updateInterval: 30000, @@ -108,7 +111,7 @@ Module.register("compliments", { */ complimentArray: function() { var hour = moment().hour(); - var date = moment().format("DDMM"); + var date = moment().format("YYYY-MM-DD"); var compliments; if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.compliments.hasOwnProperty("morning")) { @@ -129,8 +132,10 @@ Module.register("compliments", { compliments.push.apply(compliments, this.config.compliments.anytime); - if (date in this.config.compliments) { - compliments.push.apply(compliments, this.config.compliments[date]); + for (entry in this.config.compliments) { + if (new RegExp(entry).test(date)) { + compliments.push.apply(compliments, this.config.compliments[entry]); + } } return compliments; diff --git a/tests/configs/modules/compliments/compliments_date.js b/tests/configs/modules/compliments/compliments_date.js index 04acdde4..649d789b 100644 --- a/tests/configs/modules/compliments/compliments_date.js +++ b/tests/configs/modules/compliments/compliments_date.js @@ -27,8 +27,8 @@ let config = { morning: [], afternoon: [], evening: [], - 1012: [ - "Happy birthday, Ada Lovelace!" + "....-01-01": [ + "Happy new year!" ] } } diff --git a/tests/e2e/modules/compliments_spec.js b/tests/e2e/modules/compliments_spec.js index 2ebd2e82..d7828268 100644 --- a/tests/e2e/modules/compliments_spec.js +++ b/tests/e2e/modules/compliments_spec.js @@ -96,12 +96,12 @@ describe("Compliments module", function() { before(function() { // Set config sample for use in test process.env.MM_CONFIG_FILE = "tests/configs/modules/compliments/compliments_date.js"; - MockDate.set("2000-12-10"); + MockDate.set("2000-01-01"); }); - it("Show happy birthday compliment on special date", function() { + it("Show happy new year compliment on new years day", function() { return app.client.waitUntilWindowLoaded().getText(".compliments").then(function(text) { - expect(text).to.be.oneOf(["Happy birthday, Ada Lovelace!"]); + expect(text).to.be.oneOf(["Happy new year!"]); }); }); From 2674bf22d8188ac0e1aec7d87e0470ed8bf2c777 Mon Sep 17 00:00:00 2001 From: Michael Teeuw Date: Wed, 1 Apr 2020 09:44:22 +0200 Subject: [PATCH 10/11] Let's use sensible defaults. :) --- modules/default/compliments/compliments.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 14ad67dc..ca275d27 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -31,12 +31,6 @@ Module.register("compliments", { ], "....-01-01": [ "Happy new year!" - ], - "....-..-14": [ - "Have a great 14th day of the month!" - ], - "2020-12-10": [ - "Happy 205th Birthday, Ada Lovelace!" ] }, updateInterval: 30000, From 2464d0189169faa4f3c645146d964b11e2b4c2fd Mon Sep 17 00:00:00 2001 From: Michael Teeuw Date: Wed, 1 Apr 2020 10:57:50 +0200 Subject: [PATCH 11/11] Fix date test. --- modules/default/compliments/compliments.js | 5 +- .../modules/compliments/compliments_date.js | 1 + tests/e2e/modules/compliments_spec.js | 6 -- tests/e2e/modules/mocks/date.js | 93 ------------------- 4 files changed, 4 insertions(+), 101 deletions(-) delete mode 100644 tests/e2e/modules/mocks/date.js diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index ca275d27..bf7bca9f 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -40,7 +40,8 @@ Module.register("compliments", { morningEndTime: 12, afternoonStartTime: 12, afternoonEndTime: 17, - random: true + random: true, + mockDate: null }, lastIndexUsed:-1, // Set currentweather from module @@ -105,7 +106,7 @@ Module.register("compliments", { */ complimentArray: function() { var hour = moment().hour(); - var date = moment().format("YYYY-MM-DD"); + var date = this.config.mockDate ? this.config.mockDate : moment().format("YYYY-MM-DD"); var compliments; if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.compliments.hasOwnProperty("morning")) { diff --git a/tests/configs/modules/compliments/compliments_date.js b/tests/configs/modules/compliments/compliments_date.js index 649d789b..7ea984b1 100644 --- a/tests/configs/modules/compliments/compliments_date.js +++ b/tests/configs/modules/compliments/compliments_date.js @@ -23,6 +23,7 @@ let config = { module: "compliments", position: "middle_center", config: { + mockDate: "2020-01-01", compliments: { morning: [], afternoon: [], diff --git a/tests/e2e/modules/compliments_spec.js b/tests/e2e/modules/compliments_spec.js index d7828268..97fd0ed9 100644 --- a/tests/e2e/modules/compliments_spec.js +++ b/tests/e2e/modules/compliments_spec.js @@ -1,6 +1,5 @@ const helpers = require("../global-setup"); const expect = require("chai").expect; -const MockDate = require("./mocks/date.js"); const describe = global.describe; const it = global.it; @@ -96,7 +95,6 @@ describe("Compliments module", function() { before(function() { // Set config sample for use in test process.env.MM_CONFIG_FILE = "tests/configs/modules/compliments/compliments_date.js"; - MockDate.set("2000-01-01"); }); it("Show happy new year compliment on new years day", function() { @@ -104,10 +102,6 @@ describe("Compliments module", function() { expect(text).to.be.oneOf(["Happy new year!"]); }); }); - - after(function() { - MockDate.reset(); - }); }); }); }); diff --git a/tests/e2e/modules/mocks/date.js b/tests/e2e/modules/mocks/date.js deleted file mode 100644 index 35113566..00000000 --- a/tests/e2e/modules/mocks/date.js +++ /dev/null @@ -1,93 +0,0 @@ -/** - * MockDate - * - * By Bob Lauer (https://github.com/boblauer/MockDate - * MIT Licensed. -*/ - -(function(name, definition) { - if (typeof module !== "undefined") {module.exports = definition();} - else if (typeof define === "function" && typeof define.amd === "object") {define(definition);} - else {this[name] = definition();} -}("MockDate", function() { - "use strict"; - - var _Date = Date - , _getTimezoneOffset = Date.prototype.getTimezoneOffset - , now = null - ; - - function MockDate(y, m, d, h, M, s, ms) { - var date; - - switch (arguments.length) { - - case 0: - if (now !== null) { - date = new _Date(now); - } else { - date = new _Date(); - } - break; - - case 1: - date = new _Date(y); - break; - - default: - d = typeof d === "undefined" ? 1 : d; - h = h || 0; - M = M || 0; - s = s || 0; - ms = ms || 0; - date = new _Date(y, m, d, h, M, s, ms); - break; - } - - return date; - } - - MockDate.UTC = _Date.UTC; - - MockDate.now = function() { - return new MockDate().valueOf(); - }; - - MockDate.parse = function(dateString) { - return _Date.parse(dateString); - }; - - MockDate.toString = function() { - return _Date.toString(); - }; - - MockDate.prototype = _Date.prototype; - - function set(date, timezoneOffset) { - var dateObj = new Date(date); - if (isNaN(dateObj.getTime())) { - throw new TypeError("mockdate: The time set is an invalid date: " + date); - } - - if (typeof timezoneOffset === "number") { - MockDate.prototype.getTimezoneOffset = function() { - return timezoneOffset; - }; - } - - Date = MockDate; - - now = dateObj.valueOf(); - } - - function reset() { - Date = _Date; - Date.prototype.getTimezoneOffset = _getTimezoneOffset; - } - - return { - set: set, - reset: reset - }; - -}));