(t *testing.T)
| 1222 | } |
| 1223 | |
| 1224 | func TestRequestRespond(t *testing.T) { |
| 1225 | type x struct { |
| 1226 | A string `json:"a"` |
| 1227 | B int `json:"b"` |
| 1228 | } |
| 1229 | |
| 1230 | tests := []struct { |
| 1231 | name string |
| 1232 | respondData any |
| 1233 | respondHeaders micro.Headers |
| 1234 | errDescription string |
| 1235 | errCode string |
| 1236 | errData []byte |
| 1237 | expectedMessage string |
| 1238 | expectedCode string |
| 1239 | expectedResponse []byte |
| 1240 | withRespondError error |
| 1241 | }{ |
| 1242 | { |
| 1243 | name: "byte response", |
| 1244 | respondData: []byte("OK"), |
| 1245 | expectedResponse: []byte("OK"), |
| 1246 | }, |
| 1247 | { |
| 1248 | name: "byte response, with headers", |
| 1249 | respondHeaders: micro.Headers{"key": []string{"value"}}, |
| 1250 | respondData: []byte("OK"), |
| 1251 | expectedResponse: []byte("OK"), |
| 1252 | }, |
| 1253 | { |
| 1254 | name: "byte response, connection closed", |
| 1255 | respondData: []byte("OK"), |
| 1256 | withRespondError: micro.ErrRespond, |
| 1257 | }, |
| 1258 | { |
| 1259 | name: "struct response", |
| 1260 | respondData: x{"abc", 5}, |
| 1261 | expectedResponse: []byte(`{"a":"abc","b":5}`), |
| 1262 | }, |
| 1263 | { |
| 1264 | name: "invalid response data", |
| 1265 | respondData: func() {}, |
| 1266 | withRespondError: micro.ErrMarshalResponse, |
| 1267 | }, |
| 1268 | { |
| 1269 | name: "generic error", |
| 1270 | errDescription: "oops", |
| 1271 | errCode: "500", |
| 1272 | errData: []byte("error!"), |
| 1273 | expectedMessage: "oops", |
| 1274 | expectedCode: "500", |
| 1275 | }, |
| 1276 | { |
| 1277 | name: "generic error, with headers", |
| 1278 | respondHeaders: micro.Headers{"key": []string{"value"}}, |
| 1279 | errDescription: "oops", |
| 1280 | errCode: "500", |
| 1281 | errData: []byte("error!"), |
nothing calls this directly
no test coverage detected