Files
dance-lessons-coach/pkg/bdd/steps
Gabriel Radureau 58c1dda4cf 🧪 test: add BDD scenarios for config hot reloading
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>
2026-04-09 19:16:21 +02:00
..

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

  1. Domain Separation: Steps are grouped by functional domain
  2. Single Responsibility: Each file focuses on a specific area of functionality
  3. Reusability: Common steps are shared via common_steps.go
  4. Scalability: Easy to add new domains as the application grows

Adding New Steps

  1. For new domains: Create a new *_steps.go file following the existing pattern
  2. For existing domains: Add to the appropriate domain file
  3. For shared functionality: Add to common_steps.go
  4. Register all steps: Update steps.go to include the new steps

Step Naming Convention

  • Use descriptive, action-oriented names
  • Follow the pattern: i[Action][Object] or the[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 steps
  • notification_steps.go - Notification and email steps
  • admin_steps.go - Admin-specific functionality steps
  • api_steps.go - General API interaction patterns