Skip to content

test: increase coverage for LoginPage.tsx and api.ts

Rushika Sritha Maddula requested to merge testpages-login-api into develop

The main motivation behind this change is to strengthen the testing around critical authentication functionality.

  • Login flow is a core feature and requires strong test coverage
  • API utility functions lacked proper validation testing
  • Improves confidence during future refactoring

The approach taken:

  • Added unit tests using Vitest + React Testing Library
  • Mocked API responses to simulate real scenarios
  • Covered success, failure, and edge cases

Trade-offs:

  • Slight increase in test execution time
  • Additional maintenance required for mocks

Changes Made

  • Added tests for LoginPage.tsx
  • Added tests for api.ts
  • Mocked API calls using vi.mock
  • Covered error handling and edge cases
  • No UI changes
  • No API contract changes

Technical Details

  • Used React Testing Library for UI testing

  • Used Vitest for test runner and mocking

  • Mocked:

    • API responses (success & failure)
    • Navigation behavior
  • Tested:

    • Form input handling
    • Submit actions
    • Error states
    • API integration logic

Type of Change

  • 🐛 Bug fix
  • New feature
  • 💥 Breaking change
  • 📝 Documentation update
  • 🎨 UI/UX improvement
  • ️ Refactor
  • Performance improvement
  • 🧪 Test update
  • 🔧 Configuration change
  • 🚨 Security fix

Related Issues / References

  • Improves test coverage for authentication module
  • Related to test stability improvements

Screenshots or Screen Recordings

Not applicable (no UI changes)


How to Set Up and Validate Locally

  1. Checkout the branch:

    git checkout testpages-login-api
  2. Install dependencies:

    bun install
  3. Run tests:

    bun test
  4. Expected behavior:

    • All tests should pass
    • LoginPage interactions should be fully covered
    • API tests should validate success & failure cases

Testing Done

  • Manual testing completed
  • Unit tests added

Test Cases Covered:

Scenario Expected Result Status
Valid login Successful API call & navigation
Invalid login Error message shown
Empty form submit Validation errors triggered
API failure Error handled properly

Code Quality Checklist

Code Standards

  • Code follows project conventions
  • No console.log() or debugger statements
  • No unused variables
  • No duplicate code
  • i18n check passed
  • Proper TypeScript types used
  • ESLint & Prettier passed

React Best Practices

  • Proper component testing
  • Hooks usage validated
  • No unnecessary re-renders

API & Data Fetching

  • API calls mocked correctly
  • Error handling tested
  • Edge cases covered

Error Handling

  • Errors handled gracefully
  • User-friendly messages tested

Documentation

  • README.md updated
  • .env.example updated
  • CHANGELOG.md updated

Known Limitations / Technical Debt

  • Mock-based testing may not fully reflect backend behavior
  • Integration/E2E tests can be added in future

Additional Notes

  • Focused only on improving test coverage
  • No functional or UI changes introduced
  • Safe to merge without impacting existing features

Merge request reports

Loading