diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ae626a6..82b3ee4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Add `chai-as-promised` npm module to devDependencies - Basic set of tests for clock module - Run e2e test in Travis +- Add test for compliments module for parts of day ### Fixed - Update .gitignore to not ignore default modules folder. diff --git a/tests/configs/modules/compliments/compliments_parts_day.js b/tests/configs/modules/compliments/compliments_parts_day.js new file mode 100644 index 00000000..8d47fe22 --- /dev/null +++ b/tests/configs/modules/compliments/compliments_parts_day.js @@ -0,0 +1,42 @@ +/* Magic Mirror Test config for default compliments + * + * By Rodrigo Ramírez Norambuena https://rodrigoramirez.com + * MIT Licensed. + */ + +var 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: [ + "Hi", "Good Morning", "Morning test" + ], + afternoon: [ + "Hello", "Good Afternoon", "Afternoon test" + ], + evening: [ + "Hello There", "Good Evening", "Evening test" + ] + } + } + } + ] +}; + +/*************** 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 new file mode 100644 index 00000000..15790177 --- /dev/null +++ b/tests/e2e/modules/compliments_spec.js @@ -0,0 +1,78 @@ +const Application = require("spectron").Application; +const path = require("path"); +const chai = require("chai"); +const expect = chai.expect; +const chaiAsPromised = require("chai-as-promised"); + +var electronPath = path.join(__dirname, "../../../", "node_modules", ".bin", "electron"); + +if (process.platform === "win32") { + electronPath += ".cmd"; +} + +var appPath = path.join(__dirname, "../../../js/electron.js"); + +var app = new Application({ + path: electronPath, + args: [appPath] +}); + +global.before(function () { + chai.should(); + chai.use(chaiAsPromised); +}); + +describe("Compliments module", function () { + this.timeout(10000); + + describe("parts of days", function() { + before(function() { + // Set config sample for use in test + process.env.MM_CONFIG_FILE = "tests/configs/modules/compliments/compliments_parts_day.js"; + }); + + beforeEach(function (done) { + app.start().then(function() { done(); } ); + }); + + afterEach(function (done) { + app.stop().then(function() { done(); }); + }); + + + it("if Morning compliments for that part of day", function () { + var hour = new Date().getHours(); + if (hour >= 3 && hour < 12) { + // if morning check + return app.client.waitUntilWindowLoaded() + .getText(".compliments").then(function (text) { + expect(text).to.be.oneOf(["Hi", "Good Morning", "Morning test"]); + }) + } + }); + + it("if Afternoon show Compliments for that part of day", function () { + var hour = new Date().getHours(); + if (hour >= 12 && hour < 17) { + // if morning check + return app.client.waitUntilWindowLoaded() + .getText(".compliments").then(function (text) { + expect(text).to.be.oneOf(["Hello", "Good Afternoon", "Afternoon test"]); + }) + } + }); + + it("if Evening show Compliments for that part of day", function () { + var hour = new Date().getHours(); + if (!(hour >= 3 && hour < 12) && !(hour >= 12 && hour < 17)) { + // if evening check + return app.client.waitUntilWindowLoaded() + .getText(".compliments").then(function (text) { + expect(text).to.be.oneOf(["Hello There", "Good Evening", "Evening test"]); + }) + } + }); + + }); + +});