From f1ea3263e4d714407316027d8a2204b5715be553 Mon Sep 17 00:00:00 2001 From: Nathan Tomsic Date: Mon, 25 Sep 2017 17:53:41 -0500 Subject: [PATCH] Added needed Jest config to babel and eslint --- .babelrc | 1 + .eslintrc.js | 2 ++ jest.config.js | 9 ++++++ jest.transform.js | 26 ++++++++++++++++ package-lock.json | 78 +++++++++++++++++++++++++++++++++++++++-------- package.json | 4 +++ 6 files changed, 108 insertions(+), 12 deletions(-) create mode 100644 jest.config.js create mode 100644 jest.transform.js diff --git a/.babelrc b/.babelrc index 9d024e0..eb7a868 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,6 @@ { "presets": [ + "react", ["env", { "targets": { "node": true diff --git a/.eslintrc.js b/.eslintrc.js index ba319a2..bcb9184 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,12 +15,14 @@ module.exports = { env: { node: true, browser: true, + 'jest/globals': true, }, plugins: [ 'babel', 'import', 'jsx-a11y', 'compat', + 'jest', ], rules: { 'arrow-parens': ['error', 'as-needed'], diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..6e00d35 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,9 @@ +module.exports = { + coverageReporters: ['text'], + collectCoverageFrom: [ + 'src/**/*.js(x)', + ], + transform: { + '^.+\\.js(x)$': '/jest.transform.js', + }, +}; diff --git a/jest.transform.js b/jest.transform.js new file mode 100644 index 0000000..bbc739a --- /dev/null +++ b/jest.transform.js @@ -0,0 +1,26 @@ +/* eslint-disable import/no-extraneous-dependencies */ +const babel = require('babel-jest'); + +module.exports = babel.createTransformer({ + presets: [ + 'react', + ['env', { + targets: { + node: true, + }, + }], + ], + plugins: [ + ['module-resolver', { + root: ['.'], + alias: { + src: './src', + }, + }], + 'transform-object-rest-spread', + 'syntax-dynamic-import', + 'transform-regenerator', + 'transform-class-properties', + 'transform-decorators-legacy', + ], +}); diff --git a/package-lock.json b/package-lock.json index fa5df8b..75ca203 100644 --- a/package-lock.json +++ b/package-lock.json @@ -923,13 +923,13 @@ } }, "babel-jest": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.0.0.tgz", - "integrity": "sha512-MfZq0KK4tB7V3bCSHrzBa/F8lkhAjnG40asnaBHXdeOiFSOH7eTcVlU4pNz2jsdqclqhc0kO2mkGajKlZRqBKQ==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", "dev": true, "requires": { "babel-plugin-istanbul": "4.1.4", - "babel-preset-jest": "21.0.0" + "babel-preset-jest": "21.2.0" } }, "babel-loader": { @@ -972,11 +972,38 @@ } }, "babel-plugin-jest-hoist": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.0.0.tgz", - "integrity": "sha512-Vn5qE/9mebjmdLNZkLTNCWsYS2U4dBAHOENQt5JPSVBP/kw26vy/M9H+byo4wHGF6n99dn9k4RO04DEhnjRI3Q==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", "dev": true }, + "babel-plugin-module-resolver": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-2.7.1.tgz", + "integrity": "sha1-GL48Qt31n3pFbJ4FEs2ROU9uS+E=", + "dev": true, + "requires": { + "find-babel-config": "1.1.0", + "glob": "7.1.2", + "resolve": "1.4.0" + }, + "dependencies": { + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + } + } + }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", @@ -1462,12 +1489,13 @@ } }, "babel-preset-jest": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.0.0.tgz", - "integrity": "sha512-AFTR98CHu62hdQgNyHyvbapM2Ke0ETqZKgIBd26cLCu2HNs6BIeF4HbqosfICHJAF2lFHkTz6d3xHrolsQ9Lcw==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "21.0.0" + "babel-plugin-jest-hoist": "21.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" } }, "babel-preset-react": { @@ -4775,6 +4803,12 @@ } } }, + "eslint-plugin-jest": { + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-21.1.0.tgz", + "integrity": "sha512-1KagzyFEqotQHCCvEo77c1xioPvxuFp3197wUi2n3GXLNVIDTufGVqmlkGHBurC4vkPKglHZt10x4yk+DfZaXg==", + "dev": true + }, "eslint-plugin-jsx-a11y": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-5.1.1.tgz", @@ -5479,6 +5513,16 @@ } } }, + "find-babel-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.1.0.tgz", + "integrity": "sha1-rMAQQ6Z0n+w0Qpvmtk9ULrtdY1U=", + "dev": true, + "requires": { + "json5": "0.5.1", + "path-exists": "3.0.0" + } + }, "find-cache-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", @@ -9802,7 +9846,7 @@ "dev": true, "requires": { "babel-core": "6.26.0", - "babel-jest": "21.0.0", + "babel-jest": "21.2.0", "babel-plugin-istanbul": "4.1.4", "chalk": "2.1.0", "convert-source-map": "1.5.0", @@ -14367,6 +14411,16 @@ "shallowequal": "1.0.2" } }, + "react-test-renderer": { + "version": "16.0.0-rc.3", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-rc.3.tgz", + "integrity": "sha1-G5yPpnQ0iWAuJ+Wtrn2MdGiwGkU=", + "dev": true, + "requires": { + "fbjs": "0.8.14", + "object-assign": "4.1.1" + } + }, "read-all-stream": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz", diff --git a/package.json b/package.json index f2be294..6297cbd 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,9 @@ "devDependencies": { "babel-core": "^6.26.0", "babel-eslint": "^7.2.3", + "babel-jest": "^21.2.0", "babel-loader": "^7.1.2", + "babel-plugin-module-resolver": "^2.7.1", "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-class-properties": "^6.24.1", "babel-plugin-transform-decorators-legacy": "^1.3.4", @@ -45,6 +47,7 @@ "eslint-plugin-babel": "^4.1.2", "eslint-plugin-compat": "^1.0.4", "eslint-plugin-import": "^2.7.0", + "eslint-plugin-jest": "^21.1.0", "eslint-plugin-jsx-a11y": "^5.1.1", "eslint-plugin-react": "^7.3.0", "extract-text-webpack-plugin": "^3.0.0", @@ -63,6 +66,7 @@ "postcss-loader": "^2.0.6", "postcss-nested": "^2.1.2", "progress-bar-webpack-plugin": "^1.10.0", + "react-test-renderer": "^16.0.0-rc.3", "resolve-url-loader": "^2.1.0", "rimraf": "^2.6.1", "sass-loader": "^6.0.6",