UNPKG

oneie

Version:

Build apps, websites, and AI agents in English. Zero-interaction setup for AI agents (Claude Code, Cursor, Windsurf). Download to your computer, run in the cloud, deploy to the edge. Open source and free forever.

268 lines (200 loc) 7.23 kB
--- title: Tests dimension: things category: cascade tags: agent, events related_dimensions: events, people scope: global created: 2025-11-03 updated: 2025-11-03 version: 1.0.0 ai_context: | This document is part of the things dimension in the cascade category. Location: one/things/cascade/docs/examples/1-3-event-coordination/tests.md Purpose: Documents tests for feature 1-3: event coordination system Related dimensions: events, people For AI agents: Read this to understand tests. --- # Tests for Feature 1-3: Event Coordination System **Feature:** 1-3-event-coordination **Status:** Tests Defined → Design Phase **Quality Agent:** agent-quality.md --- ## User Flows ### Flow 1: Create and Log Event **User goal:** Agent creates event that gets logged **Time budget:** < 50ms **Steps:** 1. Agent completes work 2. Agent calls `log(event)` with type and metadata 3. Event assigned unique ID 4. Event written to file 5. Event queryable immediately **Acceptance Criteria:** - [ ] Event creation: < 10ms - [ ] Event written to disk: < 50ms - [ ] Unique ID assigned - [ ] File in correct location (`events/workflow/`) - [ ] Markdown format (human-readable) - [ ] Event immediately queryable --- ### Flow 2: Query Events **User goal:** Agent finds relevant events quickly **Time budget:** < 100ms per query **Steps:** 1. Agent needs to check status 2. Agent queries events by type or target 3. System returns matching events 4. Agent processes results 5. Agent takes action based on events **Acceptance Criteria:** - [ ] Query by type: < 50ms - [ ] Query by target: < 50ms - [ ] Query with multiple filters: < 100ms - [ ] Results sorted by timestamp - [ ] Limit and offset work correctly - [ ] Empty results return quickly --- ### Flow 3: Subscribe to Events **User goal:** Agent automatically acts when event occurs **Time budget:** < 500ms from event creation to handler execution **Steps:** 1. Agent subscribes to event type 2. Another agent creates event of that type 3. Subscribing agent's handler triggered 4. Handler executes with event data 5. Handler completes action **Acceptance Criteria:** - [ ] Subscription registered successfully - [ ] Handler triggered on matching events - [ ] Event data passed to handler - [ ] Handler execution: < 500ms from event - [ ] Multiple subscribers all triggered - [ ] Handlers run in parallel --- ### Flow 4: Agent Coordination (No Manual Handoff) **User goal:** Agents coordinate through events only **Time budget:** < 10 seconds for complete coordination cycle **Steps:** 1. Director assigns feature (logs `feature_assigned`) 2. Specialist receives event (subscribed to `feature_assigned`) 3. Specialist completes work (logs `implementation_complete`) 4. Quality receives event (subscribed to `implementation_complete`) 5. Quality validates (logs `quality_check_complete`) 6. Director receives event (subscribed to `quality_check_complete`) 7. Director marks complete **Acceptance Criteria:** - [ ] All coordination via events (0 manual handoffs) - [ ] No missed events (100% delivery) - [ ] Agents autonomous within roles - [ ] Complete cycle: < 10 seconds - [ ] Parallel execution supported - [ ] Full audit trail in events table --- ### Flow 5: Event-Driven Problem Solving **User goal:** Test failure triggers automatic problem solving **Time budget:** < 2 minutes from failure to solution proposal **Steps:** 1. Quality runs test, test fails 2. Quality logs `test_failed` event 3. Problem solver receives event (subscribed) 4. Problem solver analyzes (ultrathink) 5. Problem solver logs `solution_proposed` event 6. Specialist receives event (subscribed) 7. Specialist fixes problem **Acceptance Criteria:** - [ ] Test failure logged immediately - [ ] Problem solver triggered automatically - [ ] Analysis completes: < 2 minutes - [ ] Solution proposal logged - [ ] Specialist receives and acts - [ ] Complete loop: < 5 minutes --- ## Technical Tests ### Unit Tests **Event Creation:** - [ ] `log(event)` validates event structure - [ ] `log(event)` assigns unique ID - [ ] `log(event)` adds timestamp if missing - [ ] `log(event)` writes to correct file - [ ] `log(event)` returns event ID - [ ] `logBatch(events)` handles multiple events **Event Queries:** - [ ] `queryEvents({ type })` filters by type - [ ] `queryEvents({ actorId })` filters by actor - [ ] `queryEvents({ targetId })` filters by target - [ ] `queryEvents({ since })` filters by timestamp - [ ] `queryEvents()` supports multiple filters - [ ] `queryEvents()` returns sorted results **Event Subscriptions:** - [ ] `subscribe({ role, type, handler })` registers subscription - [ ] `subscribe()` validates handler is function - [ ] `unsubscribe()` removes subscription - [ ] `triggerSubscriptions(event)` calls all matching handlers **Event Metadata:** - [ ] `feature_assigned` includes required metadata - [ ] `implementation_complete` includes required metadata - [ ] `test_failed` includes error details - [ ] `solution_proposed` includes solution details --- ### Integration Tests **Agent Coordination:** - [ ] Director → Specialist (feature_assigned) - [ ] Specialist → Quality (implementation_complete) - [ ] Quality → Director (quality_check_complete) - [ ] Quality → Problem Solver (test_failed) - [ ] Problem Solver → Specialist (solution_proposed) - [ ] Specialist → Quality (fix_complete) **Parallel Coordination:** - [ ] Director assigns 3 features (parallel) - [ ] 3 specialists work independently - [ ] All complete and log events - [ ] Quality receives all 3 completion events - [ ] No race conditions **Event Queries Performance:** - [ ] Query 1000 events: < 100ms - [ ] Query with complex filter: < 200ms - [ ] Get latest event: < 20ms - [ ] Get events by target: < 50ms **Subscription Performance:** - [ ] 10 subscriptions: all trigger < 500ms - [ ] Parallel handlers execute correctly - [ ] Handler errors don't break other handlers --- ### E2E Tests **Complete Workflow via Events:** - [ ] Idea validated (event logged) - [ ] Plan created (event logged) - [ ] Features assigned (events logged) - [ ] Specs written (events logged) - [ ] Tests defined (events logged) - [ ] Design created (events logged) - [ ] Implementation complete (events logged) - [ ] Quality validated (events logged) - [ ] Documentation complete (events logged) - [ ] Feature complete (event logged) - [ ] Full audit trail available **Error Recovery via Events:** - [ ] Test fails (event logged) - [ ] Problem solver analyzes (event logged) - [ ] Solution proposed (event logged) - [ ] Fix implemented (event logged) - [ ] Lesson learned (event logged) - [ ] Re-test passes (event logged) **20+ Event Types:** - [ ] All workflow event types work - [ ] All metadata fields included - [ ] All events queryable - [ ] All events enable coordination --- ## Definition of Done - [ ] Event logger creates events - [ ] Event query system works - [ ] Event subscriptions trigger handlers - [ ] 20+ workflow event types defined - [ ] Agents coordinate via events (0% manual) - [ ] Complete audit trail available - [ ] Performance targets met - [ ] All tests pass --- **Next:** Design phase - Event system architecture and file structure