This project demonstrates a comprehensive approach to testing Angular applications while improving code quality and maintaining consistent commit standards.
The Angular Testing Course repository showcases best practices for:
- Unit testing services and components.
- 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
- Console
- HTML report
- 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 installng 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:
jestjest-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.



