Skip to content

Integration Testing & Hardening #15

@ggondim

Description

@ggondim

Summary

End-to-end test suite covering the full message lifecycle, plus resilience and hardening measures.

Tasks

E2E Test Scenarios

  • Slack message → route → webhook to recipient → reply with text → Slack outbound
  • Telegram message → route → webhook → reply with A2H AUTHORIZE → inline keyboard → approve → response returned
  • WhatsApp message → route → webhook → reply with A2H COLLECT (multi-field) → external form → submit → response returned
  • Mixed message array (text + AUTHORIZE) → sequential rendering
  • New thread creation (no threadId in URL)
  • Ephemeral token expiry → 401
  • Channel API key direct send (proactive, no replyTo)

Resilience

  • Webhook delivery retry with exponential backoff
  • Duplicate message deduplication (idempotent inbound processing)
  • Channel adapter reconnection (WebSocket-based: Slack, Discord, WhatsApp)
  • Graceful degradation when storage is unavailable

Adapter Conformance

  • Shared adapter conformance test suite (abstract tests that run against any adapter)
  • Mock channel servers for each platform (simulate webhook callbacks)

Acceptance Criteria

  • All E2E scenarios pass
  • Webhook retries work with configurable backoff
  • Duplicate messages are detected and deduplicated
  • Adapter reconnection recovers within configurable timeout
  • Conformance suite passes for all implemented adapters

Dependencies

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions