Add custom auto-enablement for app testing#9373
Add custom auto-enablement for app testing#9373tagboola merged 4 commits intofeature-branch/mcp/mobile-testingfrom
Conversation
Summary of ChangesHello @tagboola, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a specialized auto-enablement process for Firebase App Testing features. It moves away from the standard Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request adds a custom auto-enablement check for the App Testing feature, which is a great addition. The implementation correctly verifies if the project is a mobile app and if the necessary API is enabled. The new logic is well-integrated into the existing prompt and tool framework. I've provided a few suggestions to improve the code, including removing a describe.only from a test file which is important to fix, cleaning up some commented-out code, and a minor refactoring for better readability.
* creation of feature branch * New MCP tool for running mobile tests (via app distribution). (#9250) * Scaffolding for new appdistribution MCP tool. * Refactor business logic out of the appdistribution CLI so that it can be used by an MCP tool. * Wire new appdistribution tool up to the business logic. * Fix linting errors. * Update src/appdistribution/distribution.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: Jamie Rothfeder <rothbutter@google.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Rename appdistribution directory to apptesting (#9268) * Rename appdistribution directory to apptesting * Make variables consistent with directory rename. --------- Co-authored-by: Jamie Rothfeder <rothbutter@google.com> * Use a datastructure to represent test devices rather than a string. (#9280) * Use a datastructure to represent test devices rather than a string. * Update src/mcp/tools/apptesting/tests.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/mcp/tools/apptesting/tests.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Pretty --------- Co-authored-by: Jamie Rothfeder <rothbutter@google.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Add run_test prompt (#9292) * Add initial MCP prompt for running automated tests * Fix typos * MCP tool `apptesting_run_test` can create and run a on-off test. (#9321) * Create a on-off test and execute. * Can now create a on-off test. * Update src/appdistribution/client.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Update src/mcp/tools/apptesting/tests.ts Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * PR feedback * Separate test check in to a different tool so that gemini can orchestrate running and checking for completion. * Set the devices field to optional --------- Co-authored-by: Jamie Rothfeder <rothbutter@google.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * Use the same default device that's used in the Console (#9320) * Update prompt to support generating a test case when there is no test description (#9322) * Use the same default device that's used in the Console * Update prompt to support generating a test case when there is no test description passed * Add custom auto-enablement for app testing (#9373) * Add custom auto-enablement for app testing * Address gemini code assist comments * Fix intersection bug * Fix issues with test * Add get devices tool (#9387) * Display link to results in the Firebase Console (#9406) * Place app testing tools behind an experiment * Address GCA comments * Explicitly set default devices * Address PR comments * Fix the status URL. (#9438) Co-authored-by: Jamie Rothfeder <rothbutter@google.com> --------- Co-authored-by: Jamie Rothfeder <rothbutter@google.com> Co-authored-by: Jamie Rothfeder <jamie.rothfeder@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Description
By default, tools and prompts for products are enabled by the following process:
firebase.jsonfileBecause out product won't necessarily be defined in the
firebase.json, I added a custom enablement function that enables our tools/prompts if:Scenarios Tested
Sample Commands