Skip to content

Commit

Permalink
backward compatible for public interface
Browse files Browse the repository at this point in the history
  • Loading branch information
tjmtmmnk committed Dec 13, 2020
1 parent e37529d commit f371c18
Show file tree
Hide file tree
Showing 7 changed files with 384 additions and 82 deletions.
4 changes: 3 additions & 1 deletion fuzzing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,10 @@ func TestFuzz(t *testing.T) {

f, term := fuzzyfinder.NewWithMockedTerminal()
events = append(events, key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))
term.SetEvents(events...)

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}
var (
iface interface{}
promptStr string
Expand Down
55 changes: 33 additions & 22 deletions fuzzyfinder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,12 @@ func TestFind(t *testing.T) {
t.Run(name, func(t *testing.T) {
events := c.events

f, term := fuzzyfinder.NewWithMockedTerminal()
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events = append(events, key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))
term.SetEvents(events...)

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}

assertWithGolden(t, func(t *testing.T) string {
_, err := f.Find(
Expand Down Expand Up @@ -213,9 +216,12 @@ func TestFind(t *testing.T) {
}

func TestFind_hotReload(t *testing.T) {
f, term := fuzzyfinder.NewWithMockedTerminal()
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events := append(runes("adrena"), keys(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone})...)
term.SetEvents(events...)

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}

var mu sync.Mutex
assertWithGolden(t, func(t *testing.T) string {
Expand Down Expand Up @@ -253,26 +259,21 @@ func TestFind_enter(t *testing.T) {
events []tcell.Event
expected int
}{
"initial": {events: keys(input{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone}), expected: 0},
"mode smart to case-sensitive": {events: append(runes("JI"), keys([]input{
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone}, // tab earn time for filter
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone},
}...)...), expected: 7},
"initial": {events: keys(input{tcell.KeyTab, rune(tcell.KeyTab), tcell.ModNone}), expected: 0},
"mode smart to case-sensitive": {events: append(runes("JI")), expected: 7},
}

for name, c := range cases {
t.Run(name, func(t *testing.T) {
c := c
events := c.events

f, term := fuzzyfinder.NewWithMockedTerminal()
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events = append(events, key(input{tcell.KeyEnter, rune(tcell.KeyEnter), tcell.ModNone}))
term.SetEvents(events...)

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}

idx, err := f.Find(
tracks,
Expand Down Expand Up @@ -340,10 +341,12 @@ func TestFindMulti(t *testing.T) {
c := c
events := c.events

f, term := fuzzyfinder.NewWithMockedTerminal()
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events = append(events, key(input{tcell.KeyEnter, rune(tcell.KeyEnter), tcell.ModNone}))
term.SetEvents(events...)

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}
idxs, err := f.FindMulti(
tracks,
func(i int) string {
Expand Down Expand Up @@ -378,8 +381,12 @@ func BenchmarkFind(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
f, term := fuzzyfinder.NewWithMockedTerminal()
term.SetEvents(append(runes("adrele!!"), key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))...)
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events := append(runes("adrele!!"), key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))
if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}

f.Find(
tracks,
func(i int) string {
Expand All @@ -399,8 +406,12 @@ func BenchmarkFind(b *testing.B) {
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
f, term := fuzzyfinder.NewWithMockedTerminal()
term.SetEvents(append(runes("adrele!!"), key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))...)
f, term := fuzzyfinder.NewWithMockedTerminalV2()
events := append(runes("adrele!!"), key(input{tcell.KeyEsc, rune(tcell.KeyEsc), tcell.ModNone}))

if !term.IsTermboxVer() {
term.SetEventsV2(events...)
}
f.Find(
&tracks,
func(i int) string {
Expand Down
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ require (
github.com/google/gofuzz v1.2.0
github.com/mattn/go-runewidth v0.0.9
github.com/micmonay/keybd_event v1.1.0
github.com/nsf/termbox-go v0.0.0-20201124104050-ed494de23a00
github.com/pkg/errors v0.9.1
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f // indirect
golang.org/x/text v0.3.3 // indirect
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/Qd
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/micmonay/keybd_event v1.1.0 h1:fQzkqiG/Siwji1Ju9NDkIb8FSFFlPU76YbJntrXdtQw=
github.com/micmonay/keybd_event v1.1.0/go.mod h1:QS2Kfz0PbPezFqMPEot+l/cK78/tHLZtZ7AbYUCRKsQ=
github.com/nsf/termbox-go v0.0.0-20201124104050-ed494de23a00 h1:Rl8NelBe+n7SuLbJyw13ho7CGWUt2BjGGKIoreCWQ/c=
github.com/nsf/termbox-go v0.0.0-20201124104050-ed494de23a00/go.mod h1:T0cTdVuOwf7pHQNtfhnEbzHbcNyCEcVU4YPpouCbVxo=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10=
Expand Down
8 changes: 8 additions & 0 deletions helper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,11 @@ func NewWithMockedTerminal() (*finder, *TerminalMock) {
m.SetSize(w, h)
return f, m
}

func NewWithMockedTerminalV2() (*finder, *TerminalMock) {
f := New()
m := f.UseMockedTerminalV2()
w, h := 60, 10 // A normally value.
m.SetSize(w, h)
return f, m
}
Loading

0 comments on commit f371c18

Please sign in to comment.