Skip to content

JMAP UI and Integration Testing #12612

@ChristophWurst

Description

@ChristophWurst

Summary

Add protocol selection to account setup UI and implement integration tests against Stalwart JMAP server.

Problem

Without UI for protocol selection, users cannot create JMAP accounts. Without integration tests,
JMAP support cannot be reliably maintained.

Solution

  • Add protocol selector (IMAP / JMAP) to account creation form
  • Display protocol in account info
  • Route validation based on selected protocol
  • Set up Stalwart JMAP server in CI
  • Implement comprehensive integration tests

Implementation

Frontend changes:

  • Add protocol selector in account creation (Vue component)
  • Default to IMAP for backwards compatibility
  • Store protocol selection with account
  • Display protocol in account list and settings

CI changes:

  • Add Stalwart docker service to CI pipeline (similar to Dovecot)
  • Configure test accounts and mailboxes
  • Implement integration test suite

Integration tests cover:

  • Account creation for both IMAP and JMAP
  • Mailbox sync
  • Message fetching
  • Flag operations
  • Move/copy/delete operations
  • Error cases

Documentation:

  • Update README with JMAP support notes
  • Document limitations and out-of-scope features
  • Create follow-up tracking issue for future enhancements

Affected Components

  • Frontend: account creation and settings components
  • CI: workflow configuration
  • Documentation: README and related docs
  • New: integration test suite under tests/Integration/

Acceptance Criteria

  • Protocol selector visible in account creation
  • IMAP and JMAP accounts can be created
  • Protocol is stored and displayed
  • Integration tests pass for both protocols
  • CI runs tests reliably
  • Documentation updated
  • Follow-up tracking issue created

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions