package bot import ( "errors" "strings" "testing" ) func TestInvalidUsage(t *testing.T) { t.Run("fmt", func(t *testing.T) { err := ErrInvalidUsage{ Prefix: "!", Args: []string{"hime", "arikawa"}, Index: 1, Wrap: errors.New("test error"), } str := err.Error() if !strings.Contains(str, "test error") { t.Fatal("does not contain 'test error':", str) } if !strings.Contains(str, "__arikawa__") { t.Fatal("Unexpected highlight index:", str) } }) t.Run("missing arguments", func(t *testing.T) { err := ErrInvalidUsage{} str := err.Error() if str != "missing arguments. Refer to help." { t.Fatal("Unexpected error:", str) } }) t.Run("no index", func(t *testing.T) { err := ErrInvalidUsage{Wrap: errors.New("astolfo")} str := err.Error() if str != "invalid usage, error: astolfo." { t.Fatal("Unexpected error:", str) } }) t.Run("unwrap", func(t *testing.T) { var err = errors.New("hackadoll no. 3") var wrap = &ErrInvalidUsage{ Wrap: err, } if !errors.Is(wrap, err) { t.Fatal("Failed to unwrap, errors mismatch.") } }) }