mirror of
https://github.com/SecurityBrewery/catalyst.git
synced 2025-12-23 15:33:13 +01:00
56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package testing
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
type RecordingServer struct {
|
|
server chi.Router
|
|
|
|
Entries []string
|
|
}
|
|
|
|
func NewRecordingServer() *RecordingServer {
|
|
e := chi.NewRouter()
|
|
|
|
e.Get("/health", func(w http.ResponseWriter, _ *http.Request) {
|
|
b, err := json.Marshal(map[string]any{
|
|
"status": "ok",
|
|
})
|
|
if err != nil {
|
|
http.Error(w, "failed to marshal response", http.StatusInternalServerError)
|
|
|
|
return
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
|
|
_, _ = w.Write(b)
|
|
})
|
|
e.HandleFunc("/*", func(w http.ResponseWriter, _ *http.Request) {
|
|
b, err := json.Marshal(map[string]any{
|
|
"test": true,
|
|
})
|
|
if err != nil {
|
|
http.Error(w, "failed to marshal response", http.StatusInternalServerError)
|
|
|
|
return
|
|
}
|
|
|
|
w.Header().Set("Content-Type", "application/json; charset=UTF-8")
|
|
_, _ = w.Write(b)
|
|
})
|
|
|
|
return &RecordingServer{
|
|
server: e,
|
|
}
|
|
}
|
|
|
|
func (s *RecordingServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
s.Entries = append(s.Entries, r.URL.Path)
|
|
|
|
s.server.ServeHTTP(w, r)
|
|
}
|