MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / TestHandleValidateSQL

Function TestHandleValidateSQL

pkg/mcp/tools_test.go:61–127  ·  view source on GitHub ↗

--------------------------------------------------------------------------- handleValidateSQL ---------------------------------------------------------------------------

(t *testing.T)

Source from the content-addressed store, hash-verified

59// ---------------------------------------------------------------------------
60
61func TestHandleValidateSQL(t *testing.T) {
62 ctx := context.Background()
63
64 t.Run("valid SQL returns valid=true", func(t *testing.T) {
65 req := makeReq(map[string]any{"sql": "SELECT id FROM users"})
66 res, err := handleValidateSQL(ctx, req)
67 if err != nil {
68 t.Fatalf("unexpected error: %v", err)
69 }
70 data := unmarshalResult(t, res)
71 valid, ok := data["valid"].(bool)
72 if !ok || !valid {
73 t.Errorf("expected valid=true, got %v", data["valid"])
74 }
75 })
76
77 t.Run("invalid SQL returns valid=false without protocol error", func(t *testing.T) {
78 req := makeReq(map[string]any{"sql": "SELECT FROM"})
79 res, err := handleValidateSQL(ctx, req)
80 if err != nil {
81 t.Fatalf("unexpected protocol error for invalid SQL: %v", err)
82 }
83 data := unmarshalResult(t, res)
84 valid, ok := data["valid"].(bool)
85 if !ok || valid {
86 t.Errorf("expected valid=false for invalid SQL, got %v", data["valid"])
87 }
88 if _, hasErr := data["error"]; !hasErr {
89 t.Error("expected 'error' key in result for invalid SQL")
90 }
91 })
92
93 t.Run("empty sql returns protocol error", func(t *testing.T) {
94 req := makeReq(map[string]any{"sql": ""})
95 _, err := handleValidateSQL(ctx, req)
96 if err == nil {
97 t.Fatal("expected error for empty sql, got nil")
98 }
99 })
100
101 t.Run("missing sql param returns protocol error", func(t *testing.T) {
102 req := makeReq(map[string]any{})
103 _, err := handleValidateSQL(ctx, req)
104 if err == nil {
105 t.Fatal("expected error for missing sql param, got nil")
106 }
107 })
108
109 t.Run("valid SQL with dialect", func(t *testing.T) {
110 req := makeReq(map[string]any{
111 "sql": "SELECT id FROM users",
112 "dialect": "postgresql",
113 })
114 res, err := handleValidateSQL(ctx, req)
115 if err != nil {
116 t.Fatalf("unexpected error: %v", err)
117 }
118 data := unmarshalResult(t, res)

Callers

nothing calls this directly

Calls 7

makeReqFunction · 0.85
handleValidateSQLFunction · 0.85
unmarshalResultFunction · 0.85
RunMethod · 0.80
FatalfMethod · 0.65
ErrorfMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected