30 lines
826 B
Go
30 lines
826 B
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|