Files
dance-lessons-coach/pkg/bdd/steps
Gabriel Radureau 8caefff43e
Some checks failed
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m19s
🔧 chore: implement JWT configuration with TTL and retention policy
- Add JWTConfig struct with TTL and SecretRetention fields
- Configure default values: TTL=1h, RetentionFactor=2.0, MaxRetention=72h, CleanupInterval=1h
- Add environment variable support (DLC_AUTH_JWT_*)
- Implement getter methods for JWT configuration
- Add comprehensive unit tests for default and custom values
- Update logging to include JWT configuration values
- Fix BDD step implementation issues (duplicate methods, unused imports)
- All BDD tests passing with new JWT configuration

Implements JWT secret retention policy as defined in ADR-0021
Closes #42
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-04-09 16:36:46 +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