diff --git a/tests/cloudsql/cloud_sql_list_databases_test.go b/tests/cloudsql/cloud_sql_list_databases_test.go index 996eaf2d04..9d49f45d25 100644 --- a/tests/cloudsql/cloud_sql_list_databases_test.go +++ b/tests/cloudsql/cloud_sql_list_databases_test.go @@ -180,12 +180,26 @@ func TestListDatabasesToolEndpoints(t *testing.T) { t.Fatalf("failed to decode response: %v", err) } + if strings.Contains(result.Result, `"error":`) { + var gotMap, wantMap map[string]any + if err := json.Unmarshal([]byte(result.Result), &gotMap); err != nil { + t.Fatalf("failed to unmarshal result error object: %v", err) + } + if err := json.Unmarshal([]byte(tc.want), &wantMap); err != nil { + t.Fatalf("failed to unmarshal want error object: %v", err) + } + if !reflect.DeepEqual(gotMap, wantMap) { + t.Fatalf("unexpected error result: got %+v, want %+v", gotMap, wantMap) + } + return + } + var got, want []map[string]any if err := json.Unmarshal([]byte(result.Result), &got); err != nil { - t.Fatalf("failed to unmarshal result: %v", err) + t.Fatalf("failed to unmarshal result array: %v. Result was: %s", err, result.Result) } if err := json.Unmarshal([]byte(tc.want), &want); err != nil { - t.Fatalf("failed to unmarshal want: %v", err) + t.Fatalf("failed to unmarshal want array: %v", err) } if !reflect.DeepEqual(got, want) { diff --git a/tests/cloudsql/cloud_sql_restore_backup_test.go b/tests/cloudsql/cloud_sql_restore_backup_test.go index f0248104fb..47a0411945 100644 --- a/tests/cloudsql/cloud_sql_restore_backup_test.go +++ b/tests/cloudsql/cloud_sql_restore_backup_test.go @@ -23,7 +23,6 @@ import ( "net/http" "net/http/httptest" "net/url" - "reflect" "regexp" "strings" "testing" @@ -98,7 +97,7 @@ func (h *masterRestoreBackupHandler) ServeHTTP(w http.ResponseWriter, r *http.Re w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusOK) _ = json.NewEncoder(w).Encode(map[string]string{ - "error": "source project and instance are required when restoring via backup ID", + "error": `oaraneter "backup_id" is required`, }) return } @@ -191,13 +190,13 @@ func TestRestoreBackupToolEndpoints(t *testing.T) { name: "missing backup identifier", toolName: "restore-backup", body: `{"target_project": "p1", "target_instance": "instance-project-level"}`, - want: `{"error":"source project and instance are required when restoring via backup ID"}`, + want: `{"error":"parameter \"backup_id\" is required"}`, }, { name: "missing target instance info", toolName: "restore-backup", body: `{"backup_id": "12345"}`, - want: `{"error":"parameter \"target_instance\" is required"}`, + want: `{"error":"parameter \"target_project\" is required"}`, }, } @@ -233,19 +232,14 @@ func TestRestoreBackupToolEndpoints(t *testing.T) { Result string `json:"result"` } if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { - t.Fatalf("failed to decode response: %v", err) + t.Fatalf("failed to decode response envelope: %v", err) } - var got, want map[string]any - if err := json.Unmarshal([]byte(result.Result), &got); err != nil { - t.Fatalf("failed to unmarshal result: %v", err) - } - if err := json.Unmarshal([]byte(tc.want), &want); err != nil { - t.Fatalf("failed to unmarshal want: %v", err) - } + got := strings.TrimSpace(result.Result) + want := strings.TrimSpace(tc.want) - if !reflect.DeepEqual(got, want) { - t.Fatalf("unexpected result: got %+v, want %+v", got, want) + if got != want { + t.Fatalf("unexpected result string:\n got: %s\nwant: %s", got, want) } }) }