- Removed unused imports (time, context, helpers) - Removed unused variables (authCtx, configCtx) - Simplified InitializeFeatureScenario to use existing step initialization - Maintained backward compatibility with existing test structure Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
79 lines
2.2 KiB
Go
79 lines
2.2 KiB
Go
package bdd
|
|
|
|
import (
|
|
"dance-lessons-coach/pkg/bdd/steps"
|
|
"dance-lessons-coach/pkg/bdd/testserver"
|
|
"os"
|
|
|
|
"github.com/cucumber/godog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
// FeatureSuiteContext holds feature-specific test suite context
|
|
type FeatureSuiteContext struct {
|
|
featureName string
|
|
client *testserver.Client
|
|
// Add other feature contexts as needed
|
|
}
|
|
|
|
// InitializeFeatureSuite initializes a feature-specific test suite
|
|
func InitializeFeatureSuite(ctx *godog.TestSuiteContext) {
|
|
featureName := os.Getenv("FEATURE")
|
|
if featureName == "" {
|
|
featureName = "all"
|
|
}
|
|
|
|
log.Debug().Str("feature", featureName).Msg("Initializing feature suite")
|
|
|
|
ctx.BeforeSuite(func() {
|
|
// Initialize shared server for this feature
|
|
server := testserver.NewServer()
|
|
if err := server.Start(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
// Store server in a way that can be accessed by scenarios
|
|
// This would need to be properly implemented
|
|
})
|
|
|
|
ctx.AfterSuite(func() {
|
|
// Cleanup feature-specific resources
|
|
log.Debug().Str("feature", featureName).Msg("Cleaning up feature suite")
|
|
})
|
|
}
|
|
|
|
// InitializeFeatureScenario initializes a feature-specific scenario
|
|
func InitializeFeatureScenario(ctx *godog.ScenarioContext, client *testserver.Client) {
|
|
featureName := os.Getenv("FEATURE")
|
|
|
|
switch featureName {
|
|
case "auth":
|
|
// Initialize auth-specific context if needed
|
|
steps.InitializeAllSteps(ctx, client)
|
|
case "config":
|
|
// Initialize config-specific context if needed
|
|
steps.InitializeAllSteps(ctx, client)
|
|
case "greet":
|
|
// Initialize greet-specific context if needed
|
|
steps.InitializeAllSteps(ctx, client)
|
|
case "health":
|
|
// Initialize health-specific context if needed
|
|
steps.InitializeAllSteps(ctx, client)
|
|
case "jwt":
|
|
// Initialize JWT-specific context if needed
|
|
steps.InitializeAllSteps(ctx, client)
|
|
default:
|
|
// Fallback to all steps for backward compatibility
|
|
steps.InitializeAllSteps(ctx, client)
|
|
}
|
|
}
|
|
|
|
// CleanupFeatureSuite cleans up feature-specific resources
|
|
func CleanupFeatureSuite() {
|
|
featureName := os.Getenv("FEATURE")
|
|
log.Debug().Str("feature", featureName).Msg("Cleaning up feature suite")
|
|
|
|
// Feature-specific cleanup would go here
|
|
steps.CleanupAllTestConfigFiles()
|
|
}
|