Skip to content

test(e2e): add stovepipe end-to-end suite driving the ingest→process pipeline#301

Draft
behinddwalls wants to merge 1 commit into
mainfrom
preetam/stovepipe-e2e
Draft

test(e2e): add stovepipe end-to-end suite driving the ingest→process pipeline#301
behinddwalls wants to merge 1 commit into
mainfrom
preetam/stovepipe-e2e

Conversation

@behinddwalls

Copy link
Copy Markdown
Collaborator

Summary

Intent:

  • Stovepipe had a full-stack integration suite but no e2e suite, and nothing proved the asynchronous process stage actually drained a message — the integration suite only asserts that Ingest publishes one.
  • Add an e2e suite whose distinguishing charter is proving the ingest→process pipeline runs end-to-end, mirroring the submitqueue test/e2e pattern.

Changes:

  • Add test/e2e/stovepipe with a testify suite (suite_test.go) that boots service/stovepipe/docker-compose.yml under the e2e-stovepipe context and a harness (harness_test.go) of intent-level helpers.
  • Tests cover Ping, Ingest happy-path (synchronous request/request_uri/queue_messages side effects plus asynchronous consumption), and Ingest idempotency/dedup.
  • awaitProcessed observes the durable acked-offset watermark in queue_offsets (which only advances on ack) rather than the message's delivery-state row, because the queue GCs acked messages from queue_messages once the watermark passes them.
  • Left the existing integration suite untouched (added alongside, per the submitqueue precedent of keeping both levels).

Test Plan

  • bazel test //test/e2e/stovepipe:stovepipe_test passes (Ping, Ingest happy-path, Ingest idempotency) against the Docker Compose stack. Non-vacuity confirmed: an offset-based signal that is absent makes awaitProcessed time out (observed while iterating), so the async assertion is real.

Generated by the 🪄 pr-create skill in devexp-agent-marketplace

Issues

…pipeline

Summary:
Intent:
- Stovepipe had a full-stack integration suite but no e2e suite, and nothing proved the asynchronous process stage actually drained a message — the integration suite only asserts that Ingest publishes one.
- Add an e2e suite whose distinguishing charter is proving the ingest→process pipeline runs end-to-end, mirroring the submitqueue test/e2e pattern.

Changes:
- Add test/e2e/stovepipe with a testify suite (suite_test.go) that boots service/stovepipe/docker-compose.yml under the e2e-stovepipe context and a harness (harness_test.go) of intent-level helpers.
- Tests cover Ping, Ingest happy-path (synchronous request/request_uri/queue_messages side effects plus asynchronous consumption), and Ingest idempotency/dedup.
- awaitProcessed observes the durable acked-offset watermark in queue_offsets (which only advances on ack) rather than the message's delivery-state row, because the queue GCs acked messages from queue_messages once the watermark passes them.
- Left the existing integration suite untouched (added alongside, per the submitqueue precedent of keeping both levels).

Test Plan:
- bazel test //test/e2e/stovepipe:stovepipe_test passes (Ping, Ingest happy-path, Ingest idempotency) against the Docker Compose stack. Non-vacuity confirmed: an offset-based signal that is absent makes awaitProcessed time out (observed while iterating), so the async assertion is real.

---

<sub>Generated by the 🪄 [pr-create](https://sg.uberinternal.com/code.uber.internal/uber-code/devexp-agent-marketplace/-/blob/claude-code/plugins/dev/uber-dev/skills/pr-create/SKILL.md) skill in devexp-agent-marketplace</sub>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant