diff --git a/CHANGELOG.md b/CHANGELOG.md index 2aa0ec6b..9c6b1a48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). - Icelandic Translation. - Add use a script to prevent when is run by SSH session set DISPLAY enviroment. - Enable ability to set configuration file by the enviroment variable called MM_CONFIG_FILE. +- Add test e2e helloworld ### Fixed - Update .gitignore to not ignore default modules folder. diff --git a/package.json b/package.json index 927cd2bc..92202936 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "grunt-stylelint": "latest", "grunt-yamllint": "latest", "mocha": "^3.2.0", + "spectron": "^3.4.1", "stylelint-config-standard": "latest", "time-grunt": "latest" }, diff --git a/tests/confs/helloworld.js b/tests/confs/helloworld.js new file mode 100644 index 00000000..6b617cf2 --- /dev/null +++ b/tests/confs/helloworld.js @@ -0,0 +1,32 @@ +/* Magic Mirror Test config sample module hello world + * + * 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: 24, + units: "metric", + electronOptions: { + webPreferences: { + nodeIntegration: true, + }, + }, + + modules: [ + { + module: "helloworld", + position: "bottom_bar", + config: { + text: "Test HelloWorld Module" + } + } + ] +}; + +/*************** DO NOT EDIT THE LINE BELOW ***************/ +if (typeof module !== "undefined") {module.exports = config;} diff --git a/tests/e2e/modules/helloworld.js b/tests/e2e/modules/helloworld.js new file mode 100644 index 00000000..960917c3 --- /dev/null +++ b/tests/e2e/modules/helloworld.js @@ -0,0 +1,42 @@ +const Application = require("spectron").Application; +const path = require('path'); +const chai = require('chai'); +const chaiAsPromised = require('chai-as-promised'); + +// Set config sample for use in test +process.env.MM_CONFIG_FILE = 'tests/confs/helloworld.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('Test helloworld module', function () { + this.timeout(10000); + + beforeEach(function (done) { + app.start().then(function() { done(); } ); + }); + + afterEach(function (done) { + app.stop().then(function() { done(); }); + }); + + it('Test message helloworld module', function () { + return app.client.waitUntilWindowLoaded() + .getText('.helloworld').should.eventually.equal('Test HelloWorld Module'); + }); +});