Files
ai-training/_docs/02_tasks/done/AZ-142_test_async_sse.md
T
Oleksandr Bezdieniezhnykh cbf370c765 Refactor task management structure and update documentation
- Changed the directory structure for task specifications to include a dedicated `todo/` folder within `_docs/02_tasks/` for tasks ready for implementation.
- Updated references in various skills and documentation to reflect the new task lifecycle, including changes in the `implementer` and `decompose` skills.
- Enhanced the README and flow documentation to clarify the new task organization and its implications for the implementation process.

These updates improve task management clarity and streamline the implementation workflow.
2026-03-28 01:17:45 +02:00

3.1 KiB

Async Detection & SSE Streaming Tests

Task: AZ-142_test_async_sse Name: Async Detection & SSE Streaming Tests Description: Implement E2E tests verifying async media detection initiation, SSE event streaming, and duplicate media_id rejection Complexity: 3 points Dependencies: AZ-138_test_infrastructure Component: Integration Tests Jira: AZ-142 Epic: AZ-137

Problem

Async media detection via POST /detect/{media_id} must return immediately with "started" status while processing continues in background. SSE streaming must deliver real-time detection events to connected clients. Duplicate media_id submissions must be rejected with 409.

Outcome

  • Async detection returns immediately without waiting for processing
  • SSE connection receives detection events during processing
  • Final SSE event signals completion with mediaStatus "AIProcessed"
  • Duplicate media_id correctly rejected with 409 Conflict

Scope

Included

  • FT-P-08: Async media detection returns "started" immediately
  • FT-P-09: SSE streaming delivers detection events during async processing
  • FT-N-04: Duplicate media_id returns 409

Excluded

  • Video frame sampling details (covered in video tests)
  • SSE queue overflow behavior (covered in resource limit tests)
  • Annotations service interaction (covered in resilience tests)

Acceptance Criteria

AC-1: Immediate async response Given an initialized engine When POST /detect/{media_id} is called with config and auth headers Then response arrives within 1s with {"status": "started"}

AC-2: SSE event delivery Given an SSE client connected to GET /detect/stream When async detection is triggered via POST /detect/{media_id} Then SSE events are received with detection data and mediaStatus "AIProcessing" And a final event with mediaStatus "AIProcessed" and percent 100 arrives

AC-3: Duplicate media_id rejection Given an async detection is already in progress for a media_id When POST /detect/{media_id} is called again with the same ID Then response is 409 Conflict

Non-Functional Requirements

Performance

  • Async initiation response within 1s
  • SSE events delivered within 120s total processing time

Integration Tests

AC Ref Initial Data/Conditions What to Test Expected Behavior NFR References
AC-1 Engine warm, test-video, JWT token POST /detect/{media_id} Response < 1s, status "started" Max 2s
AC-2 Engine warm, SSE connected, test-video Listen SSE during async detection Events received, final AIProcessed Max 120s
AC-3 Active detection in progress Second POST with same media_id 409 Conflict Max 5s

Constraints

  • SSE client must connect before triggering async detection
  • JWT token required for async detection endpoint
  • Test video must be accessible via configured paths

Risks & Mitigation

Risk 1: SSE connection timing

  • Risk: SSE connection may not be established before detection starts
  • Mitigation: Add small delay between SSE connect and detection trigger; verify connection established