diff --git a/pkg/theme/gocui.go b/pkg/theme/gocui.go index 6d10f8666..101f1d889 100644 --- a/pkg/theme/gocui.go +++ b/pkg/theme/gocui.go @@ -7,18 +7,19 @@ import ( ) var gocuiColorMap = map[string]gocui.Attribute{ - "default": gocui.ColorDefault, - "black": gocui.ColorBlack, - "red": gocui.ColorRed, - "green": gocui.ColorGreen, - "yellow": gocui.ColorYellow, - "blue": gocui.ColorBlue, - "magenta": gocui.ColorMagenta, - "cyan": gocui.ColorCyan, - "white": gocui.ColorWhite, - "bold": gocui.AttrBold, - "reverse": gocui.AttrReverse, - "underline": gocui.AttrUnderline, + "default": gocui.ColorDefault, + "black": gocui.ColorBlack, + "red": gocui.ColorRed, + "green": gocui.ColorGreen, + "yellow": gocui.ColorYellow, + "blue": gocui.ColorBlue, + "magenta": gocui.ColorMagenta, + "cyan": gocui.ColorCyan, + "white": gocui.ColorWhite, + "bold": gocui.AttrBold, + "reverse": gocui.AttrReverse, + "underline": gocui.AttrUnderline, + "strikethrough": gocui.AttrStrikeThrough, } // GetGocuiAttribute gets the gocui color attribute from the string diff --git a/pkg/theme/gocui_test.go b/pkg/theme/gocui_test.go new file mode 100644 index 000000000..7610c95d5 --- /dev/null +++ b/pkg/theme/gocui_test.go @@ -0,0 +1,38 @@ +package theme + +import ( + "testing" + + "github.com/jesseduffield/lazygit/pkg/gocui" + "github.com/stretchr/testify/assert" +) + +func TestGetGocuiStyle(t *testing.T) { + scenarios := []struct { + name string + keys []string + expected gocui.Attribute + }{ + { + name: "named color", + keys: []string{"red"}, + expected: gocui.ColorRed, + }, + { + name: "named color with modifiers", + keys: []string{"red", "bold", "underline"}, + expected: gocui.ColorRed | gocui.AttrBold | gocui.AttrUnderline, + }, + { + name: "strikethrough", + keys: []string{"red", "strikethrough"}, + expected: gocui.ColorRed | gocui.AttrStrikeThrough, + }, + } + + for _, scenario := range scenarios { + t.Run(scenario.name, func(t *testing.T) { + assert.Equal(t, scenario.expected, GetGocuiStyle(scenario.keys)) + }) + } +}