tool for detachable ptys with optional tailscale discovery
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051package app
import ( "strings" "testing" "time"
"tobi/internal/session")
func TestScrollWindowHoldsTheCursor(t *testing.T) { for _, tc := range []struct { n, at, avail int from, to int }{ {10, 0, 4, 0, 4}, {10, 5, 4, 3, 7}, {10, 9, 4, 6, 10}, {3, 2, 4, 0, 3}, } { from, to := scrollWindow(tc.n, tc.at, tc.avail) if from != tc.from || to != tc.to { t.Errorf("scrollWindow(%d, %d, %d) = [%d,%d), want [%d,%d)", tc.n, tc.at, tc.avail, from, to, tc.from, tc.to) } }}
func TestViewWindowsLongTablesToTheCursor(t *testing.T) { m := pickerModel{width: 80, height: 10, th: newTheme(true)} for i := range 30 { m.rows = append(m.rows, hostRow{name: "host", probing: true, started: time.Now().Add(-time.Duration(i) * time.Minute)}) } m.rows = append(m.rows, hostRow{name: "zzz", sessions: []session.Session{{ID: "q", Command: "nu", Cwd: "/tmp", StartedAt: time.Now()}}}) m.cursor = 25 out := m.view() if lines := strings.Count(out, "\n") + 1; lines != m.height { t.Errorf("drew %d lines into a %d-line terminal", lines, m.height) } if !strings.Contains(out, " › host") { t.Error("the cursor row is not drawn") } if !strings.Contains(out, "31 host") { t.Error("the header host count is wrong") }
m.cursor = 31 // the session line under the last host if !strings.Contains(m.view(), " › q") { t.Error("the cursor's session line is not drawn") }}