Skip to content

E2E Test Expansion: Gallery, Upload, Settings, Transcription, Search & CI/CD #123

@davidamacey

Description

@davidamacey

Summary

Comprehensive plan to expand E2E testing coverage across all major features of OpenTranscribe. This builds on the existing authentication tests (login, registration, auth flow) to cover the full user experience.

Current State

Existing E2E Tests: backend/tests/e2e/

  • test_login.py - ~50 tests (form validation, success/failure, security, session, UI, accessibility)
  • test_registration.py - ~35 tests (form validation, password requirements, duplicate prevention)
  • test_auth_flow.py - Combined authentication flow tests
  • conftest.py - Shared fixtures (login_page, authenticated_page, auth_helper, api_helper)

Proposed Expansion Phases

Phase Priority Description
1 High Gallery page tests (load, filters, sorting, pagination, view modes)
2 High File upload tests (drag/drop, progress, URL upload, processing status)
3 Medium Settings/Profile tests (modal, password change, language, admin)
4 Medium Transcription viewing/editing tests (player, segments, speaker editing)
5 Medium Search functionality tests (input, results, filters, pagination)
6 Medium Test runner scripts (run-e2e-tests.sh, run-e2e-smoke.sh, etc.)
7 Low Mobile/responsive tests (multiple viewports)
8 High GitHub Actions CI workflow
9 Low Visual regression testing
10 Medium Combined API + E2E tests

Test Files & URLs for Upload Tests

The plan includes setup for test media files and URLs:

  • test_audio_short.mp3 - 5s audio for quick upload tests
  • test_video_short.mp4 - 5s video for upload tests
  • test_audio_speech.mp3 - 30s audio for transcription verification
  • YouTube, Archive.org, and direct MP3 URLs for URL upload testing

New Test Markers

markers =
    smoke: quick smoke tests
    gallery: gallery page tests
    upload: upload functionality tests
    settings: settings tests
    transcription: transcription tests
    search: search tests
    responsive: responsive/mobile tests
    visual: visual regression tests
    api_e2e: combined API and E2E tests

Full Implementation Plan

📋 Detailed plan document: https://gist.github.com/davidamacey/3269b5d9dc6667d7700d8b4c785ffcce

The gist contains:

  • Complete test class and method specifications
  • Test file setup scripts
  • Directory structure after implementation
  • CI/CD workflow example
  • Test credentials and troubleshooting tips

Implementation Order

Week Phases Focus
1 1, 8 Gallery tests + CI workflow
2 2 Upload tests with test media files
3 3, 4 Settings + Transcription tests
4 5, 6 Search tests + Runner scripts
Future 7, 9, 10 Responsive, Visual, API+E2E

Running Tests

# Smoke tests only (fast)
pytest backend/tests/e2e/ -m smoke -v

# Upload tests
pytest backend/tests/e2e/ -m upload -v

# All except slow
pytest backend/tests/e2e/ -m "not slow" -v

# With visible browser (XRDP)
DISPLAY=:13 pytest backend/tests/e2e/ -v --headed

Labels

  • testing
  • enhancement
  • documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions