ctl accepted only 200, so the first real `ctl restart --all` printed "Error: 202 Accepted" over a request that had queued nine restarts, all of which then happened. Any 2xx is now a success, and its body is read. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
25 lines
622 B
Go
25 lines
622 B
Go
package cli
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestAQueuedChangeIsNotReportedAsAnError(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
|
|
w.WriteHeader(http.StatusAccepted)
|
|
_, _ = w.Write([]byte(`{"queued":["r1"]}`))
|
|
}))
|
|
defer srv.Close()
|
|
var out struct {
|
|
Queued []string `json:"queued"`
|
|
}
|
|
if err := newCtlClient(srv.URL).post(t.Context(), "/api/v1/restart", []byte(`{}`), &out); err != nil {
|
|
t.Fatalf("202 read as a failure: %v", err)
|
|
}
|
|
if len(out.Queued) != 1 {
|
|
t.Errorf("the body of a 202 was not read: %+v", out)
|
|
}
|
|
}
|