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

Function TestGetSchema_TableImpliesDetails

backend/api/mcp/tool_schema_test.go:355–393  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

353}
354
355func TestGetSchema_TableImpliesDetails(t *testing.T) {
356 ordersTable := map[string]any{
357 "name": "orders",
358 "rowCount": "182394",
359 "comment": "Customer orders",
360 "columns": []map[string]any{
361 makeColumnWithDefault("id", "int8", "", "Order ID"),
362 },
363 "indexes": []map[string]any{makePrimaryKeyIndex("orders_pkey", []string{"id"})},
364 "foreignKeys": []map[string]any{
365 {
366 "name": "orders_user_id_fkey",
367 "columns": []string{"user_id"},
368 "referencedTable": "users",
369 "referencedColumns": []string{"id"},
370 },
371 },
372 }
373 resp := makeMetadataResponse(makeSchema("public", ordersTable))
374
375 s, _ := mockMetadataServer(t, employeeDB(), resp)
376
377 result, structured, err := s.handleGetSchema(testContext(), nil, SchemaInput{
378 Database: "employee_db",
379 Table: "orders",
380 // Include not set → should default to details.
381 })
382 require.NoError(t, err)
383 require.False(t, result.IsError)
384
385 output, ok := structured.(*SchemaOutput)
386 require.True(t, ok)
387 require.NotNil(t, output.Table)
388 // Details level: indexes and FKs are populated.
389 require.NotEmpty(t, output.Table.Indexes)
390 require.NotEmpty(t, output.Table.ForeignKeys)
391 // Column comment (details-only field) populated.
392 require.Equal(t, "Order ID", output.Table.Columns[0].Comment)
393}
394
395func TestGetSchema_TableNotFound_RefetchesForCandidates(t *testing.T) {
396 // First call: server-side filter returns nothing.

Callers

nothing calls this directly

Calls 9

makeColumnWithDefaultFunction · 0.85
makePrimaryKeyIndexFunction · 0.85
makeMetadataResponseFunction · 0.85
mockMetadataServerFunction · 0.85
employeeDBFunction · 0.85
testContextFunction · 0.85
handleGetSchemaMethod · 0.80
makeSchemaFunction · 0.70
EqualMethod · 0.65

Tested by

no test coverage detected