| 130 | } |
| 131 | |
| 132 | func TestRunNewRejectsExistingPRD(t *testing.T) { |
| 133 | tmpDir := t.TempDir() |
| 134 | |
| 135 | // Create existing prd.md |
| 136 | prdDir := filepath.Join(tmpDir, ".chief", "prds", "existing") |
| 137 | if err := os.MkdirAll(prdDir, 0755); err != nil { |
| 138 | t.Fatalf("Failed to create directory: %v", err) |
| 139 | } |
| 140 | prdMdPath := filepath.Join(prdDir, "prd.md") |
| 141 | if err := os.WriteFile(prdMdPath, []byte("# Existing PRD"), 0644); err != nil { |
| 142 | t.Fatalf("Failed to create prd.md: %v", err) |
| 143 | } |
| 144 | |
| 145 | opts := NewOptions{ |
| 146 | Name: "existing", |
| 147 | BaseDir: tmpDir, |
| 148 | } |
| 149 | |
| 150 | err := RunNew(opts) |
| 151 | if err == nil { |
| 152 | t.Error("Expected error for existing PRD") |
| 153 | } |
| 154 | } |
| 155 | |
| 156 | func TestRunNewRequiresProvider(t *testing.T) { |
| 157 | opts := NewOptions{ |