S06 Step 21: end-to-end integration tests
Plan Step 21 of the S06 storage layer. Final MR — confirms the two tracks meet correctly. Adds coverage for already-built capability — type::maintenance / test-gap.
Scope
End-to-end integration tests that compose the real pgBlobStore with a real driver and exercise the full upload→commit→download path. Two test files plus their CI job wiring; the jobs follow the cadence/trigger policy in the spec's Testing Strategy — SeaweedFS-backed S3 e2e on every MR pipeline, real S3 / real GCS e2e on the default branch (auth-mode matrix per backend) plus on MR when the changes: set covers the relevant code paths. No CloudFront/CloudCDN/URLCache wiring in this step — those are exercised by their own middleware tests.
Acceptance
The full sequence — NewSession → multi-chunk Write → Close → Commit (matching digest) → BlobInfo (returns size) → OpenBlob (stream and redirect variants) — succeeds end-to-end on both backends in CI, under every configuration in the Testing Strategy.
Tests
The two e2e test files, gated by build tags (e2e_s3, e2e_gcs) so the default go test ./... does not require external credentials. AR-specific offset-divergence tests follow the strict terminate-on-divergence model and the A/B/D/G failure scenario catalog in the spec; they are not included here and ship in a follow-on plan.
Dependencies
- Blocked by: Step 9 (real Session lifecycle), Step 16 (adjust S3 driver), Step 17 (adjust GCS driver).
Spec: S06 · Plan: storage-layer (Step 21) · Epic: &22331