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

Function TestQueryDatabase_Truncation

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

Source from the content-addressed store, hash-verified

518}
519
520func TestQueryDatabase_Truncation(t *testing.T) {
521 databases := []map[string]any{
522 makeDatabase("instances/prod-pg/databases/employee_db", "instances/prod-pg", "projects/hr-system", "POSTGRES", "ds-admin-1"),
523 }
524 // Generate 150 rows.
525 rows := make([][]any, 150)
526 for i := range rows {
527 rows[i] = []any{fmt.Sprintf("%d", i+1)}
528 }
529 qr := makeQueryResponse([]string{"id"}, []string{"int4"}, rows, "0.050s")
530 s := newTestServerWithMock(t, mockQueryServer(databases, qr))
531
532 result, structured, err := s.handleQueryDatabase(testContext(), nil, QueryInput{
533 Database: "employee_db",
534 Statement: "SELECT id FROM users",
535 // Default limit is 100.
536 })
537 require.NoError(t, err)
538 require.False(t, result.IsError)
539
540 output, ok := structured.(*QueryOutput)
541 require.True(t, ok)
542 require.Equal(t, 100, output.RowCount)
543 require.True(t, output.Truncated)
544
545 text := result.Content[0].(*mcpsdk.TextContent).Text
546 require.Contains(t, text, "Truncated")
547}
548
549func TestQueryDatabase_CustomLimit(t *testing.T) {
550 databases := []map[string]any{

Callers

nothing calls this directly

Calls 7

makeQueryResponseFunction · 0.85
newTestServerWithMockFunction · 0.85
mockQueryServerFunction · 0.85
testContextFunction · 0.85
handleQueryDatabaseMethod · 0.80
makeDatabaseFunction · 0.70
EqualMethod · 0.65

Tested by

no test coverage detected