🧪 test: add JWT secret rotation BDD scenarios and step implementations #12
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestAuthBDD(t *testing.T) {
|
||||
config := testsetup.NewFeatureConfig("auth", "progress", true)
|
||||
config := testsetup.NewFeatureConfig("auth", "progress", false)
|
||||
suite := testsetup.CreateTestSuite(t, config, "dance-lessons-coach BDD Tests - Auth Feature")
|
||||
|
||||
if suite.Run() != 0 {
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestGreetBDD(t *testing.T) {
|
||||
config := testsetup.NewFeatureConfig("greet", "progress", true)
|
||||
config := testsetup.NewFeatureConfig("greet", "progress", false)
|
||||
suite := testsetup.CreateTestSuite(t, config, "dance-lessons-coach BDD Tests - Greet Feature")
|
||||
|
||||
if suite.Run() != 0 {
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestHealthBDD(t *testing.T) {
|
||||
config := testsetup.NewFeatureConfig("health", "progress", true)
|
||||
config := testsetup.NewFeatureConfig("health", "progress", false)
|
||||
suite := testsetup.CreateTestSuite(t, config, "dance-lessons-coach BDD Tests - Health Feature")
|
||||
|
||||
if suite.Run() != 0 {
|
||||
|
||||
@@ -83,7 +83,6 @@ Feature: JWT Secret Retention Policy
|
||||
And the old token should still be valid during retention period
|
||||
And both tokens should work until retention period expires
|
||||
|
||||
@todo
|
||||
Scenario: Configuration validation
|
||||
Given I set retention factor to 0.5
|
||||
When I try to start the server
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
)
|
||||
|
||||
func TestJWTBDD(t *testing.T) {
|
||||
config := testsetup.NewFeatureConfig("jwt", "pretty", true)
|
||||
config := testsetup.NewFeatureConfig("jwt", "pretty", false)
|
||||
suite := testsetup.CreateTestSuite(t, config, "dance-lessons-coach BDD Tests - JWT Feature")
|
||||
|
||||
if suite.Run() != 0 {
|
||||
|
||||
@@ -14,6 +14,15 @@ import (
|
||||
"github.com/cucumber/godog"
|
||||
)
|
||||
|
||||
// getWorkingDir returns the current working directory
|
||||
func getWorkingDir() string {
|
||||
dir, err := os.Getwd()
|
||||
if err != nil {
|
||||
return "unknown"
|
||||
}
|
||||
return dir
|
||||
}
|
||||
|
||||
// FeatureConfig holds configuration for a feature test
|
||||
type FeatureConfig struct {
|
||||
FeatureName string
|
||||
@@ -141,13 +150,22 @@ func CreateTestSuite(t *testing.T, config *FeatureConfig, suiteName string) godo
|
||||
stopOnFailure, _ = strconv.ParseBool(envStop)
|
||||
}
|
||||
|
||||
// Determine the correct path for feature files
|
||||
// When running from within a feature directory, use "." to find feature files in current dir
|
||||
// When running from outside, use the feature name as a relative path
|
||||
featurePath := "."
|
||||
if workingDir := getWorkingDir(); !strings.HasSuffix(workingDir, "/"+config.FeatureName) && !strings.HasSuffix(workingDir, "\\"+config.FeatureName) {
|
||||
// Not running from within the feature directory, use feature name
|
||||
featurePath = config.FeatureName
|
||||
}
|
||||
|
||||
return godog.TestSuite{
|
||||
Name: suiteName,
|
||||
TestSuiteInitializer: bdd.InitializeTestSuite,
|
||||
ScenarioInitializer: bdd.InitializeScenario,
|
||||
Options: &godog.Options{
|
||||
Format: config.Format,
|
||||
Paths: []string{"."},
|
||||
Paths: []string{featurePath},
|
||||
TestingT: t,
|
||||
Strict: true,
|
||||
Randomize: -1,
|
||||
|
||||
Reference in New Issue
Block a user