Add offline-first task-master TUI with tickets, board lists, and undo.
Charm-based CLI with JSON persistence, status/list filters, external editor editing, command-history undo/redo, and glamour markdown without AutoStyle OSC hangs. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
package ticket_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"task/internal/ticket"
|
||||
)
|
||||
|
||||
func TestBoardListMatches(t *testing.T) {
|
||||
cases := []struct {
|
||||
list ticket.BoardList
|
||||
status ticket.Status
|
||||
want bool
|
||||
}{
|
||||
{ticket.BoardAll, ticket.StatusTodo, true},
|
||||
{ticket.BoardAll, ticket.StatusDone, true},
|
||||
{ticket.BoardBacklog, ticket.StatusTodo, true},
|
||||
{ticket.BoardBacklog, ticket.StatusInProgress, false},
|
||||
{ticket.BoardInProgress, ticket.StatusInProgress, true},
|
||||
{ticket.BoardDone, ticket.StatusDone, true},
|
||||
{ticket.BoardDone, ticket.StatusTodo, false},
|
||||
}
|
||||
for _, tc := range cases {
|
||||
if got := tc.list.Matches(tc.status); got != tc.want {
|
||||
t.Errorf("%s.Matches(%s) = %v, want %v", tc.list, tc.status, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestBoardListDefaultStatus(t *testing.T) {
|
||||
if ticket.BoardBacklog.DefaultStatus() != ticket.StatusTodo {
|
||||
t.Fatal("backlog default")
|
||||
}
|
||||
if ticket.BoardInProgress.DefaultStatus() != ticket.StatusInProgress {
|
||||
t.Fatal("in progress default")
|
||||
}
|
||||
if ticket.BoardDone.DefaultStatus() != ticket.StatusDone {
|
||||
t.Fatal("done default")
|
||||
}
|
||||
if ticket.BoardAll.DefaultStatus() != ticket.StatusTodo {
|
||||
t.Fatal("all default")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user