Prevent test pollution in production database (bd-z528)
- Add warning when creating issues with 'Test' prefix - Suggest BEADS_DB for isolated testing - Document testing workflow in AGENTS.md - Include examples for manual and automated testing Amp-Thread-ID: https://ampcode.com/threads/T-fc7b7391-8881-4dd9-8e1f-28a2f95afb2b Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
28
AGENTS.md
28
AGENTS.md
@@ -609,6 +609,34 @@ beads/
|
|||||||
└── *.md # Documentation
|
└── *.md # Documentation
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Testing Workflow
|
||||||
|
|
||||||
|
**IMPORTANT:** Never pollute the production database with test issues!
|
||||||
|
|
||||||
|
**For manual testing**, use the `BEADS_DB` environment variable to point to a temporary database:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Create test issues in isolated database
|
||||||
|
BEADS_DB=/tmp/test.db ./bd init --quiet --prefix test
|
||||||
|
BEADS_DB=/tmp/test.db ./bd create "Test issue" -p 1
|
||||||
|
|
||||||
|
# Or for quick testing
|
||||||
|
BEADS_DB=/tmp/test.db ./bd create "Test feature" -p 1
|
||||||
|
```
|
||||||
|
|
||||||
|
**For automated tests**, use `t.TempDir()` in Go tests:
|
||||||
|
|
||||||
|
```go
|
||||||
|
func TestMyFeature(t *testing.T) {
|
||||||
|
tmpDir := t.TempDir()
|
||||||
|
testDB := filepath.Join(tmpDir, ".beads", "beads.db")
|
||||||
|
s := newTestStore(t, testDB)
|
||||||
|
// ... test code
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Warning:** bd will warn you when creating issues with "Test" prefix in the production database. Always use `BEADS_DB` for manual testing.
|
||||||
|
|
||||||
### Before Committing
|
### Before Committing
|
||||||
|
|
||||||
1. **Run tests**: `go test -short ./...` (full tests run in CI)
|
1. **Run tests**: `go test -short ./...` (full tests run in CI)
|
||||||
|
|||||||
@@ -57,6 +57,13 @@ var createCmd = &cobra.Command{
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Warn if creating a test issue in production database
|
||||||
|
if strings.HasPrefix(strings.ToLower(title), "test") {
|
||||||
|
yellow := color.New(color.FgYellow).SprintFunc()
|
||||||
|
fmt.Fprintf(os.Stderr, "%s Creating issue with 'Test' prefix in production database.\n", yellow("⚠"))
|
||||||
|
fmt.Fprintf(os.Stderr, " For testing, consider using: BEADS_DB=/tmp/test.db ./bd create \"Test issue\"\n")
|
||||||
|
}
|
||||||
|
|
||||||
// Load template if specified
|
// Load template if specified
|
||||||
var tmpl *Template
|
var tmpl *Template
|
||||||
if fromTemplate != "" {
|
if fromTemplate != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user