package main import ( "context" "fmt" "io" "net/http" "net/http/httptest" "testing" ) func TestAPISessionInstanceRetryWireShape(t *testing.T) { var path, body string ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { b, _ := io.ReadAll(r.Body) path, body = r.URL.Path, string(b) w.Header().Set("Content-Type", "application/json") io.WriteString(w, `{"result":"requested","id":"r1","version":"v2","host":"a.shop.test"}`) })) defer ts.Close() res, err := newTestSession(ts.URL).instanceRetry(context.Background(), apiAcct{Seg: "bab"}, "shop", "a.shop.test") if err != nil || res.Version != "v2" || res.ID != "r1" { t.Fatalf("instanceRetry = %+v, %v", res, err) } if path != "/api/cli/apps/bab/shop/instances/a.shop.test/retry" || body != `{}` { t.Fatalf("sent %s %s", path, body) } } func TestAPISessionInstanceRetryOldConsole(t *testing.T) { ts := httptest.NewServer(http.NotFoundHandler()) defer ts.Close() _, err := newTestSession(ts.URL).instanceRetry(context.Background(), apiAcct{Seg: "bab"}, "shop", "a.shop.test") if err == nil || err.Error() != fmt.Sprintf(instancesRetryOldConsole, "shop", "a.shop.test") { t.Fatalf("err = %v", err) } }