Skip to content

Integration Testing & Hardening #15

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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