SSE: Use errutil to show better error messages in prod (#71658)

- include public message
- propagate data source query errors so they are shown as well to which fixes #70026
This commit is contained in:
Kyle Brandt
2023-07-21 06:38:29 -04:00
committed by GitHub
parent eea18d6741
commit 1df4d332c9
8 changed files with 104 additions and 71 deletions
+4 -13
View File
@@ -26,28 +26,19 @@ func (e expectedError) Error() string {
}
func TestQueryError_Error(t *testing.T) {
e := QueryError{
RefID: "A",
Err: errors.New("this is an error message"),
}
assert.EqualError(t, e, "failed to execute query A: this is an error message")
e := MakeQueryError("A", "", errors.New("this is an error message"))
assert.EqualError(t, e, "[sse.dataQueryError] failed to execute query [A]: this is an error message")
}
func TestQueryError_Unwrap(t *testing.T) {
t.Run("errors.Is", func(t *testing.T) {
expectedIsErr := errors.New("expected")
e := QueryError{
RefID: "A",
Err: expectedIsErr,
}
e := MakeQueryError("A", "", expectedIsErr)
assert.True(t, errors.Is(e, expectedIsErr))
})
t.Run("errors.As", func(t *testing.T) {
e := QueryError{
RefID: "A",
Err: expectedError{},
}
e := MakeQueryError("A", "", expectedError{})
var expectedAsError expectedError
assert.True(t, errors.As(e, &expectedAsError))
})