File size: 859 Bytes
6a7089a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package actions
import (
"io"
"net/http"
"net/http/httptest"
)
type mockServer struct {
server *httptest.Server
lastMethod string
lastPath string
lastQuery string
lastBody string
lastHeaders http.Header
response string
statusCode int
}
func newMockServer() *mockServer {
m := &mockServer{statusCode: 200, response: `{"status":"ok"}`}
m.server = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
m.lastMethod = r.Method
m.lastPath = r.URL.Path
m.lastQuery = r.URL.RawQuery
m.lastHeaders = r.Header
if r.Body != nil {
body, _ := io.ReadAll(r.Body)
m.lastBody = string(body)
}
w.WriteHeader(m.statusCode)
_, _ = w.Write([]byte(m.response))
}))
return m
}
func (m *mockServer) close() { m.server.Close() }
func (m *mockServer) base() string { return m.server.URL }
|