Skip to content

Comprehensive E2E test rewrite for full architecture coverage #26

@jensens

Description

@jensens

Context

Issue #20 fixed the 4 failing E2E Chainsaw tests (xkey-invalidation, scaling, cluster-routing, ha-operator) by aligning fixtures, assertions, and timeouts with the current Phase 2 architecture.

Problem

The current E2E tests were written before the operator was fully implemented. While #20 fixes them to pass, they are mostly "can it reach Ready?" smoke tests. They don't exercise the actual features end-to-end:

  • xkey-invalidation: Doesn't verify that xkey purge requests actually invalidate cached objects
  • purge-broadcast: Doesn't verify that PURGE requests are broadcast to all pods via the invalidation proxy
  • cluster-routing: Doesn't verify that the shard director actually routes requests correctly
  • scaling: Doesn't verify that VCL is re-pushed with updated peer lists after scaling
  • ha-operator: Doesn't verify that VCL push continues working after leader failover

Proposed improvements

  1. Add functional E2E tests that send HTTP requests through the cache and verify behavior
  2. Test actual cache invalidation (PURGE, BAN, xkey) through the invalidation service
  3. Verify VCL content includes expected features (xkey import, director config)
  4. Test the invalidation proxy end-to-end (send purge → verify all pods purged)
  5. Add a readiness probe to the varnish container (currently only the agent has one)
  6. Consider adding a chainsaw-config.yaml for shared test configuration

Related

  • Closes gap identified during Fix E2E Chainsaw tests #20 review
  • Depends on the custom varnish image (ghcr.io/bluedynamics/cloud-vinyl-varnish:dev) including vmod_xkey

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions