Skip to content

Commit f8fd2fb

Browse files
committed
feat(test): added code coverage and ES6 coverage support
1 parent 3727b9c commit f8fd2fb

File tree

11 files changed

+677
-99
lines changed

11 files changed

+677
-99
lines changed

banner.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const pkg = require("./package.json");
2+
3+
const banner = `/*
4+
* ${pkg.name} - v${pkg.version}
5+
* ${pkg.description}
6+
* ${pkg.homepage}
7+
*
8+
* Made by ${pkg.author.name}
9+
* Under ${pkg.license} License
10+
*/
11+
`;
12+
13+
module.exports = banner;

package.json

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,29 +2,35 @@
22
"name": "javascript-plugin-boilerplate",
33
"version": "0.0.0-semantically-released",
44
"description": "A boilerplate to write plugins in pure JavaScript using ES2015",
5-
"main": "dist/lunar.js",
5+
"main": "dist/lunar.umd.js",
6+
"module": "dist/lunar.es.js",
67
"files": [
78
"dist",
89
"src"
910
],
1011
"scripts": {
1112
"commit": "git cz",
12-
"test": "rollup -c rollup.test.js && mocha test/bundle.test.js",
13-
"test:coverage": "rollup -c rollup.test.js && istanbul cover -x *.test.js _mocha -- -R spec test/bundle.test.js",
13+
"test": "mocha --require tests/config/setup 'tests/**/*.test.js'",
14+
"test:watch": "mocha --require tests/config/setup 'tests/**/*.test.js' --watch",
15+
"test:cover": "istanbul cover -x *.test.js _mocha -- -R spec --require tests/config/setup 'tests/**/*.test.js'",
16+
"test:report": "cat ./coverage/lcov.info | codecov && rm -rf ./coverage",
1417
"semantic-release": "semantic-release pre && npm publish && semantic-release post",
15-
"build": "npm run build:umd && npm run build:es",
18+
"build": "npm run build:umd && npm run build:es && npm run build:cjs",
1619
"build:umd": "rollup -c rollup.umd.js",
1720
"build:es": "rollup -c rollup.es.js",
18-
"build:watch": "concurrently 'npm run build:umd -- -w' 'npm run build:es -- -w'",
19-
"lint": "eslint src/**/*.js rollup*.js",
20-
"lint:fix": "eslint --fix src/**/*.js rollup*.js",
21-
"format": "prettier --write src/**/*.js rollup*.js",
21+
"build:cjs": "rollup -c rollup.cjs.js",
22+
"build:watch": "concurrently 'npm run build:umd -- -w' 'npm run build:es -- -w' 'npm run build:cjs -- -w'",
23+
"lint": "eslint src/**/*.js *.js tests/**/*.js",
24+
"lint:fix": "npm run lint -- -fix",
25+
"format": "prettier --write src/**/*.js *.js tests/**/*.js",
2226
"prepublish": "npm run build",
2327
"precommit": "lint-staged"
2428
},
2529
"license": "MIT",
2630
"devDependencies": {
31+
"babel-core": "^6.25.0",
2732
"chai": "^4.1.0",
33+
"codecov.io": "^0.1.6",
2834
"concurrently": "^3.5.0",
2935
"cz-conventional-changelog": "^2.0.0",
3036
"eslint": "^4.2.0",
@@ -35,9 +41,11 @@
3541
"eslint-plugin-promise": "^3.5.0",
3642
"eslint-plugin-standard": "^3.0.1",
3743
"husky": "^0.14.3",
38-
"istanbul": "^0.4.1",
44+
"istanbul": "^1.1.0-alpha.1",
45+
"jsdom": "^9.12.0",
3946
"lint-staged": "^4.0.1",
4047
"mocha": "^3.4.2",
48+
"pascal-case": "^2.0.1",
4149
"prettier-eslint-cli": "^4.1.1",
4250
"rollup": "^0.45.2",
4351
"rollup-plugin-buble": "^0.15.0",

rollup.cjs.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const pkg = require("./package.json");
2+
const fileSize = require("rollup-plugin-filesize");
3+
4+
const banner = `/*
5+
* ${pkg.name} - v${pkg.version}
6+
* ${pkg.description}
7+
* ${pkg.homepage}
8+
*
9+
* Made by ${pkg.author.name}
10+
* Under ${pkg.license} License
11+
*/
12+
`;
13+
14+
const config = {
15+
entry: "src/index.js",
16+
dest: "dist/lunar.cjs.js",
17+
format: "cjs",
18+
banner,
19+
plugins: [fileSize()]
20+
};
21+
22+
module.exports = config;

rollup.es.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
1-
const pkg = require('./package.json')
2-
const fileSize = require('rollup-plugin-filesize')
3-
4-
const banner = `/*
5-
* ${pkg.name} - v${pkg.version}
6-
* ${pkg.description}
7-
* ${pkg.homepage}
8-
*
9-
* Made by ${pkg.author.name}
10-
* Under ${pkg.license} License
11-
*/
12-
`
1+
const fileSize = require("rollup-plugin-filesize");
2+
const banner = require("./banner");
133

144
const config = {
15-
entry: 'src/lunar.js',
16-
dest: 'dist/lunar.es.js',
17-
format: 'es',
5+
entry: "src/index.js",
6+
dest: "dist/lunar.es.js",
7+
format: "es",
188
banner,
199
plugins: [fileSize()]
20-
}
10+
};
2111

22-
module.exports = config
12+
module.exports = config;

rollup.test.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

rollup.umd.js

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
1-
const pkg = require('./package.json')
2-
const buble = require('rollup-plugin-buble')
3-
const fileSize = require('rollup-plugin-filesize')
4-
5-
const banner = `/*
6-
* ${pkg.name} - v${pkg.version}
7-
* ${pkg.description}
8-
* ${pkg.homepage}
9-
*
10-
* Made by ${pkg.author.name}
11-
* Under ${pkg.license} License
12-
*/
13-
`
1+
const banner = require("./banner");
2+
const pkg = require("./package.json");
3+
const buble = require("rollup-plugin-buble");
4+
const fileSize = require("rollup-plugin-filesize");
5+
const pascalCase = require("pascal-case");
146

157
const config = {
16-
entry: 'src/lunar.js',
17-
dest: 'dist/lunar.umd.js',
18-
moduleName: pkg.name,
19-
format: 'umd',
8+
entry: "src/index.js",
9+
dest: "dist/lunar.umd.js",
10+
moduleName: pascalCase(pkg.name),
11+
format: "umd",
2012
banner,
2113
plugins: [buble(), fileSize()]
22-
}
14+
};
2315

24-
module.exports = config
16+
module.exports = config;
File renamed without changes.

test/bundle.test.js

Lines changed: 0 additions & 2 deletions
This file was deleted.

tests/config/setup.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
require("babel-core/register");
2+
const path = require("path");
3+
const jsdom = require("jsdom").jsdom;
4+
5+
const exposedProperties = ["window", "navigator", "document"];
6+
7+
global.document = jsdom("");
8+
global.window = document.defaultView;
9+
Object.keys(document.defaultView).forEach(property => {
10+
if (typeof global[property] === "undefined") {
11+
exposedProperties.push(property);
12+
global[property] = document.defaultView[property];
13+
}
14+
});
15+
16+
global.navigator = {
17+
userAgent: "node.js"
18+
};
19+
global.__base = `${path.resolve()}/`;
File renamed without changes.

0 commit comments

Comments
 (0)