(t *testing.T)
| 572 | } |
| 573 | |
| 574 | func TestQueryDatabase_LimitCappedAt1000(t *testing.T) { |
| 575 | databases := []map[string]any{ |
| 576 | makeDatabase("instances/prod-pg/databases/employee_db", "instances/prod-pg", "projects/hr-system", "POSTGRES", "ds-admin-1"), |
| 577 | } |
| 578 | rows := make([][]any, 5) |
| 579 | for i := range rows { |
| 580 | rows[i] = []any{fmt.Sprintf("%d", i+1)} |
| 581 | } |
| 582 | qr := makeQueryResponse([]string{"id"}, []string{"int4"}, rows, "0.003s") |
| 583 | s := newTestServerWithMock(t, mockQueryServer(databases, qr)) |
| 584 | |
| 585 | result, structured, err := s.handleQueryDatabase(testContext(), nil, QueryInput{ |
| 586 | Database: "employee_db", |
| 587 | Statement: "SELECT id FROM users", |
| 588 | Limit: 2000, |
| 589 | }) |
| 590 | require.NoError(t, err) |
| 591 | require.False(t, result.IsError) |
| 592 | |
| 593 | output, ok := structured.(*QueryOutput) |
| 594 | require.True(t, ok) |
| 595 | require.Equal(t, 5, output.RowCount) |
| 596 | require.False(t, output.Truncated) |
| 597 | } |
| 598 | |
| 599 | func TestQueryDatabase_QueryError(t *testing.T) { |
| 600 | databases := []map[string]any{ |
nothing calls this directly
no test coverage detected