Files
dance-lessons-coach/pkg/bdd/steps
Gabriel Radureau 5c8f42b33f
Some checks failed
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m23s
🧪 test: implement comprehensive BDD test suite for JWT secret rotation
- Added JWT secret rotation feature tests
- Implemented config management BDD steps
- Created greet service BDD scenarios
- Enhanced test server with JWT rotation support
- Added comprehensive step definitions

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-04-09 22:51:19 +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