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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions