🤖 feat: enhance agent skills for BDD testing and CI/CD management
Skill Improvements: - BDD Testing Skill: Enhanced step templates, debugging guides, and patterns - Gitea Client Skill: Added wiki management, issue tracking, and workflow monitoring - Product Owner Assistant: Improved user story workflow and documentation - Commit Message Skill: Better gitmoji integration and issue referencing - Changelog Manager: Enhanced change tracking and documentation - Skill Creator: Improved skill generation templates and validation - Swagger Documentation: Updated OpenAPI integration guides Key Features: - BDD best practices documentation - Gitea API client with wiki support - User story implementation workflow - Git commit message standardization - Skill development patterns - OpenAPI/Swagger documentation generation Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# BDD Best Practices for DanceLessonsCoach
|
||||
# BDD Best Practices for dance-lessons-coach
|
||||
|
||||
Based on our implementation experience with Godog and the existing `pkg/bdd` codebase.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# BDD Testing Debugging Guide
|
||||
|
||||
Comprehensive guide to debugging BDD tests for DanceLessonsCoach.
|
||||
Comprehensive guide to debugging BDD tests for dance-lessons-coach.
|
||||
|
||||
## Common Issues and Solutions
|
||||
|
||||
@@ -15,7 +15,12 @@ Feature: Greet Service
|
||||
Then the response should be "..." # ??? UNDEFINED STEP
|
||||
```
|
||||
|
||||
**Root Cause:** Step patterns don't match Godog's exact expectations.
|
||||
**Root Cause:** Step patterns don't match Godog's exact expectations. Godog is very particular about regex escaping.
|
||||
|
||||
**Common Pattern Issues:**
|
||||
- `\"` vs `\\"` (single vs double escaping)
|
||||
- Exact quote handling in JSON patterns
|
||||
- Parameter capture group syntax
|
||||
|
||||
**Debugging Steps:**
|
||||
|
||||
@@ -28,25 +33,30 @@ Feature: Greet Service
|
||||
```
|
||||
You can implement step definitions for the undefined steps with these snippets:
|
||||
|
||||
func theServerIsRunning() error {
|
||||
func theResponseShouldBe(arg1, arg2 string) error {
|
||||
return godog.ErrPending
|
||||
}
|
||||
|
||||
func iRequestTheDefaultGreeting() error {
|
||||
return godog.ErrPending
|
||||
func InitializeScenario(ctx *godog.ScenarioContext) {
|
||||
ctx.Step(`^the response should be "{\\"([^"]*)\\":\\"([^"]*)\\"}"$`, theResponseShouldBe)
|
||||
}
|
||||
```
|
||||
|
||||
3. **Compare with your implementation:**
|
||||
```go
|
||||
// ❌ Wrong pattern
|
||||
ctx.Step(`^the server is running$`, sc.theServerIsRunning)
|
||||
// ❌ Wrong pattern (single escaping)
|
||||
ctx.Step(`^the response should be "{\"([^"]*)\":\"([^"]*)\"}"$`, sc.commonSteps.theResponseShouldBe)
|
||||
|
||||
// ✅ Correct pattern (matches Godog's suggestion)
|
||||
ctx.Step(`^the server is running$`, sc.theServerIsRunning)
|
||||
// ✅ Correct pattern (double escaping - matches Godog's suggestion)
|
||||
ctx.Step(`^the response should be "{\\"([^"]*)\\":\\"([^"]*)\\"}"$`, sc.commonSteps.theResponseShouldBe)
|
||||
```
|
||||
|
||||
**Solution:** Use Godog's EXACT regex patterns.
|
||||
**Key Insight:** Godog expects `\\"` (four backslashes + quote) for escaped quotes in JSON patterns, not `\"` (two backslashes + quote).
|
||||
|
||||
**Solution:** Use Godog's EXACT regex patterns, paying special attention to:
|
||||
- JSON escaping: `\\"` not `\"`
|
||||
- Parameter names: Use `arg1, arg2` as suggested
|
||||
- Capture groups: Match Godog's exact regex syntax
|
||||
|
||||
### 2. JSON Comparison Failures
|
||||
|
||||
|
||||
@@ -87,4 +87,10 @@ Godog's step matching is **very specific by design**:
|
||||
- It provides exact patterns to ensure consistency
|
||||
- Following its suggestions guarantees your steps will be recognized
|
||||
|
||||
**Remember**: The "undefined" warnings are Godog telling you exactly how to fix your step definitions!
|
||||
**Remember**: The "undefined" warnings are Godog telling you exactly how to fix your step definitions!
|
||||
## Critical Pattern Fix
|
||||
|
||||
**File:** `pkg/bdd/steps/steps.go`
|
||||
**Line:** 80
|
||||
**Issue:** Step pattern must use double escaping (4 backslashes + quote) not single escaping (2 backslashes + quote)
|
||||
**Pattern:** `^the response should be "{\\"([^"]*)\\":\\"([^"]*)\\"}"$`
|
||||
|
||||
@@ -345,7 +345,7 @@ resp, err := testClient.Do(req)
|
||||
// pkg/bdd/bdd_test.go
|
||||
func TestBDD(t *testing.T) {
|
||||
suite := godog.TestSuite{
|
||||
Name: "DanceLessonsCoach BDD Tests",
|
||||
Name: "dance-lessons-coach BDD Tests",
|
||||
TestSuiteInitializer: bdd.InitializeTestSuite,
|
||||
ScenarioInitializer: bdd.InitializeScenario,
|
||||
Options: &godog.Options{
|
||||
|
||||
Reference in New Issue
Block a user