Files
dance-lessons-coach/features/bdd_test.go
Gabriel Radureau 756fc5abfd 🧪 test: add GODOG_STOP_ON_FAILURE environment variable support
- Add GODOG_STOP_ON_FAILURE environment variable to all test suites
- Maintain feature-specific defaults for stop on failure behavior
- JWT, Greet, Auth, Health: stop on failure by default (true)
- Config, All Features: continue after failures by default (false)
- Allow runtime override via environment variable
- Update BDD_TAGS.md with usage examples and defaults
- Support boolean values: true, false, 1, 0

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistralai.com>
2026-04-10 10:17:43 +02:00

67 lines
1.5 KiB
Go

package features
import (
"os"
"testing"
"dance-lessons-coach/pkg/bdd"
"github.com/cucumber/godog"
)
func TestBDD(t *testing.T) {
// Get feature name from environment variable or default to all features
feature := os.Getenv("FEATURE")
var paths []string
var suiteName string
if feature == "" {
// Run all features
suiteName = "dance-lessons-coach BDD Tests - All Features"
paths = []string{
"auth",
"config",
"greet",
"health",
"jwt",
}
} else {
// Run specific feature
suiteName = "dance-lessons-coach BDD Tests - " + feature + " Feature"
paths = []string{feature}
}
// 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 := false // Default for all features test (don't stop on failure)
if envStop := os.Getenv("GODOG_STOP_ON_FAILURE"); envStop != "" {
stopOnFailure = envStop == "true" || envStop == "1"
}
suite := godog.TestSuite{
Name: suiteName,
TestSuiteInitializer: bdd.InitializeTestSuite,
ScenarioInitializer: bdd.InitializeScenario,
Options: &godog.Options{
Format: "progress",
Paths: paths,
TestingT: t,
Strict: true,
Randomize: -1,
StopOnFailure: stopOnFailure,
Tags: tags,
},
}
if suite.Run() != 0 {
t.Fatal("non-zero status returned, failed to run BDD tests")
}
}