Files
dance-lessons-coach/pkg/bdd/steps/README.md
Gabriel Radureau a17eebc8f2 🧪 test: add comprehensive BDD test suite for user authentication
Added BDD test scenarios covering:
- User registration with validation
- Successful and failed authentication
- Admin authentication with master password
- JWT token generation and validation
- Password reset workflow
- Edge cases and error handling

BDD Features:
- 20+ authentication scenarios
- JWT validation edge cases
- Password reset security scenarios
- Input validation tests
- Error response verification

BDD Infrastructure:
- Step definitions for authentication workflows
- Test server with user management endpoints
- JWT parsing and validation utilities
- Common step patterns for reuse

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-04-09 00:25:48 +02:00

50 lines
1.7 KiB
Markdown

# 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:
```bash
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