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

Function TestQueryDatabase_PermissionDenied

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

Source from the content-addressed store, hash-verified

626}
627
628func TestQueryDatabase_PermissionDenied(t *testing.T) {
629 databases := []map[string]any{
630 makeDatabase("instances/prod-pg/databases/employee_db", "instances/prod-pg", "projects/hr-system", "POSTGRES", "ds-admin-1"),
631 }
632 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
633 if strings.Contains(r.URL.Path, "SQLService/Query") {
634 w.Header().Set("Content-Type", "application/json")
635 w.WriteHeader(http.StatusForbidden)
636 _ = json.NewEncoder(w).Encode(map[string]any{
637 "message": "permission denied",
638 "code": "PERMISSION_DENIED",
639 })
640 return
641 }
642 mockListDatabases(databases).ServeHTTP(w, r)
643 })
644 s := newTestServerWithMock(t, handler)
645
646 result, _, err := s.handleQueryDatabase(testContext(), nil, QueryInput{
647 Database: "employee_db",
648 Statement: "SELECT * FROM users",
649 })
650 require.NoError(t, err)
651 require.True(t, result.IsError)
652
653 text := result.Content[0].(*mcpsdk.TextContent).Text
654 require.Contains(t, text, "permission denied")
655}
656
657// --- Task 6 tests: masked values and timeout ---
658

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