MCPcopy Create free account
hub / github.com/bytebase/bytebase / TestQueryDatabase_QueryError

Function TestQueryDatabase_QueryError

backend/api/mcp/tool_query_test.go:599–626  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

597}
598
599func TestQueryDatabase_QueryError(t *testing.T) {
600 databases := []map[string]any{
601 makeDatabase("instances/prod-pg/databases/employee_db", "instances/prod-pg", "projects/hr-system", "POSTGRES", "ds-admin-1"),
602 }
603 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
604 if strings.Contains(r.URL.Path, "SQLService/Query") {
605 w.Header().Set("Content-Type", "application/json")
606 w.WriteHeader(http.StatusBadRequest)
607 _ = json.NewEncoder(w).Encode(map[string]any{
608 "message": "syntax error at or near \"SELEC\"",
609 "code": "INVALID_ARGUMENT",
610 })
611 return
612 }
613 mockListDatabases(databases).ServeHTTP(w, r)
614 })
615 s := newTestServerWithMock(t, handler)
616
617 result, _, err := s.handleQueryDatabase(testContext(), nil, QueryInput{
618 Database: "employee_db",
619 Statement: "SELEC * FROM users",
620 })
621 require.NoError(t, err)
622 require.True(t, result.IsError)
623
624 text := result.Content[0].(*mcpsdk.TextContent).Text
625 require.Contains(t, text, "syntax error")
626}
627
628func TestQueryDatabase_PermissionDenied(t *testing.T) {
629 databases := []map[string]any{

Callers

nothing calls this directly

Calls 6

mockListDatabasesFunction · 0.85
newTestServerWithMockFunction · 0.85
testContextFunction · 0.85
handleQueryDatabaseMethod · 0.80
makeDatabaseFunction · 0.70
SetMethod · 0.45

Tested by

no test coverage detected