♻️ refactor: make BDD test setup DRY with shared testsetup package
- Create pkg/bdd/testsetup package with shared test configuration functions - Refactor all feature test files to use shared setup (70+ lines reduced) - Implement dynamic feature path detection by scanning filesystem for directories - Add getProjectRoot() function to find project root via go.mod - Maintain all existing functionality (tags, stop on failure, etc.) - Add fallback to hardcoded paths if filesystem access fails - Sort feature paths for consistent test execution order Before: ~35 lines per test file with duplicated setup code After: ~5 lines per test file using shared functions Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistralai.com>
This commit is contained in:
@@ -1,45 +1,14 @@
|
||||
package greet
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"dance-lessons-coach/pkg/bdd"
|
||||
|
||||
"github.com/cucumber/godog"
|
||||
"dance-lessons-coach/pkg/bdd/testsetup"
|
||||
)
|
||||
|
||||
func TestGreetBDD(t *testing.T) {
|
||||
// Set FEATURE environment variable for feature-specific configuration
|
||||
os.Setenv("FEATURE", "greet")
|
||||
|
||||
// Allow tag override via environment variable
|
||||
tags := os.Getenv("GODOG_TAGS")
|
||||
if tags == "" {
|
||||
// Default tags if not overridden
|
||||
tags = "~@flaky && ~@todo && ~@skip"
|
||||
}
|
||||
|
||||
// Allow stop on failure override via environment variable
|
||||
stopOnFailure := true // Default for greet tests
|
||||
if envStop := os.Getenv("GODOG_STOP_ON_FAILURE"); envStop != "" {
|
||||
stopOnFailure = envStop == "true" || envStop == "1"
|
||||
}
|
||||
|
||||
suite := godog.TestSuite{
|
||||
Name: "dance-lessons-coach BDD Tests - Greet Feature",
|
||||
TestSuiteInitializer: bdd.InitializeTestSuite,
|
||||
ScenarioInitializer: bdd.InitializeScenario,
|
||||
Options: &godog.Options{
|
||||
Format: "progress",
|
||||
Paths: []string{"."},
|
||||
TestingT: t,
|
||||
Strict: true,
|
||||
Randomize: -1,
|
||||
StopOnFailure: stopOnFailure,
|
||||
Tags: tags,
|
||||
},
|
||||
}
|
||||
config := testsetup.NewFeatureConfig("greet", "progress", true)
|
||||
suite := testsetup.CreateTestSuite(t, config, "dance-lessons-coach BDD Tests - Greet Feature")
|
||||
|
||||
if suite.Run() != 0 {
|
||||
t.Fatal("non-zero status returned, failed to run greet BDD tests")
|
||||
|
||||
Reference in New Issue
Block a user