/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/gocui/scrollbar_test.go
114 строк
3 KB
Stefan Haller
Copy gocui files into lazygit repo under pkg/gocui
30 апр 2026, 15:29
30 апр 2026, 15:29
196e0a3
Код
Авторство
О чём код?
package gocui import "testing" func TestCalcScrollbar(t *testing.T) { tests := []struct { testName string listSize int pageSize int position int scrollAreaSize int expectedStart int expectedHeight int }{ { testName: "page size greater than list size", listSize: 5, pageSize: 10, position: 0, scrollAreaSize: 20, expectedStart: 0, expectedHeight: 20, }, { testName: "page size matches list size", listSize: 10, pageSize: 10, position: 0, scrollAreaSize: 20, expectedStart: 0, expectedHeight: 20, }, { testName: "page size half of list size", listSize: 10, pageSize: 5, position: 0, scrollAreaSize: 20, expectedStart: 0, expectedHeight: 10, }, { testName: "page size half of list size at scroll end", listSize: 10, pageSize: 5, position: 5, scrollAreaSize: 20, expectedStart: 10, expectedHeight: 10, }, { testName: "page size third of list size having scrolled half the way", listSize: 15, // Recall that my max position is listSize - pageSize i.e 15 - 5 i.e. 10. // So if I've scrolled to position 5 that means I've done one page and I've got // one page to go which means by scrollbar should take up a third of the available // space and appear in the centre of the scrollbar area pageSize: 5, position: 5, scrollAreaSize: 21, expectedStart: 7, expectedHeight: 7, }, { testName: "page size third of list size having scrolled the full way", listSize: 15, pageSize: 5, position: 10, scrollAreaSize: 21, expectedStart: 14, expectedHeight: 7, }, { testName: "page size third of list size having scrolled by one", listSize: 15, pageSize: 5, position: 1, scrollAreaSize: 21, expectedStart: 2, expectedHeight: 7, }, { testName: "page size third of list size having scrolled up from the bottom by one", listSize: 15, pageSize: 5, position: 9, scrollAreaSize: 21, expectedStart: 12, expectedHeight: 7, }, } for _, test := range tests { t.Run(test.testName, func(t *testing.T) { start, height := calcScrollbar(test.listSize, test.pageSize, test.position, test.scrollAreaSize) if start != test.expectedStart { t.Errorf("expected start to be %d, got %d", test.expectedStart, start) } if height != test.expectedHeight { t.Errorf("expected height to be %d, got %d", test.expectedHeight, height) } }) } }