From d04d53a1ecea2a59d1bf26b42c5f1a01c921b51a Mon Sep 17 00:00:00 2001 From: Luis Date: Sun, 23 Apr 2017 17:24:39 +0200 Subject: [PATCH] Working testing using PhantomJS, previous ones wasn't good enough --- package.json | 5 ++++- test/dom.js | 40 ---------------------------------------- test/utils/webslides.js | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 41 deletions(-) delete mode 100644 test/dom.js create mode 100644 test/utils/webslides.js diff --git a/package.json b/package.json index 7f417fc..db5f057 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "babel-cli": "^6.24.1", "babel-core": "^6.24.1", "babel-loader": "^6.4.1", + "babel-polyfill": "^6.23.0", "babel-preset-env": "^1.4.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", @@ -39,6 +40,7 @@ "eslint": "^3.19.0", "eslint-loader": "^1.7.1", "npm-run-all": "^4.0.2", + "phantom": "^4.0.2", "rimraf": "^2.6.1", "smart-banner-webpack-plugin": "^3.0.1", "webpack": "^2.4.1", @@ -50,7 +52,7 @@ "build:main": "webpack", "build:main.min": "webpack --output-filename [name].min.js -p", "dev": "webpack-dev-server", - "test": "ava test/*.js" + "test": "ava test/utils/*.js --verbose" }, "babel": { "presets": [ @@ -73,6 +75,7 @@ ] }, "require": [ + "babel-regenerator-runtime", "babel-register", "./test/helpers/setup-browser-env.js" ] diff --git a/test/dom.js b/test/dom.js deleted file mode 100644 index a19dad1..0000000 --- a/test/dom.js +++ /dev/null @@ -1,40 +0,0 @@ -import test from 'ava'; -import DOM from '../src/js/utils/dom'; - -test('DOM.createNode', t => { - const div = DOM.createNode('div', 'my-id'); - t.is(div.tagName, 'DIV'); - t.is(div.id, 'my-id'); - t.is(div.innerHTML, ''); -}); - -test('DOM.once', t => { - const div = DOM.createNode('div'); - DOM.once(div, 'click', () => div.classList.toggle('ok')); - div.click(); - t.is(div.className, 'ok'); - div.click(); - t.is(div.className, 'ok'); -}); - -test('DOM.hide', t => { - const div = DOM.createNode('div'); - DOM.hide(div); - t.is(div.style.display, 'none'); -}); - -test('DOM.show', t => { - const div = DOM.createNode('div'); - DOM.hide(div); - DOM.show(div); - t.is(div.style.display, ''); -}); - -test('DOM.fireEvent', t => { - const div = DOM.createNode('div'); - div.addEventListener('toggle-class', () => div.classList.toggle('ok')); - DOM.fireEvent(div, 'toggle-class'); - t.is(div.className, 'ok'); - DOM.fireEvent(div, 'toggle-class'); - t.is(div.className, ''); -}); diff --git a/test/utils/webslides.js b/test/utils/webslides.js new file mode 100644 index 0000000..973be4b --- /dev/null +++ b/test/utils/webslides.js @@ -0,0 +1,37 @@ +let phantom = require("phantom"); +import test from 'ava'; + +let ph_, page_, status_; + +const load = async () => { + await phantom.create().then(async ph => { + ph_ = ph; + return await ph_.createPage(); + }).then(page => { + page_ = page; + return page_.open('https://stackoverflow.com/'); + }).then(status => { + status_ = status; + return true; + }).catch(e => console.log(e)); +} + +test.serial("Page loaded", async t => { + await load(); + t.is(status_, 'success'); +}); + +test.serial('#webslides exits', async t => { + await page_ + .evaluate( () => document.querySelector('#webslides') ) + .then( ws => { t.not(ws, null); } ); +}); + +/** + * Last test + */ +test.serial('Closing', async t => { + await page_.close(); + ph_.exit(); + t.true(true); +});