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 }