mirror of
https://github.com/webslides/WebSlides.git
synced 2025-08-26 06:24:28 +02:00
Working testing using PhantomJS, previous ones wasn't good enough
This commit is contained in:
@@ -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"
|
||||
]
|
||||
|
40
test/dom.js
40
test/dom.js
@@ -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, '');
|
||||
});
|
37
test/utils/webslides.js
Normal file
37
test/utils/webslides.js
Normal file
@@ -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);
|
||||
});
|
Reference in New Issue
Block a user