ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. This is a wrapper for errors.As.
(t TestingT, err error, target interface{}, msgAndArgs ...interface{})
| 2061 | // ErrorAs asserts that at least one of the errors in err's chain matches target, and if so, sets target to that error value. |
| 2062 | // This is a wrapper for errors.As. |
| 2063 | func ErrorAs(t TestingT, err error, target interface{}, msgAndArgs ...interface{}) bool { |
| 2064 | if h, ok := t.(tHelper); ok { |
| 2065 | h.Helper() |
| 2066 | } |
| 2067 | if errors.As(err, target) { |
| 2068 | return true |
| 2069 | } |
| 2070 | |
| 2071 | chain := buildErrorChainString(err) |
| 2072 | |
| 2073 | return Fail(t, fmt.Sprintf("Should be in error chain:\n"+ |
| 2074 | "expected: %q\n"+ |
| 2075 | "in chain: %s", target, chain, |
| 2076 | ), msgAndArgs...) |
| 2077 | } |
| 2078 | |
| 2079 | func buildErrorChainString(err error) string { |
| 2080 | if err == nil { |
searching dependent graphs…