Skip to content

test(e2e): Implement multi-repository event-driven testing #108

Description

@dangazineu

Create comprehensive E2E tests for multi-repository event-driven workflows, validating the complete orchestration system.

Description

This issue creates end-to-end tests that validate the complete event-driven multi-repository workflow orchestration system across multiple repositories.

Test Scenarios

  • Fan-out/fan-in with event-driven architecture
  • Subscription filter evaluation and schema compatibility
  • Diamond dependency resolution
  • Partial failure recovery and smart resume
  • Long-running workflows with container persistence

Key Test: Event-Driven Fan-Out/Fan-In

# Parent (go-lib) emits library_built event
# Children (app-one, app-two) subscribe and emit service_updated events  
# Aggregator (release-bom) subscribes to both service_updated events
# Validates complete event flow and dependency coordination

Test Structure

  1. Repository Setup: Create test fixture repositories with realistic configurations
  2. Event Flow Validation: Verify events are emitted, filtered, and delivered correctly
  3. Subscription Processing: Test CEL filter evaluation and schema compatibility
  4. Execution Tree: Validate complete multi-repository execution trees
  5. Failure Scenarios: Test partial failures and smart resume functionality

Acceptance Criteria

  • Event-driven fan-out/fan-in scenario executes correctly
  • Subscription filters evaluated properly with real repositories
  • Schema compatibility validation works across repository boundaries
  • Diamond dependencies resolved without conflicts
  • Smart partial resume works for complex execution trees

Files to Modify

  • internal/e2e/event_driven_test.go (new)
  • internal/e2e/subscription_test.go (new)
  • Test repository fixtures with realistic configurations

Related Issues

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

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions