(t *testing.T, handler func(http.ResponseWriter, *http.Request))
| 1048 | } |
| 1049 | |
| 1050 | func newGitHubServer(t *testing.T, handler func(http.ResponseWriter, *http.Request)) *httptest.Server { |
| 1051 | t.Helper() |
| 1052 | |
| 1053 | var server *httptest.Server |
| 1054 | server = httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) { |
| 1055 | recorder := httptest.NewRecorder() |
| 1056 | handler(recorder, request) |
| 1057 | response := recorder.Result() |
| 1058 | defer func() { |
| 1059 | if err := response.Body.Close(); err != nil { |
| 1060 | t.Fatalf("response.Body.Close() error = %v", err) |
| 1061 | } |
| 1062 | }() |
| 1063 | |
| 1064 | for key, values := range response.Header { |
| 1065 | for _, value := range values { |
| 1066 | writer.Header().Add(key, value) |
| 1067 | } |
| 1068 | } |
| 1069 | writer.WriteHeader(response.StatusCode) |
| 1070 | |
| 1071 | payload, err := io.ReadAll(response.Body) |
| 1072 | if err != nil { |
| 1073 | t.Fatalf("io.ReadAll(response.Body) error = %v", err) |
| 1074 | } |
| 1075 | payload = bytes.ReplaceAll(payload, []byte(serverURLPlaceholder), []byte(server.URL)) |
| 1076 | _, _ = writer.Write(payload) |
| 1077 | })) |
| 1078 | return server |
| 1079 | } |
| 1080 | |
| 1081 | func writeJSON(writer http.ResponseWriter, body string) { |
| 1082 | writer.Header().Set("Content-Type", "application/json") |
no test coverage detected