I’m trying to create the following unit test using Jest.
jest.dontMock("pointsAwardingActions.js"); describe("points awarding actions", () => { describe("award points", () => { it("should dispatch begin ajax action", () => { var pointsAwardingActions = require("pointsAwardingActions.js"); const mockedDispatch = jest.fn(); }); }); });
But I’m getting the following error after running npm test
.
TypeError: jest.fn is not a function
This is some section of my package.json
:
{ "scripts": { "test": "jest" }, "author": "alayor", "license": "ISC", "jest": { "scriptPreprocessor": "<rootDir>/node_modules/babel-jest", "testFileExtensions": ["spec.js"], "moduleFileExtensions": ["js"], "collectCoverage": "true" }, "dependencies": { "babel-cli": "6.8.0", "babel-core": "6.8.0", "babel-jest": "^6.0.1", "babel-loader": "6.2.4", "babel-plugin-react-display-name": "2.0.0", "babel-polyfill": "6.8.0", "babel-preset-es2015": "6.6.0", "babel-preset-react": "6.5.0", "babel-preset-react-hmre": "1.1.1", "expect": "1.19.0", "express": "4.13.4", "jest": "^0.1.40", "jest-cli": "^0.8.1", ... } }
What could be the reason I’m getting that error?
Advertisement
Answer
The jest
object is automatically in scope within every test file, so there’s no need to import it explicitly. If you do want to import the jest
object directly, you want to import the jest-mock module, not the jest-cli module, via:
// Not necessary inside a Jest test file import jest from 'jest-mock'; const mock = jest.fn();