diff --git a/tests/alloydb/alloydb_integration_test.go b/tests/alloydb/alloydb_integration_test.go index a89e1c23b0..9677518c45 100644 --- a/tests/alloydb/alloydb_integration_test.go +++ b/tests/alloydb/alloydb_integration_test.go @@ -402,7 +402,7 @@ func runAlloyDBListClustersTest(t *testing.T, vars map[string]string) { { name: "list clusters missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s"}`, vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list clusters non-existent location", @@ -417,12 +417,12 @@ func runAlloyDBListClustersTest(t *testing.T, vars map[string]string) { { name: "list clusters empty project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "", "location": "%s"}`, vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list clusters empty location", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": ""}`, vars["project"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } @@ -499,17 +499,17 @@ func runAlloyDBListUsersTest(t *testing.T, vars map[string]string) { { name: "list users missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s", "cluster": "%s"}`, vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list users missing location", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "cluster": "%s"}`, vars["project"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list users missing cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s"}`, vars["project"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list users non-existent project", @@ -524,7 +524,7 @@ func runAlloyDBListUsersTest(t *testing.T, vars map[string]string) { { name: "list users non-existent cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "non-existent-cluster"}`, vars["project"], vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } @@ -636,7 +636,7 @@ func runAlloyDBListInstancesTest(t *testing.T, vars map[string]string) { { name: "list instances missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s", "cluster": "%s"}`, vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "list instances non-existent project", @@ -651,7 +651,7 @@ func runAlloyDBListInstancesTest(t *testing.T, vars map[string]string) { { name: "list instances non-existent cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "non-existent-cluster"}`, vars["project"], vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } @@ -725,22 +725,22 @@ func runAlloyDBGetClusterTest(t *testing.T, vars map[string]string) { { name: "get cluster missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s", "cluster": "%s"}`, vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get cluster missing location", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "cluster": "%s"}`, vars["project"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get cluster missing cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s"}`, vars["project"], vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get cluster non-existent cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "non-existent-cluster"}`, vars["project"], vars["location"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } @@ -815,27 +815,27 @@ func runAlloyDBGetInstanceTest(t *testing.T, vars map[string]string) { { name: "get instance missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s", "cluster": "%s", "instance": "%s"}`, vars["location"], vars["cluster"], vars["instance"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get instance missing location", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "cluster": "%s", "instance": "%s"}`, vars["project"], vars["cluster"], vars["instance"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get instance missing cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "instance": "%s"}`, vars["project"], vars["location"], vars["instance"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get instance missing instance", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "%s"}`, vars["project"], vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get instance non-existent instance", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "%s", "instance": "non-existent-instance"}`, vars["project"], vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } @@ -910,27 +910,27 @@ func runAlloyDBGetUserTest(t *testing.T, vars map[string]string) { { name: "get user missing project", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"location": "%s", "cluster": "%s", "user": "%s"}`, vars["location"], vars["cluster"], vars["user"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get user missing location", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "cluster": "%s", "user": "%s"}`, vars["project"], vars["cluster"], vars["user"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get user missing cluster", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "user": "%s"}`, vars["project"], vars["location"], vars["user"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get user missing user", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "%s"}`, vars["project"], vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "get non-existent user", requestBody: bytes.NewBufferString(fmt.Sprintf(`{"project": "%s", "location": "%s", "cluster": "%s", "user": "non-existent-user"}`, vars["project"], vars["location"], vars["cluster"])), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, } diff --git a/tests/cloudsql/cloud_sql_clone_instance_test.go b/tests/cloudsql/cloud_sql_clone_instance_test.go index 024c24d153..ac504b2a98 100644 --- a/tests/cloudsql/cloud_sql_clone_instance_test.go +++ b/tests/cloudsql/cloud_sql_clone_instance_test.go @@ -169,11 +169,10 @@ func TestCloneInstanceToolEndpoints(t *testing.T) { want: `{"name":"op2","status":"PENDING"}`, }, { - name: "missing destination instance name", - toolName: "clone-instance", - body: `{"project": "p1", "sourceInstanceName": "source-instance"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing destination instance name", + toolName: "clone-instance", + body: `{"project": "p1", "sourceInstanceName": "source-instance"}`, + want: `{"error":"parameter \"destinationInstanceName\" is required"}`, }, } diff --git a/tests/cloudsql/cloud_sql_create_backup_test.go b/tests/cloudsql/cloud_sql_create_backup_test.go index daebe9a732..7155e5e964 100644 --- a/tests/cloudsql/cloud_sql_create_backup_test.go +++ b/tests/cloudsql/cloud_sql_create_backup_test.go @@ -158,11 +158,10 @@ func TestCreateBackupToolEndpoints(t *testing.T) { want: `{"name":"op1","status":"PENDING"}`, }, { - name: "missing instance name", - toolName: "create-backup", - body: `{"project": "p1", "escription": "invalid"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing instance name", + toolName: "create-backup", + body: `{"project": "p1", "escription": "invalid"}`, + want: `{"error":"parameter \"instance\" is required"}`, }, } diff --git a/tests/cloudsql/cloud_sql_create_database_test.go b/tests/cloudsql/cloud_sql_create_database_test.go index c68d7dfb12..a9ef3ff2fb 100644 --- a/tests/cloudsql/cloud_sql_create_database_test.go +++ b/tests/cloudsql/cloud_sql_create_database_test.go @@ -155,11 +155,10 @@ func TestCreateDatabaseToolEndpoints(t *testing.T) { want: `{"name":"op1","status":"PENDING"}`, }, { - name: "missing name", - toolName: "create-database", - body: `{"project": "p1", "instance": "i1"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing name", + toolName: "create-database", + body: `{"project": "p1", "instance": "i1"}`, + want: `{"error":"parameter \"name\" is required"}`, }, } diff --git a/tests/cloudsql/cloud_sql_list_databases_test.go b/tests/cloudsql/cloud_sql_list_databases_test.go index 34719d2b03..996eaf2d04 100644 --- a/tests/cloudsql/cloud_sql_list_databases_test.go +++ b/tests/cloudsql/cloud_sql_list_databases_test.go @@ -138,11 +138,10 @@ func TestListDatabasesToolEndpoints(t *testing.T) { want: `[{"name":"db1","charset":"utf8","collation":"utf8_general_ci"},{"name":"db2","charset":"utf8mb4","collation":"utf8mb4_unicode_ci"}]`, }, { - name: "missing instance", - toolName: "list-databases", - body: `{"project": "p1"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing instance", + toolName: "list-databases", + body: `{"project": "p1"}`, + want: `{"error":"parameter \"instance\" is required"}`, }, } diff --git a/tests/cloudsql/cloud_sql_restore_backup_test.go b/tests/cloudsql/cloud_sql_restore_backup_test.go index f1d634809e..f0248104fb 100644 --- a/tests/cloudsql/cloud_sql_restore_backup_test.go +++ b/tests/cloudsql/cloud_sql_restore_backup_test.go @@ -188,18 +188,16 @@ func TestRestoreBackupToolEndpoints(t *testing.T) { want: `{"error":"error processing GCP request: source project and instance are required when restoring via backup ID"}`, }, { - name: "missing backup identifier", - toolName: "restore-backup", - body: `{"target_project": "p1", "target_instance": "instance-project-level"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + 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"}`, }, { - name: "missing target instance info", - toolName: "restore-backup", - body: `{"backup_id": "12345"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing target instance info", + toolName: "restore-backup", + body: `{"backup_id": "12345"}`, + want: `{"error":"parameter \"target_instance\" is required"}`, }, } diff --git a/tests/cloudsqlmssql/cloud_sql_mssql_create_instance_integration_test.go b/tests/cloudsqlmssql/cloud_sql_mssql_create_instance_integration_test.go index f468869656..4ae8c0a7e9 100644 --- a/tests/cloudsqlmssql/cloud_sql_mssql_create_instance_integration_test.go +++ b/tests/cloudsqlmssql/cloud_sql_mssql_create_instance_integration_test.go @@ -198,11 +198,10 @@ func TestCreateInstanceToolEndpoints(t *testing.T) { want: `{"name":"op2","status":"RUNNING"}`, }, { - name: "missing required parameter", - toolName: "create-instance-prod", - body: `{"name": "instance1"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing required parameter", + toolName: "create-instance-prod", + body: `{"name": "instance1"}`, + want: `{"error":"parameter \"project\" is required"}`, }, } diff --git a/tests/cloudsqlmysql/cloud_sql_mysql_create_instance_integration_test.go b/tests/cloudsqlmysql/cloud_sql_mysql_create_instance_integration_test.go index 4af92f7648..45975103aa 100644 --- a/tests/cloudsqlmysql/cloud_sql_mysql_create_instance_integration_test.go +++ b/tests/cloudsqlmysql/cloud_sql_mysql_create_instance_integration_test.go @@ -199,11 +199,10 @@ func TestCreateInstanceToolEndpoints(t *testing.T) { want: `{"name":"op2","status":"RUNNING"}`, }, { - name: "missing required parameter", - toolName: "create-instance-prod", - body: `{"name": "instance1"}`, - expectError: true, - errorStatus: http.StatusBadRequest, + name: "missing required parameter", + toolName: "create-instance-prod", + body: `{"name": "instance1"}`, + want: `{"error":"parameter \"project\" is required"}`, }, } diff --git a/tests/cloudsqlpg/cloud_sql_pg_upgrade_precheck_test.go b/tests/cloudsqlpg/cloud_sql_pg_upgrade_precheck_test.go index 881e4bee15..dd47981236 100644 --- a/tests/cloudsqlpg/cloud_sql_pg_upgrade_precheck_test.go +++ b/tests/cloudsqlpg/cloud_sql_pg_upgrade_precheck_test.go @@ -273,28 +273,22 @@ func TestPreCheckToolEndpoints(t *testing.T) { want: `{"preCheckResponse":[{"actionsRequired":["Fix this now."],"type":"","message":"This is a critical error.","messageType":"ERROR"}]}`, }, { - name: "instance not found", - toolName: "precheck-tool", - body: `{"project": "p1", "instance": "instance-notfound", "targetDatabaseVersion": "POSTGRES_18"}`, - expectError: true, - errorStatus: http.StatusBadRequest, - errorMsg: "Not authorized to access instance", + name: "instance not found", + toolName: "precheck-tool", + body: `{"project": "p1", "instance": "instance-notfound", "targetDatabaseVersion": "POSTGRES_18"}`, + want: `{"error":"Not authorized to access instance"}`, }, { - name: "missing required parameter - project", - toolName: "precheck-tool", - body: `{"instance": "instance-ok", "targetDatabaseVersion": "POSTGRES_18"}`, - expectError: true, - errorStatus: http.StatusBadRequest, - errorMsg: "parameter \\\"project\\\" is required", + name: "missing required parameter - project", + toolName: "precheck-tool", + body: `{"instance": "instance-ok", "targetDatabaseVersion": "POSTGRES_18"}`, + want: `{"error":"parameter \"project\" is required"}`, }, { - name: "missing required parameter - instance", - toolName: "precheck-tool", - body: `{"project": "p1", "targetDatabaseVersion": "POSTGRES_18"}`, // Missing instance - expectError: true, - errorStatus: http.StatusBadRequest, - errorMsg: "parameter \\\"instance\\\" is required", + name: "missing required parameter - instance", + toolName: "precheck-tool", + body: `{"project": "p1", "targetDatabaseVersion": "POSTGRES_18"}`, // Missing instance + want: `{"error":"parameter \"instance\" is required"}`, }, { name: "missing parameter - targetDatabaseVersion", diff --git a/tests/serverlessspark/serverless_spark_integration_test.go b/tests/serverlessspark/serverless_spark_integration_test.go index abe8c29f42..38c2dcee19 100644 --- a/tests/serverlessspark/serverless_spark_integration_test.go +++ b/tests/serverlessspark/serverless_spark_integration_test.go @@ -529,8 +529,8 @@ func TestServerlessSparkToolEndpoints(t *testing.T) { name: "missing op parameter", toolName: "cancel-batch", request: map[string]any{}, - wantCode: http.StatusBadRequest, - wantMsg: "parameter \\\"operation\\\" is required", + wantCode: http.StatusOK, + wantMsg: `{"error":"parameter \"operation\" is required"}`, }, { name: "nonexistent op", diff --git a/tests/tool.go b/tests/tool.go index 7b525b1e10..d8e618aeda 100644 --- a/tests/tool.go +++ b/tests/tool.go @@ -1172,13 +1172,13 @@ func RunPostgresListTablesTest(t *testing.T, tableNameParam, tableNameAuth, user name: "invoke list_tables with invalid output format", api: "http://127.0.0.1:5000/api/tool/list_tables/invoke", requestBody: bytes.NewBuffer([]byte(`{"table_names": "", "output_format": "abcd"}`)), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "invoke list_tables with malformed table_names parameter", api: "http://127.0.0.1:5000/api/tool/list_tables/invoke", requestBody: bytes.NewBuffer([]byte(`{"table_names": 12345, "output_format": "detailed"}`)), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "invoke list_tables with multiple table names", @@ -3409,7 +3409,7 @@ func RunMySQLGetQueryPlanTest(t *testing.T, ctx context.Context, pool *sql.DB, d { name: "invoke get_query_plan with invalid query", requestBody: bytes.NewBufferString(`{"sql_statement": "SELECT * FROM non_existent_table"}`), - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, checkResult: nil, }, } @@ -3543,13 +3543,13 @@ func RunMSSQLListTablesTest(t *testing.T, tableNameParam, tableNameAuth string) name: "invoke list_tables with invalid output format", api: "http://127.0.0.1:5000/api/tool/list_tables/invoke", requestBody: `{"table_names": "", "output_format": "abcd"}`, - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "invoke list_tables with malformed table_names parameter", api: "http://127.0.0.1:5000/api/tool/list_tables/invoke", requestBody: `{"table_names": 12345, "output_format": "detailed"}`, - wantStatusCode: http.StatusBadRequest, + wantStatusCode: http.StatusOK, }, { name: "invoke list_tables with multiple table names",