diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c6e31e3..ce6b3fc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -42,6 +42,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..bee79283 --- /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: [ + "Morning test" + ], + afternoon: [ + "Afternoon test" + ], + 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..0c152b8d --- /dev/null +++ b/tests/e2e/modules/compliments_spec.js @@ -0,0 +1,58 @@ +const Application = require("spectron").Application; +const path = require("path"); +const chai = require("chai"); +const chaiAsPromised = require("chai-as-promised"); +const moment = require("../../../vendor/moment/moment-with-locales.js"); + +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("shows correct compliments for part of day", function () { + + var hour = moment().hour(); + if (hour >= 3 && hour < 12) { + compliment = "Morning test"; + } else if (hour >= 12 && hour < 17) { + compliment = "Afternoon test"; + } else { + compliment = "Evening test"; + } + + return app.client.waitUntilWindowLoaded() + .getText(".compliments").should.eventually.equal(compliment); + }); + }); + +});