Adds comprehensive BDD test scenarios for configuration hot reloading functionality: - 10 scenarios covering hot reloading of logging level, feature flags, telemetry settings, JWT TTL - Scenarios for handling invalid configurations, file deletion/recreation, rapid changes - Audit logging scenarios for configuration changes - All scenarios follow black box testing principles using actual HTTP endpoints The scenarios are marked as pending since the hot reloading feature is not yet implemented. They will serve as executable specifications for the future implementation. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
BDD Steps Organization
This folder contains the step definitions for the BDD tests, organized by domain for better maintainability and scalability.
Structure
pkg/bdd/steps/
├── greet_steps.go # Greet-related steps (v1 and v2 API)
├── health_steps.go # Health check and server status steps
├── auth_steps.go # Authentication and user management steps
├── common_steps.go # Shared steps used across multiple domains
├── steps.go # Main registration file that ties everything together
└── README.md # This file
Design Principles
- Domain Separation: Steps are grouped by functional domain
- Single Responsibility: Each file focuses on a specific area of functionality
- Reusability: Common steps are shared via
common_steps.go - Scalability: Easy to add new domains as the application grows
Adding New Steps
- For new domains: Create a new
*_steps.gofile following the existing pattern - For existing domains: Add to the appropriate domain file
- For shared functionality: Add to
common_steps.go - Register all steps: Update
steps.goto include the new steps
Step Naming Convention
- Use descriptive, action-oriented names
- Follow the pattern:
i[Action][Object]orthe[Object][State] - Example:
iRequestAGreetingFor,theAuthenticationShouldBeSuccessful
Testing the Steps
Run BDD tests with:
go test ./features/... -v
Future Domains
As the application grows, consider adding:
payment_steps.go- Payment processing stepsnotification_steps.go- Notification and email stepsadmin_steps.go- Admin-specific functionality stepsapi_steps.go- General API interaction patterns