✨ feat: add feature-based test organization per ADR 0024 🐛 fix: resolve compilation errors in suite_feature.go 📝 docs: add comprehensive BDD framework documentation ♻️ refactor: split monolithic tests into modular features 🧪 test: implement synchronization helpers and context management ⚡ perf: add parallel test execution capability 🔧 chore: add feature-specific test scripts and validation 📚 docs: move BDD_TAGS.md to features/ for better organization Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package context
|
|
|
|
import (
|
|
"dance-lessons-coach/pkg/bdd/testserver"
|
|
|
|
"github.com/cucumber/godog"
|
|
)
|
|
|
|
// AuthContext holds authentication-specific test context
|
|
type AuthContext struct {
|
|
client *testserver.Client
|
|
users map[string]UserData
|
|
}
|
|
|
|
// UserData represents user information for auth tests
|
|
type UserData struct {
|
|
Username string
|
|
Password string
|
|
Token string
|
|
}
|
|
|
|
// NewAuthContext creates a new auth context
|
|
func NewAuthContext(client *testserver.Client) *AuthContext {
|
|
return &AuthContext{
|
|
client: client,
|
|
users: make(map[string]UserData),
|
|
}
|
|
}
|
|
|
|
// InitializeAuthContext initializes auth-specific steps
|
|
func InitializeAuthContext(ctx *godog.ScenarioContext, client *testserver.Client) {
|
|
authCtx := NewAuthContext(client)
|
|
|
|
// Register auth-specific steps
|
|
ctx.Step(`^a user "([^"]*)" exists with password "([^"]*)"$`, authCtx.aUserExistsWithPassword)
|
|
ctx.Step(`^I authenticate with username "([^"]*)" and password "([^"]*)"$`, authCtx.iAuthenticateWithUsernameAndPassword)
|
|
ctx.Step(`^the authentication should be successful$`, authCtx.theAuthenticationShouldBeSuccessful)
|
|
ctx.Step(`^I should receive a valid JWT token$`, authCtx.iShouldReceiveAValidJWTToken)
|
|
|
|
// Add more auth steps as needed...
|
|
}
|
|
|
|
// Step implementations
|
|
func (ac *AuthContext) aUserExistsWithPassword(username, password string) error {
|
|
ac.users[username] = UserData{
|
|
Username: username,
|
|
Password: password,
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (ac *AuthContext) iAuthenticateWithUsernameAndPassword(username, password string) error {
|
|
// Implementation would go here
|
|
return nil
|
|
}
|
|
|
|
func (ac *AuthContext) theAuthenticationShouldBeSuccessful() error {
|
|
// Implementation would go here
|
|
return nil
|
|
}
|
|
|
|
func (ac *AuthContext) iShouldReceiveAValidJWTToken() error {
|
|
// Implementation would go here
|
|
return nil
|
|
}
|