Skip to content

test: improve coverage and add comprehensive test cases across core modules

srilatha bandari requested to merge feat/load into develop

Summary

This MR significantly improves the project’s test coverage by introducing comprehensive test cases across AI workers, services, UI components, and core application flows. It ensures better validation of both functional and edge-case scenarios, strengthening overall application reliability.


Changes Made

AI Layer

  • Added detailed unit tests for:

    • asrWorker.test.ts
    • punctuationWorker.test.ts
  • Covered:

    • Model loading behavior
    • Message passing between worker and main thread
    • Error handling during inference
    • Fallback and failure scenarios

Component Layer

  • Improved UI test coverage for:

    • CorpusInput.test.tsx
    • Dictation.test.tsx
  • Covered:

    • User interactions (input, button clicks, toggles)
    • State updates and rendering behavior
    • Conditional UI states (loading, empty, error)
    • Integration with services and props

Service Layer

  • Enhanced tests for:

    • api.test.ts
    • punctuationService.test.ts
  • Covered:

    • API request/response handling
    • Backend vs local mode switching
    • Error responses and retry/failure handling
    • Data transformation and formatting

Application Layer

  • Expanded coverage for:

    • App.test.tsx
    • Initialize.test.tsx
  • Covered:

    • App initialization flow
    • Model loading state handling
    • Backend API toggle behavior
    • Local cache usage and persistence logic

Test Improvements

  • Added edge case scenarios (empty input, invalid responses, failures)

  • Improved mocking strategy for:

    • Web Workers
    • API calls
    • Browser APIs (localStorage, etc.)
  • Reduced flaky tests by stabilizing async behavior

  • Improved readability and structure of test cases


Screenshots

image


Why This Change

  • Strengthens confidence in critical AI and transcription workflows
  • Prevents regressions in backend/local mode switching logic
  • Ensures stability of user-facing features
  • Improves maintainability and scalability of the test suite
  • Aligns with CI/CD quality standards

Impact

  • Significant increase in overall test coverage
  • More reliable and comprehensive testing across layers
  • No changes to production logic (test-only updates)
  • Better developer confidence during future feature additions

How to Test

  1. Run tests:

    npm run test
  2. Run coverage:

    npm run test:coverage
  3. Validate:

    • All tests pass successfully
    • Coverage metrics show improvement
    • No flaky or failing async tests

Additional Notes

  • Covers AI workers, services, UI components, and app lifecycle
  • Ensures backend API and local processing flows are both validated
  • Improves long-term code quality and maintainability

closes #18 (closed)

Edited by srilatha bandari

Merge request reports

Loading