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

Function TestSortTasks

apps/cli/internal/cli/list_test.go:13–50  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestSortTasks(t *testing.T) {
14 now := time.Now()
15 tasks := []*model.Task{
16 {ID: "003", Title: "C", Status: model.StatusPending, Priority: model.PriorityLow, Effort: model.EffortLarge, Created: model.NewFlexibleTime(now.Add(2 * time.Hour))},
17 {ID: "001", Title: "A", Status: model.StatusCompleted, Priority: model.PriorityHigh, Effort: model.EffortSmall, Created: model.NewFlexibleTime(now)},
18 {ID: "002", Title: "B", Status: model.StatusInProgress, Priority: model.PriorityCritical, Effort: model.EffortMedium, Created: model.NewFlexibleTime(now.Add(1 * time.Hour))},
19 }
20
21 tests := []struct {
22 name string
23 sortField string
24 firstID string
25 wantErr bool
26 }{
27 {"sort by id", "id", "001", false},
28 {"sort by title", "title", "001", false},
29 {"sort by priority", "priority", "002", false},
30 {"sort by effort", "effort", "001", false},
31 {"sort by created", "created", "001", false},
32 {"invalid sort field", "invalid", "", true},
33 }
34
35 for _, tt := range tests {
36 t.Run(tt.name, func(t *testing.T) {
37 tasksCopy := make([]*model.Task, len(tasks))
38 copy(tasksCopy, tasks)
39
40 err := sortTasks(tasksCopy, tt.sortField)
41 if (err != nil) != tt.wantErr {
42 t.Errorf("sortTasks() error = %v, wantErr %v", err, tt.wantErr)
43 return
44 }
45 if !tt.wantErr && tasksCopy[0].ID != tt.firstID {
46 t.Errorf("sortTasks() first task ID = %s, want %s", tasksCopy[0].ID, tt.firstID)
47 }
48 })
49 }
50}
51
52func TestGetColumnValue(t *testing.T) {
53 created := time.Date(2026, 2, 8, 0, 0, 0, 0, time.UTC)

Callers

nothing calls this directly

Calls 1

sortTasksFunction · 0.70

Tested by

no test coverage detected