diff options
author | Nick Van Doorn <vandoorn.nick@gmail.com> | 2019-04-05 15:49:04 -0700 |
---|---|---|
committer | Nick Van Doorn <vandoorn.nick@gmail.com> | 2019-04-05 15:49:04 -0700 |
commit | 0c6602b85adaf5414f154bd6125033a5904b2084 (patch) | |
tree | ee6a6a06007c192002a02f2f37d69f969029cf14 | |
parent | 1df905591f9a622c32a30bfd0db75b701a62a0cd (diff) |
Setup project for testing
Thanks @gatsbyjs for the guide:
https://www.gatsbyjs.org/docs/unit-testing/
-rw-r--r-- | jest-preprocess.js | 5 | ||||
-rw-r--r-- | jest.config.js | 16 | ||||
-rw-r--r-- | loadershim.js | 3 | ||||
-rw-r--r-- | package.json | 9 |
4 files changed, 31 insertions, 2 deletions
diff --git a/jest-preprocess.js b/jest-preprocess.js new file mode 100644 index 0000000..95114e5 --- /dev/null +++ b/jest-preprocess.js @@ -0,0 +1,5 @@ +const babelOptions = { + presets: ['babel-preset-gatsby'] +} + +module.exports = require('babel-jest').createTransformer(babelOptions) diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 0000000..d32f2f6 --- /dev/null +++ b/jest.config.js @@ -0,0 +1,16 @@ +module.exports = { + transform: { + '^.+\\.jsx?$': `<rootDir>/jest-preprocess.js` + }, + moduleNameMapper: { + '.+\\.(css|styl|less|sass|scss)$': `identity-obj-proxy`, + '.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': `<rootDir>/__mocks__/file-mock.js` + }, + testPathIgnorePatterns: [`node_modules`, `.cache`], + transformIgnorePatterns: [`node_modules/(?!(gatsby)/)`], + globals: { + __PATH_PREFIX__: `` + }, + testURL: `http://localhost`, + setupFiles: [`<rootDir>/loadershim.js`] +} diff --git a/loadershim.js b/loadershim.js new file mode 100644 index 0000000..772dcc4 --- /dev/null +++ b/loadershim.js @@ -0,0 +1,3 @@ +global.___loader = { + enqueue: jest.fn() +} diff --git a/package.json b/package.json index b3cbba8..e98148d 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,9 @@ "@fortawesome/fontawesome-svg-core": "^1.2.15", "@fortawesome/free-brands-svg-icons": "^5.7.2", "@fortawesome/free-solid-svg-icons": "^5.7.2", + "babel-jest": "^24.5.0", + "babel-preset-gatsby": "^0.1.10", + "browser-monads": "^1.0.0", "emotion": "^10.0.9", "emotion-theming": "^10.0.10", "gatsby": "^2.1.30", @@ -22,11 +25,13 @@ "gatsby-source-filesystem": "^2.0.24", "gatsby-transformer-sharp": "^2.1.16", "html-pdf": "^2.2.0", + "identity-obj-proxy": "^3.0.0", "jest": "^24.5.0", "prop-types": "^15.7.2", "react": "^16.8.4", "react-dom": "^16.8.4", - "react-helmet": "^5.2.0" + "react-helmet": "^5.2.0", + "react-test-renderer": "^16.8.5" }, "devDependencies": { "prettier": "^1.16.4" @@ -38,7 +43,7 @@ "format": "prettier --write src/**/*.{js,jsx}", "start": "npm run develop", "serve": "gatsby serve", - "test": "exit 0" + "test": "jest" }, "repository": { "type": "git", |