Skip to content

test(bdd): add stream CRUD coverage for Rust and Java - #3875

Open
Jamison929611 wants to merge 2 commits into
apache:masterfrom
Jamison929611:test-bdd-stream-crud-rust-java
Open

test(bdd): add stream CRUD coverage for Rust and Java#3875
Jamison929611 wants to merge 2 commits into
apache:masterfrom
Jamison929611:test-bdd-stream-crud-rust-java

Conversation

@Jamison929611

Copy link
Copy Markdown

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 -- --check
  • cargo clippy -p bdd --features bdd --all-targets -- -D warnings
  • cargo test -p bdd --features bdd --no-run
  • gradle -p bdd/java --no-daemon spotlessCheck testClasses
  • Java Cucumber dry run for all five @stream-crud scenarios
  • bash -n scripts/run-bdd-tests.sh

Full server-backed Rust and Java BDD runs are delegated to Linux CI because the Iggy server does not build on Windows.

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.
@Jamison929611
Jamison929611 marked this pull request as ready for review August 13, 2026 03:50
@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Aug 13, 2026
@Jamison929611

Copy link
Copy Markdown
Author

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.

@chengxilo chengxilo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to be honest I don't like to reuse step like this. Maybe it's better to define a shared helper or something? (optional)

Comment thread scripts/run-bdd-tests.sh
Comment on lines +117 to +125
*)
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
;;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review PR is waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants