@@ -55,8 +55,13 @@ func TestFuzzyFind_Draw(t *testing.T) {
55
55
}
56
56
57
57
func TestFuzzyFind_HandleKeyEvent (t * testing.T ) {
58
+ screen := tcell .NewSimulationScreen ("utf-8" )
59
+ _ = screen .Init () //nolint:errcheck
60
+ CreateNewAppWithScreen (screen )
61
+
58
62
type args struct {
59
- ev []* tcell.EventKey
63
+ ev []* tcell.EventKey
64
+ expectedSelection int
60
65
}
61
66
tests := []struct {
62
67
name string
@@ -67,13 +72,20 @@ func TestFuzzyFind_HandleKeyEvent(t *testing.T) {
67
72
tcell .NewEventKey (tcell .KeyUp , 0 , tcell .ModNone ),
68
73
tcell .NewEventKey (tcell .KeyUp , 0 , tcell .ModNone ),
69
74
tcell .NewEventKey (tcell .KeyDown , 0 , tcell .ModNone ),
70
- }}},
75
+ }, expectedSelection : 2 }},
71
76
{"should go up, and go down using tab/tab-shift" , args {ev : []* tcell.EventKey {
72
77
tcell .NewEventKey (tcell .KeyTab , 0 , tcell .ModNone ),
73
78
tcell .NewEventKey (tcell .KeyTab , 0 , tcell .ModNone ),
74
79
tcell .NewEventKey (tcell .KeyTab , 0 , tcell .ModNone ),
75
80
tcell .NewEventKey (tcell .KeyBacktab , 0 , tcell .ModNone ),
76
- }}},
81
+ }, expectedSelection : 2 }},
82
+ {"should go up with page up" , args {ev : []* tcell.EventKey {
83
+ tcell .NewEventKey (tcell .KeyPgUp , 0 , tcell .ModNone ),
84
+ }, expectedSelection : 3 }},
85
+ {"should go down with page down" , args {ev : []* tcell.EventKey {
86
+ tcell .NewEventKey (tcell .KeyPgUp , 0 , tcell .ModNone ),
87
+ tcell .NewEventKey (tcell .KeyPgDn , 0 , tcell .ModNone ),
88
+ }, expectedSelection : 0 }},
77
89
}
78
90
for _ , tt := range tests {
79
91
t .Run (tt .name , func (t * testing.T ) {
@@ -88,7 +100,7 @@ func TestFuzzyFind_HandleKeyEvent(t *testing.T) {
88
100
}
89
101
90
102
// then
91
- assert .Equal (t , 2 , fuzzyFind .selected )
103
+ assert .Equal (t , tt . args . expectedSelection , fuzzyFind .selected )
92
104
})
93
105
}
94
106
}
0 commit comments