mirror of
https://github.com/webslides/WebSlides.git
synced 2025-08-27 06:54:31 +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-cli": "^6.24.1",
|
||||||
"babel-core": "^6.24.1",
|
"babel-core": "^6.24.1",
|
||||||
"babel-loader": "^6.4.1",
|
"babel-loader": "^6.4.1",
|
||||||
|
"babel-polyfill": "^6.23.0",
|
||||||
"babel-preset-env": "^1.4.0",
|
"babel-preset-env": "^1.4.0",
|
||||||
"babel-preset-es2015": "^6.24.1",
|
"babel-preset-es2015": "^6.24.1",
|
||||||
"babel-preset-react": "^6.24.1",
|
"babel-preset-react": "^6.24.1",
|
||||||
@@ -39,6 +40,7 @@
|
|||||||
"eslint": "^3.19.0",
|
"eslint": "^3.19.0",
|
||||||
"eslint-loader": "^1.7.1",
|
"eslint-loader": "^1.7.1",
|
||||||
"npm-run-all": "^4.0.2",
|
"npm-run-all": "^4.0.2",
|
||||||
|
"phantom": "^4.0.2",
|
||||||
"rimraf": "^2.6.1",
|
"rimraf": "^2.6.1",
|
||||||
"smart-banner-webpack-plugin": "^3.0.1",
|
"smart-banner-webpack-plugin": "^3.0.1",
|
||||||
"webpack": "^2.4.1",
|
"webpack": "^2.4.1",
|
||||||
@@ -50,7 +52,7 @@
|
|||||||
"build:main": "webpack",
|
"build:main": "webpack",
|
||||||
"build:main.min": "webpack --output-filename [name].min.js -p",
|
"build:main.min": "webpack --output-filename [name].min.js -p",
|
||||||
"dev": "webpack-dev-server",
|
"dev": "webpack-dev-server",
|
||||||
"test": "ava test/*.js"
|
"test": "ava test/utils/*.js --verbose"
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"presets": [
|
"presets": [
|
||||||
@@ -73,6 +75,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"require": [
|
"require": [
|
||||||
|
"babel-regenerator-runtime",
|
||||||
"babel-register",
|
"babel-register",
|
||||||
"./test/helpers/setup-browser-env.js"
|
"./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