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

Function TestGetSchema_IncludeColumns

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

Source from the content-addressed store, hash-verified

234}
235
236func TestGetSchema_IncludeColumns(t *testing.T) {
237 usersTable := makeTable("users", 10432,
238 []map[string]any{
239 makeColumn("id", "int4", false),
240 makeColumn("email", "varchar(255)", false),
241 makeColumn("created_at", "timestamptz", true),
242 },
243 []map[string]any{makePrimaryKeyIndex("users_pkey", []string{"id"})},
244 )
245 resp := makeMetadataResponse(makeSchema("public", usersTable))
246
247 s, mock := mockMetadataServer(t, employeeDB(), resp)
248
249 result, structured, err := s.handleGetSchema(testContext(), nil, SchemaInput{
250 Database: "employee_db",
251 Include: "columns",
252 })
253 require.NoError(t, err)
254 require.False(t, result.IsError)
255
256 output, ok := structured.(*SchemaOutput)
257 require.True(t, ok)
258 users := output.Schemas[0].Tables[0]
259 require.Len(t, users.Columns, 3)
260 // Proto order preserved (id, email, created_at) — NOT alphabetized.
261 require.Equal(t, "id", users.Columns[0].Name)
262 require.Equal(t, "int4", users.Columns[0].Type)
263 require.False(t, users.Columns[0].Nullable)
264 require.True(t, users.Columns[0].PrimaryKey)
265 require.Equal(t, "email", users.Columns[1].Name)
266 require.False(t, users.Columns[1].PrimaryKey)
267 require.Equal(t, "created_at", users.Columns[2].Name)
268 require.True(t, users.Columns[2].Nullable)
269 // columns mode has no defaults/comments populated.
270 require.Empty(t, users.Columns[0].Default)
271 require.Empty(t, users.Columns[0].Comment)
272 // No indexes or FKs in columns mode.
273 require.Empty(t, users.Indexes)
274 require.Empty(t, users.ForeignKeys)
275
276 // Request includes limit=201.
277 require.Equal(t, int32(201), mock.lastCall().Limit)
278}
279
280func TestGetSchema_IncludeDetails(t *testing.T) {
281 ordersTable := map[string]any{

Callers

nothing calls this directly

Calls 12

makePrimaryKeyIndexFunction · 0.85
makeMetadataResponseFunction · 0.85
mockMetadataServerFunction · 0.85
employeeDBFunction · 0.85
testContextFunction · 0.85
handleGetSchemaMethod · 0.80
LenMethod · 0.80
lastCallMethod · 0.80
makeTableFunction · 0.70
makeColumnFunction · 0.70
makeSchemaFunction · 0.70
EqualMethod · 0.65

Tested by

no test coverage detected