MCPcopy Create free account
hub / github.com/driangle/taskmd / TestProjects_DefaultTaskDir

Function TestProjects_DefaultTaskDir

apps/cli/internal/cli/projects_test.go:256–295  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

254}
255
256func TestProjects_DefaultTaskDir(t *testing.T) {
257 resetProjectsFlags()
258 projectsFormat = "json"
259
260 // Create project without .taskmd.yaml — should default to ./tasks
261 projectDir := t.TempDir()
262 tasksDir := filepath.Join(projectDir, "tasks")
263 if err := os.MkdirAll(tasksDir, 0755); err != nil {
264 t.Fatalf("failed to create tasks dir: %v", err)
265 }
266 if err := os.WriteFile(
267 filepath.Join(tasksDir, "001.md"),
268 []byte(taskFile("001", "Default Dir Task", "pending")),
269 0644,
270 ); err != nil {
271 t.Fatalf("failed to write task: %v", err)
272 }
273
274 setupGlobalRegistry(t, "projects:\n"+
275 " - id: proj1\n"+
276 " name: \"Default Dir Project\"\n"+
277 " path: "+projectDir+"\n")
278
279 stdout, _, err := captureProjectsOutput(t)
280 if err != nil {
281 t.Fatalf("unexpected error: %v", err)
282 }
283
284 var summaries []ProjectSummary
285 if err := json.Unmarshal([]byte(stdout), &summaries); err != nil {
286 t.Fatalf("failed to parse JSON: %v\noutput: %s", err, stdout)
287 }
288
289 if len(summaries) != 1 {
290 t.Fatalf("expected 1 project, got %d", len(summaries))
291 }
292 if summaries[0].Tasks != 1 {
293 t.Errorf("expected 1 task (from default tasks/ dir), got %d", summaries[0].Tasks)
294 }
295}
296
297func TestProjects_InvalidFormat(t *testing.T) {
298 resetProjectsFlags()

Callers

nothing calls this directly

Calls 4

resetProjectsFlagsFunction · 0.85
taskFileFunction · 0.85
setupGlobalRegistryFunction · 0.85
captureProjectsOutputFunction · 0.85

Tested by

no test coverage detected