Skip to content

test(source/cloud-sql-mysql): create MCP integration tests#2922

Merged
Yuan325 merged 42 commits into
mainfrom
mcp-cloud-sql-mysql-tests
May 7, 2026
Merged

test(source/cloud-sql-mysql): create MCP integration tests#2922
Yuan325 merged 42 commits into
mainfrom
mcp-cloud-sql-mysql-tests

Conversation

@dishaprakash
Copy link
Copy Markdown
Contributor

@dishaprakash dishaprakash commented Apr 1, 2026

Description

This PR migrates the Cloud SQL MySQL integration tests to use the /mcp endpoint on the MCP Toolbox Server.

Key Changes

  • tests/mcp_tool.go:

    • Added modular builder functions (Base, ExecuteSQL, TemplateParams) to dynamically generate expected MCP manifests.
    • Added concatenation of individual MCP text blocks into a fully formatted JSON array whenever the test expects one, preserving compatibility with previous test assertions.
  • cloud_sql_mysql_mcp_test.go: Migrated legacy /api tests to /mcp

  • cloud_sql_mysql_create_instance_mcp_test.go: Migrated create-instance tests to validate MCP JSON-RPC handling.

  • tests/options.go: Added functional options for the various MySQL test fixtures to provide an MCP tests specific path

  • tests/tool.go: Used the above mentioned options to allow calling MCP Endpoints in the test fixtures of MySQL

@dishaprakash dishaprakash changed the base branch from main to anubhav-feat-native-mcp-alloydb April 1, 2026 16:59
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces comprehensive integration tests for the Model Context Protocol (MCP) across various data sources, including AlloyDB, Cloud SQL MySQL, and HTTP. It also adds modular helper functions in tests/mcp_tool.go to facilitate standardized MCP tool testing. Several issues were identified in the review: a critical flaw in the Cloud SQL MySQL instance creation test where mocking http.DefaultClient fails to affect the separate toolbox process, and multiple violations of the repository style guide regarding tool naming conventions (snake_case and product name exclusion). Additionally, the use of time.Sleep in MySQL tests was flagged as a potential source of flakiness, and some error assertions were noted as being too weak.

Comment thread tests/alloydb/alloydb_mcp_test.go
Comment thread tests/alloydb/alloydb_mcp_test.go
Comment thread tests/cloudsqlmysql/cloud_sql_mysql_mcp_test.go Outdated
Comment thread tests/cloudsqlmysql/cloud_sql_mysql_mcp_test.go Outdated
Comment thread tests/mcp_tool.go
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from db1827c to 7c651a9 Compare April 1, 2026 17:00
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch from 69bb59b to d81edf8 Compare April 1, 2026 17:03
@dishaprakash dishaprakash changed the title Mcp cloud sql mysql tests test(source/cloud-sql-mysql): create MCP integration tests Apr 1, 2026
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from 94d7fce to e3fa5a6 Compare April 1, 2026 21:32
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch from d81edf8 to 4c21e3f Compare April 2, 2026 10:00
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from 0019b41 to 0a48e1c Compare April 2, 2026 12:38
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch 11 times, most recently from 16be479 to f643196 Compare April 4, 2026 13:13
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from 082b05d to 225d74f Compare April 6, 2026 09:38
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch from f643196 to 2e6e044 Compare April 7, 2026 07:25
@dishaprakash dishaprakash marked this pull request as ready for review April 7, 2026 07:31
@dishaprakash dishaprakash requested review from a team as code owners April 7, 2026 07:31
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch from 2e6e044 to 5a9f6bd Compare April 7, 2026 07:32
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from e698ea1 to 072f36b Compare April 7, 2026 08:11
@anubhav756 anubhav756 force-pushed the anubhav-feat-native-mcp-alloydb branch from 5a9f6bd to d2bdddd Compare April 7, 2026 08:17
Base automatically changed from anubhav-feat-native-mcp-alloydb to main April 7, 2026 08:42
@dishaprakash dishaprakash force-pushed the mcp-cloud-sql-mysql-tests branch from 1ac28ca to 25cfb2a Compare April 21, 2026 07:39
Comment thread tests/cloudsqlmysql/cloud_sql_mysql_mcp_test.go
@Yuan325 Yuan325 added the release candidate Use label to signal PR should be included in the next release. label May 6, 2026
@Yuan325 Yuan325 enabled auto-merge (squash) May 6, 2026 22:00
@Yuan325 Yuan325 merged commit eaaae3c into main May 7, 2026
18 checks passed
@Yuan325 Yuan325 deleted the mcp-cloud-sql-mysql-tests branch May 7, 2026 15:41
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

🧨 Preview deployments removed.

Cloudflare Pages environments for pr-2922 have been deleted.

pavankrishna13 pushed a commit to pavankrishna13/genai-toolbox that referenced this pull request May 19, 2026
…s#2922)

## Description

This PR migrates the Cloud SQL MySQL integration tests to use the /mcp
endpoint on the MCP Toolbox Server.

### Key Changes

- `tests/mcp_tool.go`: 
- Added modular builder functions (Base, ExecuteSQL, TemplateParams) to
dynamically generate expected MCP manifests.
- Added concatenation of individual MCP text blocks into a fully
formatted JSON array whenever the test expects one, preserving
compatibility with previous test assertions.

- `cloud_sql_mysql_mcp_test.go`: Migrated legacy `/api` tests to `/mcp`

- `cloud_sql_mysql_create_instance_mcp_test.go`: Migrated
create-instance tests to validate MCP JSON-RPC handling.

- `tests/options.go`: Added functional options for the various MySQL
test fixtures to provide an MCP tests specific path

- `tests/tool.go`: Used the above mentioned options to allow calling MCP
Endpoints in the test fixtures of MySQL

---------

Co-authored-by: Yuan Teoh <45984206+Yuan325@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: p1 Important issue which blocks shipping the next release. Will be fixed prior to next release. release candidate Use label to signal PR should be included in the next release. tests: run Label to trigger Github Action tests.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants