DEV Community

Gaëtan Redin
Gaëtan Redin

Posted on • Originally published at Medium on

Jest And Angular, Install

A powerful combination, you should install and try it

Hey you know we all desire to work with the best libraries. For months, I only use Jest in my Angular projects. It’s faster, less unexpected behaviors and it offers the snapshot feature which is really a must-have.

Try it yourself, you will see that you will leave Karma/Jasmine for it.

Angular 12.2 / Jest 27.2.0

Step 1: Just install the essential

npm install jest jest-preset-angular --save-dev
Enter fullscreen mode Exit fullscreen mode

Step 2: Create a small setup file

cd src
touch setupJest.ts
Enter fullscreen mode Exit fullscreen mode

Step 3: Add only this as config

// setupJest.ts

import 'jest-preset-angular/setup-jest';
Enter fullscreen mode Exit fullscreen mode

Step 4: Add entry to the package.json

// package.json
{
  ...
  "jest": {     
    "preset": "jest-preset-angular", 
    "setupTestFrameworkScriptFile": "<rootDir>/setupJest.ts"
  }
  ...
}
Enter fullscreen mode Exit fullscreen mode

Step 5: Replace the test(s) script(s)

// package.json
"test": "jest",
"test:watch": "jest --watch",
"test:ci": "jest --runInBand"
Enter fullscreen mode Exit fullscreen mode

Step 6: Uninstall Karma/Jasmine

npm uninstall karma karma-chrome-launcher karma-coverage-istanbul-reporter karma-jasmine karma-jasmine-html-reporter
Enter fullscreen mode Exit fullscreen mode

Step 7: Test it

npm run test

> XXX@0.0.0 test <my-project-path>
> jest

PASS src/app/app.component.spec.ts
  AppComponent
    √ setup (2 ms)

Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 2.069 s
Ran all test suites.
Enter fullscreen mode Exit fullscreen mode

That’s all, I hope this tutorial will help someone.

Thanks for reading. Feel free to comment.

Learn More

Angular for everyone: All about it

Discussion (0)