1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-07-30 03:23:08 +03:00

Add search history

Add search history for filterable and searchable views.
This commit is contained in:
Karim Khaleel
2023-08-04 14:01:30 +03:00
parent ab5875c78f
commit edec116ceb
12 changed files with 270 additions and 8 deletions

View File

@ -0,0 +1,64 @@
package utils
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNewHistoryBuffer(t *testing.T) {
hb := NewHistoryBuffer[int](5)
assert.NotNil(t, hb)
assert.Equal(t, 5, hb.maxSize)
assert.Equal(t, 0, len(hb.items))
}
func TestPush(t *testing.T) {
hb := NewHistoryBuffer[int](3)
hb.Push(1)
hb.Push(2)
hb.Push(3)
hb.Push(4)
assert.Equal(t, 3, len(hb.items))
assert.Equal(t, []int{4, 3, 2}, hb.items)
}
func TestPeekAt(t *testing.T) {
hb := NewHistoryBuffer[int](3)
hb.Push(1)
hb.Push(2)
hb.Push(3)
item, err := hb.PeekAt(0)
assert.Nil(t, err)
assert.Equal(t, 3, item)
item, err = hb.PeekAt(1)
assert.Nil(t, err)
assert.Equal(t, 2, item)
item, err = hb.PeekAt(2)
assert.Nil(t, err)
assert.Equal(t, 1, item)
item, err = hb.PeekAt(-1)
assert.Nil(t, err)
assert.Equal(t, 0, item)
_, err = hb.PeekAt(3)
assert.NotNil(t, err)
assert.Equal(t, "Index out of range", err.Error())
_, err = hb.PeekAt(-2)
assert.NotNil(t, err)
assert.Equal(t, "Index out of range", err.Error())
}
func TestPeekAtEmptyBuffer(t *testing.T) {
hb := NewHistoryBuffer[int](3)
_, err := hb.PeekAt(0)
assert.NotNil(t, err)
assert.Equal(t, "Buffer is empty", err.Error())
}