I have a test file like so: (I am using create-react-app)
import React from 'react'; import ReactDOM from 'react-dom'; import App from './components/Calculator'; import { getAction, getResult } from './actions/' import {shallow} from 'enzyme'; import toJson from 'enzyme-to-json'; import Enzyme from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; Enzyme.configure({ adapter: new Adapter() }); it('renders without crashing', () => { const wrapper = shallow(<App />) expect(toJson(wrapper)).toMatchSnapshot(); }); it('displays the choosen operator', () => { const action = { type: 'GET_ACTION', operator: '+' }; expect(getAction("+")).toEqual(action) }) it('displays the typed digit', () => { const action = { type: 'GET_RESULT', n: 3 }; expect(getResult(3)).toEqual(action); }) it('checks that the clickevent for getNumber is called',() => { const clickEvent = jest.fn(); const p = shallow(<p data-n="1" onClick={clickEvent}>1</p>) p.simulate('click') expect(clickEvent).toBeCalled(); })
and a packaje.json:
{ "name": "my-app", "version": "0.1.0", "private": true, "dependencies": { "react": "^16.2.0", "react-dom": "^16.2.0", "react-scripts": "1.1.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", // "test": "react-scripts test --env=jsdom", "test": "jest", "eject": "react-scripts eject" }, "devDependencies": { "enzyme": "^3.3.0", "enzyme-adapter-react-16": "^1.1.1", "enzyme-to-json": "^3.3.3", "jest": "^22.4.3" } }
when I run "jest --updateSnapshot" I get:
command not found: jest
but jest is installed.
Running from command line You can run Jest directly from the CLI (if it's globally available in your PATH , e.g. by yarn global add jest or npm install jest --global ) with a variety of useful options.
To access jest directly on the command line, install it via npm i -g jest-cli or yarn global add jest-cli . Then simply run your specific test with jest bar. spec.
Jest
is installed, but is likely in your ./node_modules/.bin
directory. You can append that to your command ./node_modules/.bin/jest --updateSnapshot
. Since you already have jest
as a scripts
command in your package.json
you can also run it with npm test -- --updateSnapshot
. npm automatically adds ./node_modules/.bin
to your path.
update: Newer versions of yarn will resolve node module bin scripts, so you can also just run yarn jest {cmd}
and it should work.
I ran into similar issue. I fixed it by installing jest globally.
npm install -g jest
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With