This directory contains cross-SDK Behavior-Driven Development (BDD) tests for Apache Iggy, designed to ensure consistency across different language SDKs.
bdd/ ├── scenarios/ # Shared Gherkin feature files │ └── basic_messaging.feature ├── rust/ # Rust SDK BDD implementation │ ├── Dockerfile # Rust BDD test container │ ├── tests/ │ └── Cargo.toml ├── python/ # Python SDK BDD implementation │ ├── Dockerfile # Python BDD test container │ ├── tests/ │ └── requirements.txt ├── node/ # Node SDK BDD implementation │ └── Dockerfile # Node BDD test container ├── csharp/ # csharp SDK BDD implementation │ └── Dockerfile # csharp BDD test container ├── docker-compose.yml # Orchestrates server + SDK containers ├── Dockerfile # Debug build of Iggy server └── README.md
# Run all SDK tests ../scripts/run-bdd-tests.sh all # Run specific SDK tests ../scripts/run-bdd-tests.sh rust ../scripts/run-bdd-tests.sh python ../scripts/run-bdd-tests.sh go ../scripts/run-bdd-tests.sh node ../scripts/run-bdd-tests.sh csharp # Clean up Docker resources ../scripts/run-bdd-tests.sh clean
.feature files for consistencyTo add a new SDK (e.g., Node.js):
node/ directorynode/Dockerfile with appropriate runtime and dependenciesnode/tests/ directory with BDD implementationnode-bdd service to docker-compose.yml../scripts/run-bdd-tests.sh scriptGitHub Actions workflow: ci-test-bdd.yml
The Rust implementation is located in core/bdd/ and linked via Docker volumes.
The Python implementation is in bdd/python/tests/ and needs to be updated as the Python SDK API evolves.
The node.js BDD test are run by cucumber-js, bdd test code is located at foreign/node/src/bdd
The csharp implementation is located at foreign/csharp/Iggy_SDK.Tests.BDD
Add new .feature files to the bdd/scenarios/ directory and implement the corresponding step definitions in each SDK's test directory.