Merge pull request #2094 from thelounge/astorije/tests-in-browser
Enable in-browser run of client testing
This commit is contained in:
commit
bc1a6319a0
21
package.json
21
package.json
@ -12,16 +12,17 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://thelounge.chat/",
|
"homepage": "https://thelounge.chat/",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"coverage": "rm -rf .nyc_output/ && npm-run-all test:* && nyc --nycrc-path=test/.nycrc-report report",
|
|
||||||
"start": "node index start",
|
|
||||||
"start-dev": "npm-run-all --parallel watch start",
|
|
||||||
"build": "webpack",
|
"build": "webpack",
|
||||||
"watch": "webpack --watch",
|
"coverage": "rm -rf .nyc_output/ && run-s test:{client,server} && nyc --nycrc-path=test/.nycrc-report report",
|
||||||
"test": "npm-run-all --aggregate-output --parallel --continue-on-error test:* lint:*",
|
"dev": "run-p watch start",
|
||||||
"test:mocha": "nyc --nycrc-path=test/.nycrc-mocha mocha --colors",
|
"lint:css": "stylelint --color \"client/**/*.css\"",
|
||||||
"test:mocha-webpack": "nyc --nycrc-path=test/.nycrc-mocha-webpack mocha-webpack --colors --opts=test/mocha-webpack.opts",
|
|
||||||
"lint:js": "eslint . --report-unused-disable-directives --color",
|
"lint:js": "eslint . --report-unused-disable-directives --color",
|
||||||
"lint:css": "stylelint --color \"client/**/*.css\""
|
"start": "node index start",
|
||||||
|
"test": "run-p --aggregate-output --continue-on-error lint:* test:{client,server}",
|
||||||
|
"test:browser": "webpack-dev-server --config=webpack.config-browser.js",
|
||||||
|
"test:client": "nyc --nycrc-path=test/.nycrc-mocha-webpack mocha-webpack --colors --opts=test/mocha-webpack.opts",
|
||||||
|
"test:server": "nyc --nycrc-path=test/.nycrc-mocha mocha --colors",
|
||||||
|
"watch": "webpack --watch"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"lounge",
|
"lounge",
|
||||||
@ -80,6 +81,7 @@
|
|||||||
"jquery": "3.3.1",
|
"jquery": "3.3.1",
|
||||||
"jquery-ui": "1.12.1",
|
"jquery-ui": "1.12.1",
|
||||||
"mocha": "5.0.1",
|
"mocha": "5.0.1",
|
||||||
|
"mocha-loader": "1.1.3",
|
||||||
"mocha-webpack": "1.0.1",
|
"mocha-webpack": "1.0.1",
|
||||||
"mousetrap": "1.6.1",
|
"mousetrap": "1.6.1",
|
||||||
"npm-run-all": "4.1.2",
|
"npm-run-all": "4.1.2",
|
||||||
@ -88,6 +90,7 @@
|
|||||||
"stylelint": "9.1.1",
|
"stylelint": "9.1.1",
|
||||||
"stylelint-config-standard": "18.1.0",
|
"stylelint-config-standard": "18.1.0",
|
||||||
"textcomplete": "0.16.0",
|
"textcomplete": "0.16.0",
|
||||||
"webpack": "3.11.0"
|
"webpack": "3.11.0",
|
||||||
|
"webpack-dev-server": "2.11.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
11
test/client/index.html
Normal file
11
test/client/index.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Tests</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script src="/js/bundle.vendor.js"></script>
|
||||||
|
<script src="/js/bundle.test.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
7
test/client/index.js
Normal file
7
test/client/index.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
// Recursively load all JS files (test files) in the `js` folder
|
||||||
|
const context = require.context("./js", true, /.+\.js$/);
|
||||||
|
context.keys().forEach(context);
|
||||||
|
|
||||||
|
module.exports = context;
|
22
webpack.config-browser.js
Normal file
22
webpack.config-browser.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const path = require("path");
|
||||||
|
const config = require("./webpack.config.js");
|
||||||
|
|
||||||
|
config.entry = {
|
||||||
|
"js/bundle.test.js": `mocha-loader!${path.join(__dirname, "test/client/index.js")}`,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Instrumentation for testing with mocha
|
||||||
|
config.module.rules.push({
|
||||||
|
test: /\.js$/,
|
||||||
|
include: path.join(__dirname, "test/client"),
|
||||||
|
use: "mocha-loader",
|
||||||
|
});
|
||||||
|
|
||||||
|
// Tell the webserver where to load the HTML reporter file from
|
||||||
|
config.devServer = {
|
||||||
|
contentBase: path.join(__dirname, "test/client"),
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = config;
|
Loading…
Reference in New Issue
Block a user