| package testutil |
| |
| import ( |
| "strings" |
| "unicode" |
| |
| "github.com/stretchr/testify/assert" |
| "github.com/stretchr/testify/require" |
| ) |
| |
| // ErrorContains checks that the error is not nil, and contains the expected |
| // substring. |
| func ErrorContains(t require.TestingT, err error, expectedError string) { |
| require.Error(t, err) |
| assert.Contains(t, err.Error(), expectedError) |
| } |
| |
| // EqualNormalizedString compare the actual value to the expected value after applying the specified |
| // transform function. It fails the test if these two transformed string are not equal. |
| // For example `EqualNormalizedString(t, RemoveSpace, "foo\n", "foo")` wouldn't fail the test as |
| // spaces (and thus '\n') are removed before comparing the string. |
| func EqualNormalizedString(t require.TestingT, transformFun func(rune) rune, actual, expected string) { |
| require.Equal(t, strings.Map(transformFun, expected), strings.Map(transformFun, actual)) |
| } |
| |
| // RemoveSpace returns -1 if the specified runes is considered as a space (unicode) |
| // and the rune itself otherwise. |
| func RemoveSpace(r rune) rune { |
| if unicode.IsSpace(r) { |
| return -1 |
| } |
| return r |
| } |