1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-11-30 09:16:47 +02:00
lazygit/pkg/utils/utils_test.go

114 lines
1.8 KiB
Go
Raw Normal View History

package utils
2018-08-19 08:51:37 +02:00
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestSplitLines(t *testing.T) {
type scenario struct {
multilineString string
expected []string
}
scenarios := []scenario{
{
"",
[]string{},
},
{
"\n",
[]string{},
},
{
"hello world !\nhello universe !\n",
[]string{
"hello world !",
"hello universe !",
},
},
}
for _, s := range scenarios {
assert.EqualValues(t, s.expected, SplitLines(s.multilineString))
}
}
func TestWithPadding(t *testing.T) {
type scenario struct {
str string
padding int
expected string
}
scenarios := []scenario{
{
"hello world !",
1,
"hello world !",
},
{
"hello world !",
14,
"hello world ! ",
},
}
for _, s := range scenarios {
assert.EqualValues(t, s.expected, WithPadding(s.str, s.padding))
}
}
func TestTrimTrailingNewline(t *testing.T) {
type scenario struct {
str string
expected string
}
scenarios := []scenario{
{
"hello world !\n",
"hello world !",
},
{
"hello world !",
"hello world !",
},
}
for _, s := range scenarios {
assert.EqualValues(t, s.expected, TrimTrailingNewline(s.str))
}
}
var testCases = []struct {
Input []byte
Expected []byte
}{
{
// \r\n
Input: []byte{97, 115, 100, 102, 13, 10},
Expected: []byte{97, 115, 100, 102},
},
{
// \r
Input: []byte{97, 115, 100, 102, 13},
Expected: []byte{97, 115, 100, 102},
},
{
// \n
Input: []byte{97, 115, 100, 102, 10},
Expected: []byte{97, 115, 100, 102, 10},
},
}
func TestNormalizeLinefeeds(t *testing.T) {
for _, tc := range testCases {
input := NormalizeLinefeeds(string(tc.Input))
expected := string(tc.Expected)
if input != expected {
t.Error("Expected " + expected + ", got " + input)
}
}