Skip to content

Test cases for frontend

Swarna rathna madhuri Kanda requested to merge test-cases-for-frontend into develop

Here is your Merge Request (MR) description tailored for adding test cases for SearchUtils, Update Prescription Page, and Queue Management:


Overview

This MR adds unit test cases for SearchUtils, Update Prescription Page, and Queue Management modules. It improves overall test coverage, ensures reliability of core functionalities, and helps prevent regressions during future development.


What does this MR do and why?

This MR focuses on strengthening the testing layer of the application by introducing structured and comprehensive unit tests.

  • Motivation: These modules lacked sufficient test coverage, making it difficult to validate functionality and increasing the risk of bugs.

  • Approach:

    • Used Jest and React Testing Library for writing tests
    • Covered utility functions, UI interactions, API calls, and edge cases
    • Mocked API responses to simulate real-world scenarios
  • Trade-offs:

    • Additional time spent on writing and maintaining tests
    • Slight increase in test execution time

Changes Made

  • Added unit tests for SearchUtils functions
  • Added unit tests for Update Prescription Page (form handling, API calls)
  • Added unit tests for Queue Management component (rendering, empty states)
  • Created separate test files for each module

Technical Details

  • Root Cause: Lack of test coverage for critical modules.

  • Fix/Enhancement:

    • Implemented test cases covering:

      • Input handling
      • API success and failure scenarios
      • UI rendering and state updates
    • Used mocks for API calls and external dependencies


Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to change)
  • 📝 Documentation update
  • 🎨 UI/UX improvement
  • ️ Refactor (no functional changes)
  • Performance improvement
  • 🧪 Test update
  • 🔧 Configuration change
  • 🚨 Security fix

Related Issues / References

  • Related to: Test coverage improvement issue
  • Closes #238 (closed)

Screenshots or Screen Recordings

Not applicable (no UI changes)


How to Set Up and Validate Locally

  1. Pull this branch:

    git checkout <branch-name>
  2. Install dependencies:

    bun install
  3. Run development server:

    bun dev
  4. Run tests:

    bun run test
  5. Check coverage:

    bun run test:coverage
  6. Expected behavior:

    • All test cases should pass
    • Coverage should increase for targeted modules

Testing Done

  • Manual testing completed
  • Unit tests added/updated

Test Cases Covered:

Scenario Expected Result Status
Search returns filtered results Correct filtered data shown
Search with empty input All data returned
Prescription update success API called & success handled
Prescription update failure Error message displayed
Queue renders data Data displayed correctly
Queue empty state Empty message shown

Code Quality Checklist

Code Standards

  • Code follows project conventions
  • No console.log() or debugger statements
  • No unused code
  • Reusable components used where possible
  • No hardcoded strings (i18n considered)
  • Proper TypeScript types defined
  • ESLint and Prettier checks pass

React Best Practices

  • Components follow single responsibility
  • Hooks used correctly
  • Proper state management
  • Avoided unnecessary re-renders
  • Event handlers handled properly

Component Patterns

  • UI components used correctly
  • Tailwind classes used appropriately
  • Responsive design maintained
  • Accessibility considered
  • Consistent icon usage

API & Data Fetching

  • API calls mocked in tests
  • Loading and error states handled
  • Proper typing used
  • Axios handling verified

Error Handling

  • Errors handled gracefully
  • User-friendly messages shown
  • Network failures handled

Documentation

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

Known Limitations / Technical Debt

  • Some edge cases may require additional integration tests
  • Future improvements can include end-to-end testing

Additional Notes

  • This MR focuses only on test coverage improvement
  • No functional changes were introduced
  • Helps in safer future development and refactoring

MR Acceptance Checklist

Evaluate this MR against the MR acceptance checklist.


closed #238 (closed)

Edited by mondyagu abhilash

Merge request reports

Loading