feat: fully dockerized end to end tests - #34
Merged
Merged
Conversation
dotkas
force-pushed
the
dotkas/docker-e2e
branch
from
July 15, 2026 13:58
d239c7a to
9bfaa1b
Compare
dotkas
force-pushed
the
dotkas/docker-e2e
branch
from
July 15, 2026 13:59
9bfaa1b to
42db9dd
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a fully Dockerized end-to-end (E2E) integration harness that builds and runs the generated bookstore server in one container and drives it via the generated blocking reqwest client from another container, validating real HTTP interoperability.
Changes:
- Introduces a Docker Compose-based E2E test harness + CI workflow to run it on PRs.
- Adds a runnable
bookstore-serverbinary and shared in-memoryServiceimplementation of the generatedApitrait. - Generates and wires a new
restclient(blocking reqwest client) for the bookstore example, plus an E2E test suite that exercises all endpoints.
Reviewed changes
Copilot reviewed 13 out of 15 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| Makefile | Adds test-e2e target; extends generate-example to generate the client as well. |
| examples/bookstore/tests/smoke.rs | Switches smoke test to use the shared Service implementation. |
| examples/bookstore/tests/e2e.rs | Adds HTTP-level E2E tests driven by the generated blocking client. |
| examples/bookstore/src/service.rs | New in-memory Service implementing the generated Api trait for server + tests. |
| examples/bookstore/src/lib.rs | Exposes Service and conditionally includes generated restclient. |
| examples/bookstore/src/bin/server.rs | Adds runnable axum server binary for Docker E2E. |
| examples/bookstore/oapi-codegen-client.yaml | Adds config to generate the blocking client with import mappings. |
| examples/bookstore/generated/restclient.rs | New generated blocking reqwest client output committed for the example. |
| examples/bookstore/Cargo.toml | Adds client feature + optional deps (reqwest/percent-encoding) and server bin entry; adds tokio. |
| crates/oapi-codegen/tests/integration/server/Dockerfile | Builds and packages bookstore-server into a slim runtime image. |
| crates/oapi-codegen/tests/integration/client/Dockerfile | Builds and runs cargo test --features client --test e2e inside a Rust toolchain image. |
| crates/oapi-codegen/tests/integration/docker-compose.yml | Defines server+client services and wires BOOKSTORE_BASE_URL. |
| crates/oapi-codegen/tests/integration/README.md | Documents how to run the Docker E2E harness and how CI executes it. |
| .github/workflows/e2e.yml | Adds a PR workflow that runs make test-e2e (skips chore: PRs). |
| .dockerignore | Reduces Docker build context size for the E2E images. |
| Cargo.lock | Locks new dependencies brought in by the bookstore example changes. |
dotkas
enabled auto-merge (squash)
July 15, 2026 15:01
| } | ||
| }; | ||
|
|
||
| let client = Client::new(base_url).expect("build the blocking reqwest client"); |
Contributor
|
🎉 This PR is included in version 1.0.0-dev.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Contributor
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.