fix: make tests resilient to project .beads/redirect

Tests were failing because beads.FindDatabasePath() follows the
project's .beads/redirect file, causing tests to find unexpected
databases. Fixed by:

- Setting BEADS_DIR in tests that need isolation from git repo detection
- Clearing BEADS_DIR in TestMain to prevent global contamination
- Updating migration test schema to include owner column

This ensures tests work correctly in crew directories that have
redirect files pointing to shared .beads directories.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Executed-By: beads/crew/dave
Rig: beads
Role: crew
This commit is contained in:
beads/crew/dave
2026-01-10 20:39:55 -08:00
committed by Steve Yegge
parent f79e636000
commit ac24a63187
6 changed files with 92 additions and 16 deletions

View File

@@ -3,6 +3,7 @@ package syncbranch
import (
"context"
"os"
"path/filepath"
"strings"
"testing"
@@ -439,6 +440,18 @@ func TestIsConfiguredWithDB(t *testing.T) {
tmpDir, _ := os.MkdirTemp("", "test-no-beads-*")
defer os.RemoveAll(tmpDir)
// Set BEADS_DIR to a nonexistent path to prevent git repo detection
// from finding the project's .beads directory
origBeadsDir := os.Getenv("BEADS_DIR")
os.Setenv("BEADS_DIR", filepath.Join(tmpDir, ".beads"))
defer func() {
if origBeadsDir != "" {
os.Setenv("BEADS_DIR", origBeadsDir)
} else {
os.Unsetenv("BEADS_DIR")
}
}()
origWd, _ := os.Getwd()
os.Chdir(tmpDir)
defer os.Chdir(origWd)