From dee37364c1c690207cb12c399f65e2b53537b5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20B=C3=BCtow?= <1224732+snonux@users.noreply.github.com> Date: Thu, 19 Jun 2025 23:43:20 +0300 Subject: Add Taskwarrior CLI tests --- internal/task/task_test.go | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 internal/task/task_test.go (limited to 'internal/task/task_test.go') diff --git a/internal/task/task_test.go b/internal/task/task_test.go new file mode 100644 index 0000000..8940bfe --- /dev/null +++ b/internal/task/task_test.go @@ -0,0 +1,56 @@ +package task + +import ( + "os" + "testing" +) + +func TestAddAndExport(t *testing.T) { + tmp := t.TempDir() + if err := os.Setenv("TASKDATA", tmp); err != nil { + t.Fatal(err) + } + if err := os.Setenv("TASKRC", "/dev/null"); err != nil { + t.Fatal(err) + } + t.Cleanup(func() { + os.Unsetenv("TASKDATA") + os.Unsetenv("TASKRC") + }) + + if err := Add("hello world", []string{"tag", "anothertag", "tasksamuraitesting"}); err != nil { + t.Fatalf("add task 1: %v", err) + } + if err := Add("hello universe", []string{"foo", "tasksamuraitesting"}); err != nil { + t.Fatalf("add task 2: %v", err) + } + + tasks, err := Export() + if err != nil { + t.Fatalf("export: %v", err) + } + + found := make(map[string]bool) + for _, task := range tasks { + hasTag := false + for _, tag := range task.Tags { + if tag == "tasksamuraitesting" { + hasTag = true + break + } + } + if hasTag { + found[task.Description] = true + } + } + + if len(found) != 2 { + t.Fatalf("expected 2 tasks with tag, got %d", len(found)) + } + if !found["hello world"] { + t.Errorf("missing task 'hello world'") + } + if !found["hello universe"] { + t.Errorf("missing task 'hello universe'") + } +} -- cgit v1.2.3