/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/utils/io_test.go
57 строк
1 KB
Stefan Haller
Fix ForEachLineInFile to not lose the last line if it doesn't end with a LF
09 окт 2024, 16:37
09 окт 2024, 16:37
696e78f
Код
Авторство
О чём код?
package utils import ( "strings" "testing" "github.com/stretchr/testify/assert" ) func Test_forEachLineInStream(t *testing.T) { scenarios := []struct { name string input string expectedLines []string }{ { name: "empty input", input: "", expectedLines: []string{}, }, { name: "single line", input: "abc\n", expectedLines: []string{"abc\n"}, }, { name: "single line without line feed", input: "abc", expectedLines: []string{"abc"}, }, { name: "multiple lines", input: "abc\ndef\n", expectedLines: []string{"abc\n", "def\n"}, }, { name: "multiple lines including empty lines", input: "abc\n\ndef\n", expectedLines: []string{"abc\n", "\n", "def\n"}, }, { name: "multiple lines without linefeed at end of file", input: "abc\ndef\nghi", expectedLines: []string{"abc\n", "def\n", "ghi"}, }, } for _, s := range scenarios { t.Run(s.name, func(t *testing.T) { lines := []string{} forEachLineInStream(strings.NewReader(s.input), func(line string, i int) { lines = append(lines, line) }) assert.EqualValues(t, s.expectedLines, lines) }) } }