This project demonstrates a comprehensive approach to testing Angular applications while improving code quality and maintaining consistent commit standards.
The Angular Testing Jest repository showcases for:
- Unit testing for:
- Basic testings
- HTTP service
- Inputs/Outputs
- Basic routing
- Integrating Jest as the primary testing framework.
- Ensuring code quality through linting and formatting tools.
- Enforcing commit message standards using Git hooks.
Run npm run test:coverage
- Replaces the default Angular testing setup with Jest, a faster and more flexible JavaScript testing framework.
- Supports features like snapshot testing, powerful mocking, and easy integration with TypeScript.
- Utilizes ESLint for linting.
- Integrates Prettier to ensure consistent code formatting.
- Adds custom ESLint plugins:
eslint-plugin-simple-import-sort
: Automatically sorts imports.eslint-plugin-unused-imports
: Identifies and removes unused imports.
- Enforces commit message conventions using Commitlint.
- Configured with the Conventional Commits standard via
@commitlint/config-conventional
. - Git hooks are managed with Husky, ensuring linting, formatting, and commit validation before each push.
npm install
ng serve
- Run Unit Tests:
npm test
- Run Tests in Watch Mode:
npm run test:watch
- Run Tests in CI Mode:
npm run test:ci
- Lint Code:
npm run lint
- Format Code:
npm run format
- Enable Husky:
npm run enabled-husky
- Prepare Commit Hooks:
npm run prepare
- Fast and efficient testing framework with an Angular preset for seamless integration.
- Packages Installed:
jest
jest-preset-angular
@types/jest
- Packages Installed:
- Supports unit tests with Angular's testing modules and Karma for legacy compatibility.
- Packages Installed:
@angular-devkit/build-angular
@angular/cli
- Packages Installed:
- ESLint:
- Core linter for detecting issues in TypeScript and JavaScript files.
- Custom plugins:
eslint-config-prettier
: Prevents Prettier and ESLint from conflicting.eslint-plugin-prettier
: Integrates Prettier rules into ESLint.eslint-plugin-simple-import-sort
: Automatically organizes imports.eslint-plugin-unused-imports
: Removes unused imports.
- Prettier:
- Enforces a consistent code style across the project.
- Husky:
- Configures Git hooks to run linting, formatting, and commit validation tasks.
- Commitlint:
- Enforces Conventional Commits to maintain clean and readable commit history.
- Configuration:
@commitlint/cli
@commitlint/config-conventional
- Lint-staged:
- Runs linting and formatting checks only on staged files before commits.
- Angular Testing Guide
- Jest Documentation
- ESLint Documentation
- Prettier Documentation
- Commitlint Documentation
- Husky Documentation
This project is licensed under the MIT License. See the LICENSE file for details.