summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Van Doorn <vandoorn.nick@gmail.com>2019-04-05 15:49:04 -0700
committerNick Van Doorn <vandoorn.nick@gmail.com>2019-04-05 15:49:04 -0700
commit0c6602b85adaf5414f154bd6125033a5904b2084 (patch)
treeee6a6a06007c192002a02f2f37d69f969029cf14
parent1df905591f9a622c32a30bfd0db75b701a62a0cd (diff)
Setup project for testing
Thanks @gatsbyjs for the guide: https://www.gatsbyjs.org/docs/unit-testing/
-rw-r--r--jest-preprocess.js5
-rw-r--r--jest.config.js16
-rw-r--r--loadershim.js3
-rw-r--r--package.json9
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",