package lvl import ( "testing" ) func TestString(t *testing.T) { cases := []struct { l Level e string }{ { l: Debug, e: "Debug", }, { l: Info, e: "Info", }, { l: Warn, e: "Warn", }, { l: Error, e: "Error", }, } for _, c := range cases { t.Run(c.e, func(t *testing.T) { s := c.l.String() if s != c.e { t.Errorf("Expected %s but got %s", c.e, s) } }) } } func TestColor(t *testing.T) { testCases := []struct { level Level message string expected 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"}, } 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) } } }