🧪 test: add JWT secret rotation BDD scenarios and step implementations #12
@@ -8,7 +8,6 @@ import (
|
|||||||
|
|
||||||
"dance-lessons-coach/pkg/bdd/testserver"
|
"dance-lessons-coach/pkg/bdd/testserver"
|
||||||
|
|
||||||
"github.com/cucumber/godog"
|
|
||||||
"github.com/golang-jwt/jwt/v5"
|
"github.com/golang-jwt/jwt/v5"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -182,8 +181,9 @@ func (s *AuthSteps) theRegistrationShouldBeSuccessful() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *AuthSteps) iShouldBeAbleToAuthenticateWithTheNewCredentials() error {
|
func (s *AuthSteps) iShouldBeAbleToAuthenticateWithTheNewCredentials() error {
|
||||||
// This is the same as regular authentication
|
// Actually perform authentication with the new credentials
|
||||||
return godog.ErrPending
|
// This simulates what a real user would do after registration
|
||||||
|
return s.iAuthenticateWithUsernameAndPassword("newuser_", "newpass123")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AuthSteps) iAmAuthenticatedAsAdmin() error {
|
func (s *AuthSteps) iAmAuthenticatedAsAdmin() error {
|
||||||
@@ -213,7 +213,18 @@ func (s *AuthSteps) thePasswordResetShouldBeAllowed() error {
|
|||||||
|
|
||||||
func (s *AuthSteps) theUserShouldBeFlaggedForPasswordReset() error {
|
func (s *AuthSteps) theUserShouldBeFlaggedForPasswordReset() error {
|
||||||
// This is verified by the password reset request being successful
|
// This is verified by the password reset request being successful
|
||||||
return godog.ErrPending
|
// Check if we got a 200 status code
|
||||||
|
if s.client.GetLastStatusCode() != http.StatusOK {
|
||||||
|
return fmt.Errorf("expected status 200, got %d", s.client.GetLastStatusCode())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if response contains success message
|
||||||
|
body := string(s.client.GetLastBody())
|
||||||
|
if !strings.Contains(body, "Password reset allowed") {
|
||||||
|
return fmt.Errorf("expected password reset success message, got %s", body)
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AuthSteps) iCompletePasswordResetForWithNewPassword(username, password string) error {
|
func (s *AuthSteps) iCompletePasswordResetForWithNewPassword(username, password string) error {
|
||||||
@@ -251,8 +262,9 @@ func (s *AuthSteps) thePasswordResetShouldBeSuccessful() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *AuthSteps) iShouldBeAbleToAuthenticateWithTheNewPassword() error {
|
func (s *AuthSteps) iShouldBeAbleToAuthenticateWithTheNewPassword() error {
|
||||||
// This is the same as regular authentication
|
// Actually perform authentication with the new password
|
||||||
return godog.ErrPending
|
// This simulates what a real user would do after password reset
|
||||||
|
return s.iAuthenticateWithUsernameAndPassword("resetuser", "newpass123")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *AuthSteps) thePasswordResetShouldFail() error {
|
func (s *AuthSteps) thePasswordResetShouldFail() error {
|
||||||
|
|||||||
Reference in New Issue
Block a user