diff --git a/.gitignore b/.gitignore index e6143b4db7..8a7c8baf67 100644 --- a/.gitignore +++ b/.gitignore @@ -58,5 +58,8 @@ yarn.lock # Documents My Document.docx -# Temporary folder -tmp \ No newline at end of file +# Temporary folder +tmp + +# nyc +.nyc_output diff --git a/.nycrc b/.nycrc new file mode 100644 index 0000000000..47efcb3120 --- /dev/null +++ b/.nycrc @@ -0,0 +1,26 @@ +{ + "check-coverage": true, + "lines": 84.56, + "functions": 77.50, + "branches": 71.40, + "statements": 84.30, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "build/", + "src/**/*.spec.ts" + ], + "reporter": [ + "lcov", + "text", + "json" + ], + "extension": [ + ".ts" + ], + "cache": true, + "all": true, + "instrument": false, + "sourceMap": true +} diff --git a/.travis.yml b/.travis.yml index 4259b8fca1..61f6dcac36 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ node_js: install: - npm install - npm install -g codecov - - npm install -g nyc script: - npm run lint - npm test @@ -50,7 +49,7 @@ after_success: - npm run typedoc - echo "docx.js.org" > docs/.nojekyll - echo "docx.js.org" > docs/CNAME - - nyc report --reporter=json + - npm run cover - codecov deploy: provider: pages diff --git a/package.json b/package.json index 802c2bfb62..123988d425 100644 --- a/package.json +++ b/package.json @@ -6,19 +6,19 @@ "scripts": { "pretest": "rimraf ./build", "test": "mocha-webpack \"src/**/*.ts\"", - "test-watch": "mocha-webpack \"src/**/*.ts\" --watch", + "test.watch": "npm test -- --watch", "prepublishOnly": "npm run build", "lint": "tslint --project .", "build": "npm run webpack && npm run fix-types", "tsc": "rimraf ./build && tsc -p .", "webpack": "rimraf ./build && webpack", - "build.web": "webpack --config webpack.web.config.js", "demo": "npm run build && npm run ts-node ./demo", "typedoc": "typedoc src/index.ts", "style": "prettier -l \"src/**/*.ts\"", - "style.fix": "prettier \"src/**/*.ts\" --write", + "style.fix": "npm run style -- --write", "fix-types": "node types-absolute-fixer.js", - "ts-node": "ts-node" + "ts-node": "ts-node", + "cover": "nyc npm run test" }, "pre-commit": [ "style", @@ -67,9 +67,11 @@ "awesome-typescript-loader": "^3.4.1", "chai": "^3.5.0", "glob": "^7.1.2", + "istanbul-instrumenter-loader": "^3.0.1", "jszip": "^3.1.5", "mocha": "^5.2.0", "mocha-webpack": "^1.0.1", + "nyc": "^13.1.0", "pre-commit": "^1.2.2", "prettier": "^1.12.1", "prompt": "^1.0.0", diff --git a/webpack.config.js b/webpack.config.js index 01ecff1540..40ec0b0d23 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -20,6 +20,14 @@ module.exports = { test: /\.ts$/, loaders: ["awesome-typescript-loader"], }, + { + // For coverage testing + test: /\.(ts)/, + include: path.resolve("src"), + loader: "istanbul-instrumenter-loader", + enforce: "post", + exclude: [/node_modules/], + } ], },