package taskwarrior import ( "testing" "time" ) func TestTask_GetString(t *testing.T) { tests := []struct { name string task Task fieldWFormat string want string }{ { name: "Priority", task: Task{ Priority: "H", }, fieldWFormat: "priority", want: "H", }, { name: "Description", task: Task{ Description: "Buy milk", }, fieldWFormat: "description.desc", want: "Buy milk", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := tt.task.GetString(tt.fieldWFormat); got != tt.want { t.Errorf("Task.GetString() = %v, want %v", got, tt.want) } }) } } func TestTask_GetDate(t *testing.T) { validDate := "20230101T120000Z" parsedValid, _ := time.Parse("20060102T150405Z", validDate) tests := []struct { name string task Task field string want time.Time }{ { name: "Due date valid", task: Task{ Due: validDate, }, field: "due", want: parsedValid, }, { name: "Due date empty", task: Task{}, field: "due", want: time.Time{}, }, { name: "Unknown field", task: Task{Due: validDate}, field: "unknown", want: time.Time{}, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := tt.task.GetDate(tt.field); !got.Equal(tt.want) { t.Errorf("Task.GetDate() = %v, want %v", got, tt.want) } }) } }