package page import "testing" func TestMoveFocus(t *testing.T) { tests := []struct { name string current int delta int want int }{ {"down from toggle goes to device", focusToggle, 1, 1}, {"down from device goes to track", 1, 1, 2}, {"down from track stays", 2, 1, 2}, {"up from track goes to device", 2, -1, 1}, {"up from device goes to toggle", 1, -1, focusToggle}, {"up from toggle stays", focusToggle, -1, focusToggle}, {"down does not overshoot below track", maxFocus, 5, maxFocus}, {"up does not undershoot above toggle", focusToggle, -5, focusToggle}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := moveFocus(tt.current, tt.delta); got != tt.want { t.Errorf("moveFocus(%d, %d) = %d, want %d", tt.current, tt.delta, got, tt.want) } }) } }