🧪 test: add command-line tag override via GODOG_TAGS

- Modify all feature test suites to accept GODOG_TAGS environment variable
- Allow runtime tag filtering override for focused testing
- Update BDD_TAGS.md with usage examples
- Maintain default behavior when GODOG_TAGS not set

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-04-10 09:22:23 +02:00
parent e9fd453a88
commit 4292f79c6a
7 changed files with 61 additions and 6 deletions

View File

@@ -47,6 +47,26 @@ Scenario: JWT authentication with multiple secrets
Then I should receive a valid JWT token
```
### Command-Line Tag Override
You can override the default tag filtering by setting the `GODOG_TAGS` environment variable when running tests.
**Usage:**
```bash
# Run only @wip scenarios
GODOG_TAGS="@wip" go test ./features/jwt/...
# Run smoke tests only
GODOG_TAGS="@smoke" go test ./features/...
# Run specific combination
GODOG_TAGS="@jwt && ~@todo" go test ./features/...
# Combine with other environment variables
DLC_DATABASE_HOST=localhost GODOG_TAGS="@wip" go test ./features/jwt/...
```
**Default Behavior:** If `GODOG_TAGS` is not set, the test uses the default tag filter: `~@flaky && ~@todo && ~@skip && @wip`
## Usage Examples
### Running Smoke Tests

View File

@@ -13,6 +13,13 @@ func TestAuthBDD(t *testing.T) {
// Set FEATURE environment variable for feature-specific configuration
os.Setenv("FEATURE", "auth")
// Allow tag override via environment variable
tags := os.Getenv("GODOG_TAGS")
if tags == "" {
// Default tags if not overridden
tags = "~@flaky && ~@todo && ~@skip && @wip"
}
suite := godog.TestSuite{
Name: "dance-lessons-coach BDD Tests - Auth Feature",
TestSuiteInitializer: bdd.InitializeTestSuite,
@@ -24,7 +31,7 @@ func TestAuthBDD(t *testing.T) {
Strict: true,
Randomize: -1,
StopOnFailure: true,
Tags: "~@flaky && ~@todo && ~@skip && @wip",
Tags: tags,
},
}

View File

@@ -13,6 +13,13 @@ func TestConfigBDD(t *testing.T) {
// Set FEATURE environment variable for feature-specific configuration
os.Setenv("FEATURE", "config")
// Allow tag override via environment variable
tags := os.Getenv("GODOG_TAGS")
if tags == "" {
// Default tags if not overridden
tags = "~@flaky && ~@todo && ~@skip && @wip"
}
suite := godog.TestSuite{
Name: "dance-lessons-coach BDD Tests - Config Feature",
TestSuiteInitializer: bdd.InitializeTestSuite,
@@ -24,7 +31,7 @@ func TestConfigBDD(t *testing.T) {
Strict: true,
Randomize: -1,
StopOnFailure: false,
Tags: "~@flaky && ~@todo && ~@skip && @wip",
Tags: tags,
},
}

View File

@@ -13,6 +13,13 @@ 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 && @wip"
}
suite := godog.TestSuite{
Name: "dance-lessons-coach BDD Tests - Greet Feature",
TestSuiteInitializer: bdd.InitializeTestSuite,
@@ -24,7 +31,7 @@ func TestGreetBDD(t *testing.T) {
Strict: true,
Randomize: -1,
StopOnFailure: true,
Tags: "~@flaky && ~@todo && ~@skip && @wip",
Tags: tags,
},
}

View File

@@ -13,6 +13,13 @@ func TestHealthBDD(t *testing.T) {
// Set FEATURE environment variable for feature-specific configuration
os.Setenv("FEATURE", "health")
// Allow tag override via environment variable
tags := os.Getenv("GODOG_TAGS")
if tags == "" {
// Default tags if not overridden
tags = "~@flaky && ~@todo && ~@skip && @wip"
}
suite := godog.TestSuite{
Name: "dance-lessons-coach BDD Tests - Health Feature",
TestSuiteInitializer: bdd.InitializeTestSuite,
@@ -24,7 +31,7 @@ func TestHealthBDD(t *testing.T) {
Strict: true,
Randomize: -1,
StopOnFailure: true,
Tags: "~@flaky && ~@todo && ~@skip && @wip",
Tags: tags,
},
}

View File

@@ -4,7 +4,7 @@ Feature: JWT Secret Rotation
I want to rotate JWT secrets without disrupting users
So that we can maintain security while ensuring continuous service
@todo
@wip
Scenario: Authentication with multiple valid JWT secrets
Given the server is running with multiple JWT secrets
And a user "multiuser" exists with password "testpass123"

View File

@@ -13,6 +13,13 @@ func TestJWTBDD(t *testing.T) {
// Set FEATURE environment variable for feature-specific configuration
os.Setenv("FEATURE", "jwt")
// Allow tag override via environment variable
tags := os.Getenv("GODOG_TAGS")
if tags == "" {
// Default tags if not overridden
tags = "~@flaky && ~@todo && ~@skip && @wip"
}
suite := godog.TestSuite{
Name: "dance-lessons-coach BDD Tests - JWT Feature",
TestSuiteInitializer: bdd.InitializeTestSuite,
@@ -24,7 +31,7 @@ func TestJWTBDD(t *testing.T) {
Strict: true,
Randomize: -1,
StopOnFailure: true,
Tags: "~@flaky && ~@todo && ~@skip && @wip",
Tags: tags,
},
}