Skip to content

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

Open
dishaprakash wants to merge 27 commits intomainfrom
mcp-cloud-sql-mysql-tests
Open

test(source/cloud-sql-mysql): create MCP integration tests#2922
dishaprakash wants to merge 27 commits intomainfrom
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.

@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 0fb9a98 to 6403946 Compare April 8, 2026 17:17
@dishaprakash dishaprakash assigned anubhav756 and unassigned Yuan325 Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants