/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/gocui/tcell_driver_test.go
57 строк
2 KB
Stefan Haller
Deliver mouse release after a drag
31 июл 2026, 09:22
31 июл 2026, 09:22
44a2bbe
Код
Авторство
О чём код?
package gocui import ( "testing" "github.com/gdamore/tcell/v3" "github.com/stretchr/testify/assert" ) func TestFirstMouseMovementAfterPressIsDragEvent(t *testing.T) { t.Cleanup(resetMouseState) resetMouseState() pressEvent := gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 2, tcell.ButtonPrimary, tcell.ModNone)) unchangedHeldEvent := gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 2, tcell.ButtonPrimary, tcell.ModNone)) dragEvent := gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 3, tcell.ButtonPrimary, tcell.ModNone)) assert.Equal(t, eventMouse, pressEvent.Type) assert.Equal(t, MouseLeft, pressEvent.Key.KeyName()) assert.Equal(t, ModNone, pressEvent.Key.Mod()) assert.Equal(t, eventNone, unchangedHeldEvent.Type) assert.Equal(t, eventMouse, dragEvent.Type) assert.Equal(t, MouseLeft, dragEvent.Key.KeyName()) assert.Equal(t, ModMotion, dragEvent.Key.Mod()) } func TestMouseReleaseAfterDragIsMouseEvent(t *testing.T) { t.Cleanup(resetMouseState) resetMouseState() gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 2, tcell.ButtonPrimary, tcell.ModNone)) gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 3, tcell.ButtonPrimary, tcell.ModNone)) releaseEvent := gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 3, tcell.ButtonNone, tcell.ModNone)) assert.Equal(t, eventMouse, releaseEvent.Type) assert.Equal(t, MouseRelease, releaseEvent.Key.KeyName()) } func TestMouseReleaseDoesNotKeepPressModifiers(t *testing.T) { t.Cleanup(resetMouseState) resetMouseState() gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 2, tcell.ButtonPrimary, tcell.ModAlt)) gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 3, tcell.ButtonPrimary, tcell.ModAlt)) releaseEvent := gocuiEventFromTcellEvent(tcell.NewEventMouse(1, 3, tcell.ButtonNone, tcell.ModAlt)) assert.Equal(t, eventMouse, releaseEvent.Type) assert.Equal(t, MouseRelease, releaseEvent.Key.KeyName()) assert.Equal(t, ModNone, releaseEvent.Key.Mod()) } func resetMouseState() { lastMouseKey = tcell.ButtonNone dragState = NOT_DRAGGING lastX = 0 lastY = 0 }