Skip to content

Conversation

andrewheard
Copy link
Contributor

@andrewheard andrewheard commented Mar 7, 2025

  • Added an integration test for responseMIMEType: "text/x.enum".
  • Updated the integration tests to run on the v1 Developer API, where possible.
  • Added support for specifying a FirebaseApp, along with the APIConfig, in integration tests.
    • This allows us to test using a project on the Firebase Spark plan (no billing account).

#no-changelog

Copy link
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.

Hello @andrewheard, 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!

Summary of Changes

This pull request adds an integration test for responseMIMEType: "text/x.enum" and updates the integration tests to run on the v1 Developer API where possible. It also adds support for specifying a FirebaseApp, along with the APIConfig, in integration tests, allowing testing using a project on the Firebase Spark plan (no billing account).

Highlights

  • Enum Integration Test: An integration test has been added to verify the functionality of responseMIMEType: "text/x.enum".
  • API Version Update: Integration tests have been updated to run on the v1 Developer API where feasible.
  • FirebaseApp Configuration: Support for specifying a FirebaseApp along with the APIConfig has been added to integration tests, enabling testing with Firebase Spark plan projects.

Changelog

Click here to see the changelog
  • FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h
    • Corrected a typo in a comment, changing GoogleServices-Info.plist to GoogleService-Info.plist on line 105 and 110.
  • FirebaseVertexAI/Tests/TestApp/Sources/Constants.swift
    • Added a new file Constants.swift that defines enums for FirebaseAppNames and ModelNames.
  • FirebaseVertexAI/Tests/TestApp/Sources/TestApp.swift
    • Configured a Firebase App without a billing account (Spark plan) by loading options from GoogleService-Info-Spark.plist on lines 27-35.
  • FirebaseVertexAI/Tests/TestApp/Sources/TestAppCheckProviderFactory.swift
    • Replaced TestAppCheckProviderFactory.notConfiguredName with FirebaseAppNames.appCheckNotConfigured on line 27.
  • FirebaseVertexAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift
    • Replaced APIConfig with InstanceConfig to include appName and location on lines 26-40.
    • Updated the generateContent test to use InstanceConfig and VertexAI.componentInstance on lines 71-76.
    • Adjusted expected token counts in the generateContent test on lines 85-87.
    • Added a new test generateContentEnum to test enum generation with a system instruction on lines 98-138.
  • FirebaseVertexAI/Tests/TestApp/Tests/Integration/IntegrationTests.swift
    • Replaced TestAppCheckProviderFactory.notConfiguredName with FirebaseAppNames.appCheckNotConfigured on lines 112 and 288.
  • FirebaseVertexAI/Tests/TestApp/Tests/Utilities/IntegrationTestUtils.swift
    • Moved the isEqual extension for Numeric types from GenerateContentIntegrationTests.swift to this file on lines 41-45.
  • FirebaseVertexAI/Tests/TestApp/Tests/Utilities/VertexAITestUtils.swift
    • Created a new file VertexAITestUtils.swift with InstanceConfig struct and componentInstance extension for VertexAI.
  • FirebaseVertexAI/Tests/TestApp/VertexAITestApp.xcodeproj/project.pbxproj
    • Modified the project file to include the new files and resources.
Using Gemini Code Assist

The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and 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 to provide feedback.

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.


Did you know?

The first version of Swift was released in 2014, marking a significant shift towards modern, safe, and expressive programming for Apple platforms.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
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 an integration test for responseMIMEType: "text/x.enum", updates integration tests to run on the v1 Developer API, and adds support for specifying a FirebaseApp in integration tests. The changes look good overall, but I have a few suggestions for improvement.

Summary of Findings

  • File Naming Consistency: In FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h, the file name reference is corrected from GoogleServices-Info.plist to GoogleService-Info.plist. It would be good to ensure consistency in naming across the project.
  • Redundant Constant Definition: The constant notConfiguredName is defined in both Constants.swift and TestAppCheckProviderFactory.swift. It's better to define it in one place to avoid redundancy.
  • Test Coverage for Developer API v1: The pull request updates integration tests to run on the v1 Developer API where possible. It's important to ensure sufficient test coverage for the new API version.

Merge Readiness

The pull request is almost ready for merging. I recommend addressing the redundant constant definition and ensuring sufficient test coverage for the Developer API v1. I am unable to directly approve this pull request, and recommend that others review and approve this code before merging.

@andrewheard andrewheard marked this pull request as ready for review March 10, 2025 18:22
@andrewheard andrewheard requested a review from paulb777 March 10, 2025 18:23
@andrewheard andrewheard merged commit 94bac42 into main Mar 10, 2025
59 checks passed
@andrewheard andrewheard deleted the ah/vertex-integration-enum branch March 10, 2025 19:17
@firebase firebase locked and limited conversation to collaborators Apr 10, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants