test(bdd): add stream CRUD coverage for Rust and Java - #3875
test(bdd): add stream CRUD coverage for Rust and Java#3875Jamison929611 wants to merge 2 commits into
Conversation
Add shared client-visible scenarios for creating, retrieving, listing, updating, and deleting streams. Wire the Rust and Java implementations into focused and coverage BDD runs.
|
The pre-merge and PR title workflows are currently waiting for first-time contributor approval. Could a maintainer approve the workflow runs when convenient? The focused Rust and Java compile, formatting, lint, and Cucumber dry-run checks pass locally. |
There was a problem hiding this comment.
some small issue.
One thing worth noting is that we don't have the logic to clean up the stream/topic/user.... we created in the process (not introduced by this PR)
P.S. Please make sure to use the PR template for your description. it's a huge help!
|
|
||
| #[then(regex = r#"^getting the stream by its numeric ID should return name "(.+)"$"#)] | ||
| pub async fn then_get_stream_returns_name(world: &mut GlobalContext, expected_name: String) { | ||
| when_get_stream_by_numeric_id(world).await; |
There was a problem hiding this comment.
to be honest I don't like to reuse step like this. Maybe it's better to define a shared helper or something? (optional)
| *) | ||
| if [ "$SDK" = "all" ]; then | ||
| log "⚠️ skipping ${svc%-bdd} (does not support ${FEATURE})" | ||
| return 0 | ||
| else | ||
| log "❌ ${SDK} does not support feature '${FEATURE}'" | ||
| return 1 | ||
| fi | ||
| ;; |
There was a problem hiding this comment.
duplicate with R103-R109, it would help if we define it as a function. Actually I did the same thing in #3608, but that PR need some discussion before proceeding, maybe it's better to do it here.
Why
The BDD roadmap tracks client-visible stream CRUD coverage, but there was no shared feature exercising the lifecycle across SDKs.
What
This adds five independent scenarios for creating a stream, retrieving it by numeric ID, finding it in the stream list, renaming it, and deleting it. Rust and Java step definitions use their existing blocking or asynchronous client abstractions, and focused runner paths cover normal and coverage executions.
Part of #3609
Verification
cargo fmt --all -- --checkcargo clippy -p bdd --features bdd --all-targets -- -D warningscargo test -p bdd --features bdd --no-rungradle -p bdd/java --no-daemon spotlessCheck testClasses@stream-crudscenariosbash -n scripts/run-bdd-tests.shFull server-backed Rust and Java BDD runs are delegated to Linux CI because the Iggy server does not build on Windows.