(t *testing.T)
| 30 | ) |
| 31 | |
| 32 | func TestApiStatusCodes(t *testing.T) { |
| 33 | for ix, tc := range []struct { |
| 34 | err error |
| 35 | expectedString string |
| 36 | expectedCode int |
| 37 | }{ |
| 38 | { |
| 39 | err: errors.New("some random error"), |
| 40 | expectedString: "some random error", |
| 41 | expectedCode: 500, |
| 42 | }, |
| 43 | |
| 44 | { |
| 45 | err: validation.LimitError("limit exceeded"), |
| 46 | expectedString: "limit exceeded", |
| 47 | expectedCode: 422, |
| 48 | }, |
| 49 | |
| 50 | { |
| 51 | err: validation.AccessDeniedError("access denied"), |
| 52 | expectedString: "access denied", |
| 53 | expectedCode: 422, |
| 54 | }, |
| 55 | |
| 56 | { |
| 57 | err: promql.ErrTooManySamples("query execution"), |
| 58 | expectedString: "too many samples", |
| 59 | expectedCode: 422, |
| 60 | }, |
| 61 | |
| 62 | { |
| 63 | err: promql.ErrQueryCanceled("query execution"), |
| 64 | expectedString: "query was canceled", |
| 65 | expectedCode: 499, |
| 66 | }, |
| 67 | |
| 68 | { |
| 69 | err: promql.ErrQueryTimeout("query execution"), |
| 70 | expectedString: "query timed out", |
| 71 | expectedCode: 503, |
| 72 | }, |
| 73 | |
| 74 | // Status code 400 is remapped to 422 (only choice we have) |
| 75 | { |
| 76 | err: httpgrpc.Errorf(http.StatusBadRequest, "test string"), |
| 77 | expectedString: "test string", |
| 78 | expectedCode: 422, |
| 79 | }, |
| 80 | |
| 81 | // 404 is also translated to 422 |
| 82 | { |
| 83 | err: httpgrpc.Errorf(http.StatusNotFound, "not found"), |
| 84 | expectedString: "not found", |
| 85 | expectedCode: 422, |
| 86 | }, |
| 87 | |
| 88 | { |
| 89 | err: search.NewQuota(1).Reserve(2), |
nothing calls this directly
no test coverage detected