- Add TypeMessage issue type for inter-agent communication - Add 6 new Issue fields: Sender, Ephemeral, RepliesTo, RelatesTo, DuplicateOf, SupersededBy - Add 4 new dependency types: replies-to, relates-to, duplicates, supersedes - Create migration 019_messaging_fields with indexes - Update all CRUD operations across storage layer - Fix reset_test.go to use correct function names - Fix redundant newline lint error in sync.go Closes: bd-kwro.1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
74 lines
1.9 KiB
Go
74 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestRemoveGitattributesEntry(t *testing.T) {
|
|
// Save and restore working directory
|
|
origDir, err := os.Getwd()
|
|
if err != nil {
|
|
t.Fatalf("failed to get working directory: %v", err)
|
|
}
|
|
|
|
t.Run("removes beads entry", func(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
if err := os.Chdir(tmpDir); err != nil {
|
|
t.Fatalf("failed to change to temp dir: %v", err)
|
|
}
|
|
defer func() { _ = os.Chdir(origDir) }()
|
|
|
|
content := `*.png binary
|
|
# Use bd merge for beads JSONL files
|
|
.beads/issues.jsonl merge=beads
|
|
*.jpg binary
|
|
`
|
|
if err := os.WriteFile(".gitattributes", []byte(content), 0644); err != nil {
|
|
t.Fatalf("failed to write test file: %v", err)
|
|
}
|
|
|
|
if err := removeGitattributesEntry(); err != nil {
|
|
t.Fatalf("removeGitattributesEntry failed: %v", err)
|
|
}
|
|
|
|
result, err := os.ReadFile(".gitattributes")
|
|
if err != nil {
|
|
t.Fatalf("failed to read result: %v", err)
|
|
}
|
|
|
|
if strings.Contains(string(result), "merge=beads") {
|
|
t.Error("beads merge entry should have been removed")
|
|
}
|
|
if !strings.Contains(string(result), "*.png binary") {
|
|
t.Error("other entries should be preserved")
|
|
}
|
|
if !strings.Contains(string(result), "*.jpg binary") {
|
|
t.Error("other entries should be preserved")
|
|
}
|
|
})
|
|
|
|
t.Run("removes file if only beads entry", func(t *testing.T) {
|
|
tmpDir := t.TempDir()
|
|
if err := os.Chdir(tmpDir); err != nil {
|
|
t.Fatalf("failed to change to temp dir: %v", err)
|
|
}
|
|
defer func() { _ = os.Chdir(origDir) }()
|
|
|
|
content := `.beads/issues.jsonl merge=beads
|
|
`
|
|
if err := os.WriteFile(".gitattributes", []byte(content), 0644); err != nil {
|
|
t.Fatalf("failed to write test file: %v", err)
|
|
}
|
|
|
|
if err := removeGitattributesEntry(); err != nil {
|
|
t.Fatalf("removeGitattributesEntry failed: %v", err)
|
|
}
|
|
|
|
if _, err := os.Stat(".gitattributes"); !os.IsNotExist(err) {
|
|
t.Error("file should have been deleted when only beads entries present")
|
|
}
|
|
})
|
|
}
|