From 6fcaec3ca8e848097f257d44e8f8e7e80a529ce3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Sun, 5 Feb 2017 19:35:33 -0300
Subject: [PATCH 1/2] add test parts of day for compliments module
---
CHANGELOG.md | 1 +
.../compliments/compliments_parts_day.js | 42 ++++++++++++++
tests/e2e/modules/compliments_spec.js | 58 +++++++++++++++++++
3 files changed, 101 insertions(+)
create mode 100644 tests/configs/modules/compliments/compliments_parts_day.js
create mode 100644 tests/e2e/modules/compliments_spec.js
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);
+ });
+ });
+
+});
From 03f5d9b102825c2033c51fccf2c7e644cb49ed0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?=
Date: Tue, 7 Feb 2017 16:00:35 -0300
Subject: [PATCH 2/2] Split test for parts of day in compliments module
---
.../compliments/compliments_parts_day.js | 6 +--
tests/e2e/modules/compliments_spec.js | 42 ++++++++++++++-----
2 files changed, 34 insertions(+), 14 deletions(-)
diff --git a/tests/configs/modules/compliments/compliments_parts_day.js b/tests/configs/modules/compliments/compliments_parts_day.js
index bee79283..8d47fe22 100644
--- a/tests/configs/modules/compliments/compliments_parts_day.js
+++ b/tests/configs/modules/compliments/compliments_parts_day.js
@@ -24,13 +24,13 @@ var config = {
config: {
compliments: {
morning: [
- "Morning test"
+ "Hi", "Good Morning", "Morning test"
],
afternoon: [
- "Afternoon test"
+ "Hello", "Good Afternoon", "Afternoon test"
],
evening: [
- "Evening test"
+ "Hello There", "Good Evening", "Evening test"
]
}
}
diff --git a/tests/e2e/modules/compliments_spec.js b/tests/e2e/modules/compliments_spec.js
index 0c152b8d..15790177 100644
--- a/tests/e2e/modules/compliments_spec.js
+++ b/tests/e2e/modules/compliments_spec.js
@@ -1,8 +1,8 @@
const Application = require("spectron").Application;
const path = require("path");
const chai = require("chai");
+const expect = chai.expect;
const chaiAsPromised = require("chai-as-promised");
-const moment = require("../../../vendor/moment/moment-with-locales.js");
var electronPath = path.join(__dirname, "../../../", "node_modules", ".bin", "electron");
@@ -39,20 +39,40 @@ describe("Compliments module", function () {
app.stop().then(function() { done(); });
});
- it("shows correct compliments for part of day", function () {
- var hour = moment().hour();
+ it("if Morning compliments for that part of day", function () {
+ var hour = new Date().getHours();
if (hour >= 3 && hour < 12) {
- compliment = "Morning test";
- } else if (hour >= 12 && hour < 17) {
- compliment = "Afternoon test";
- } else {
- compliment = "Evening test";
+ // if morning check
+ return app.client.waitUntilWindowLoaded()
+ .getText(".compliments").then(function (text) {
+ expect(text).to.be.oneOf(["Hi", "Good Morning", "Morning test"]);
+ })
}
-
- return app.client.waitUntilWindowLoaded()
- .getText(".compliments").should.eventually.equal(compliment);
});
+
+ 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"]);
+ })
+ }
+ });
+
});
});