added more strategies
This commit is contained in:
19
lvl/lvl.go
19
lvl/lvl.go
@ -22,23 +22,8 @@ func (l Level) String() string {
|
||||
return "Error"
|
||||
}
|
||||
return "Undefined"
|
||||
|
||||
}
|
||||
|
||||
// Colorize colors a string for the shell matching to its level
|
||||
func (l Level) Colorize(str string) string {
|
||||
var color string
|
||||
|
||||
switch l {
|
||||
case Debug:
|
||||
color = "\033[32m" // green
|
||||
case Info:
|
||||
color = "\033[97m" // white
|
||||
case Warn:
|
||||
color = "\033[33m" // yellow
|
||||
case Error:
|
||||
color = "\033[31m" // red
|
||||
}
|
||||
return color + str + "\033[0m"
|
||||
|
||||
func (l Level) MarshalJSON() ([]byte, error) {
|
||||
return []byte("\"" + l.String() + "\""), nil
|
||||
}
|
||||
|
@ -36,25 +36,38 @@ func TestString(t *testing.T) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestColor(t *testing.T) {
|
||||
testCases := []struct {
|
||||
level Level
|
||||
message string
|
||||
expected string
|
||||
func TestMarshalJSON(t *testing.T) {
|
||||
cases := []struct {
|
||||
l Level
|
||||
e string
|
||||
}{
|
||||
{Debug, "Debug message", "\033[32mDebug message\033[0m"},
|
||||
{Info, "Info message", "\033[97mInfo message\033[0m"},
|
||||
{Warn, "Warning message", "\033[33mWarning message\033[0m"},
|
||||
{Error, "Error message", "\033[31mError message\033[0m"},
|
||||
{
|
||||
l: Debug,
|
||||
e: `"Debug"`,
|
||||
},
|
||||
{
|
||||
l: Info,
|
||||
e: `"Info"`,
|
||||
},
|
||||
{
|
||||
l: Warn,
|
||||
e: `"Warn"`,
|
||||
},
|
||||
{
|
||||
l: Error,
|
||||
e: `"Error"`,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
coloredMessage := tc.level.Colorize(tc.message)
|
||||
if coloredMessage != tc.expected {
|
||||
t.Errorf("For level %v, expected '%v', but got '%v'", tc.level, tc.expected, coloredMessage)
|
||||
}
|
||||
for _, c := range cases {
|
||||
t.Run(c.e, func(t *testing.T) {
|
||||
res, _ := c.l.MarshalJSON()
|
||||
|
||||
if string(res) != c.e {
|
||||
t.Errorf("Expected %s but got %s", c.e, res)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user