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>
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
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")
|
|
}
|
|
}
|