Integration tests validate the handoffs between agents and the end-to-end data flow within the sandbox environment. IDs continue from Phase 1.
ID
Scenario
Input
Expected output
Pass criteria
T13
Handoff T1: Transcription Agent to Summary Agent via orchestration layer
Zoom session close event in sandbox; pre-loaded 30-min sample recording
Transcript payload received by Summary Agent within 90 seconds of Zoom event. Meeting ID present in both agent logs confirming the same session.
Summary Agent invoked automatically. Meeting ID consistent across both logs. Transcript character count matches Transcription Agent output. Latency under 90 seconds.
T14
Handoff T2: Summary Agent to Notion and ClickUp creation
Valid summary object including 3 action items with owners and due dates
Notion page created in sandbox database. Three ClickUp tasks created in sandbox workspace, each with assignee and due date populated.
Notion API returns page ID. ClickUp API returns task IDs for all 3 tasks. Assignee and due date fields non-null on all ClickUp tasks. Both API calls complete within 30 seconds of each other.
T15
Handoff T3: Notion and ClickUp confirmation triggers Distribution Agent
Notion page ID and ClickUp task IDs passed to orchestration layer
Distribution Agent invoked after both upstream confirmations are received. Gmail and Slack calls execute in sequence.
Distribution Agent log shows trigger event containing both Notion page ID and at least one ClickUp task ID. Gmail and Slack calls both complete with HTTP 200.
T16
Human review gate: ops manager approves draft before distribution
Summary draft held at review checkpoint; approval event fired after 4 minutes
Distribution Agent remains paused until approval signal received. Once approved, Gmail and Slack calls execute normally.
Distribution Agent does not execute before approval signal. Time between approval signal and Gmail send is under 60 seconds. No duplicate sends.
T17
Full sandbox end-to-end: Zoom event through to Slack post
Zoom session close event; 45-min sample recording; 4 sandbox attendees; sandbox Calendar event
Transcript created, summary created, Notion page created, 4 ClickUp tasks created, Gmail sent to 4 addresses, Slack message posted. All within 5 minutes of trigger.
All six downstream outputs confirmed (transcript, summary object, Notion page ID, 4 ClickUp task IDs, Gmail 200, Slack 200). Total elapsed time under 5 minutes from trigger to Slack post.
T18
ClickUp API unavailable during task creation
Valid summary object; ClickUp sandbox endpoint returns HTTP 503
Orchestration layer catches the 503, retries twice with 30-second backoff, logs a persistent failure, and continues to Notion creation and Distribution Agent without blocking.
Two retry attempts logged with timestamps. ClickUp failure event recorded. Notion page still created. Gmail and Slack still sent. Failure flagged in run summary for manual follow-up.
T19
Slack channel misconfigured: channel ID not found
Distribution Agent with an invalid Slack channel ID
Slack API returns channel_not_found error. Agent logs the error with the invalid channel ID, skips the Slack step, and marks the run as partially complete. Gmail send is not affected.
Slack error logged with invalid channel ID string. Gmail send completes successfully. Run status set to 'partial'. No unhandled exception thrown.
Edge case tests cover abnormal inputs and boundary conditions that fall outside the standard flow. These use the E-series ID prefix.
ID
Scenario
Input
Expected output
Pass criteria
E01
Duplicate Zoom session close event fired twice for the same meeting ID
Two identical Zoom webhook payloads with the same meeting ID arriving within 10 seconds
Idempotency check in the orchestration layer detects the duplicate. Second event is discarded. Only one transcript, one Notion page, one email, and one Slack post are produced.
Exactly one Notion page for the meeting ID. Exactly one Gmail send. Exactly one Slack post. Duplicate event logged as discarded. No duplicate ClickUp tasks.
E02
Zoom recording payload missing the recording URL field
Zoom webhook payload with meeting ID present but no download_url field
Transcription Agent raises a missing-field validation error, logs the meeting ID, and halts. No downstream agents invoked.
Validation error present in log with meeting ID and field name 'download_url'. No transcript created. No Notion or ClickUp writes. Alert event created.
E03
Transcript delivered to Summary Agent contains only filler words and no discernible content
Transcript string containing only 'uh', 'um', 'yeah', 'okay' repeated 40 times
Summary Agent produces an output flagged as low-content with a confidence score below threshold. Action items array is empty. Notion page is created with a content-warning note in the summary field.
Confidence score below 0.3 in metadata. Action items array length is 0. Notion page created with content-warning string in summary body. No ClickUp tasks created.
E04
Gmail API rate limit hit during a batch of meeting distributions
Five Distribution Agent calls within 60 seconds, exceeding Gmail API sending quota for the test account
Orchestration layer queues excess sends and retries with exponential backoff. All five emails eventually sent within 10 minutes. No sends dropped.
All five Gmail sends confirmed with HTTP 200 across the retry window. No send permanently failed. Retry events logged for each queued item.
E05
Human review gate times out: ops manager does not respond within 30 minutes
Summary draft held at review checkpoint; no approval or rejection event fired within 30 minutes
Orchestration layer fires a timeout event, sends a reminder notification to the ops manager via Slack DM, and holds the draft for a further 15 minutes before escalating to a second reviewer.
Timeout event logged at T+30 minutes. Slack DM sent to ops manager account. Draft not distributed before approval. Escalation event logged at T+45 minutes if still no response.
E06
Notion API token expired mid-run
Summary object ready for page creation; Notion API returns HTTP 401 Unauthorized
Orchestration layer catches the 401, logs a credential failure event with the resource name 'Notion', halts the Notion and ClickUp steps, and sends an alert to the FullSpec monitoring channel.
HTTP 401 logged with resource label 'Notion'. No partial Notion page created. ClickUp step also halted to preserve data consistency. Alert message posted to monitoring channel within 60 seconds.