Skip to content

Commit 7a80bee

Browse files
committed
Fix tests
1 parent f69fda0 commit 7a80bee

File tree

6 files changed

+41
-15
lines changed

6 files changed

+41
-15
lines changed

FirebaseVertexAI/Sources/Constants.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import Foundation
2222
enum Constants {
2323
/// The Vertex AI backend endpoint URL.
2424
///
25-
/// TODO(andrewheard): Update to "https://firebasevertexai.googleapis.com" after the Firebase
26-
/// Vertex AI API launch.
25+
/// TODO(andrewheard): Update to "https://firebasevertexai.googleapis.com" after the Vertex AI in
26+
/// Firebase API launch.
2727
static let baseURL = "https://firebaseml.googleapis.com"
2828
}

FirebaseVertexAI/Sources/Errors.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ struct RPCError: Error {
3131
self.details = details
3232
}
3333

34-
// TODO(andrewheard): Remove this method after the Firebase Vertex AI API launch.
34+
// TODO(andrewheard): Remove this method after the Vertex AI in Firebase API launch.
3535
func isFirebaseMLServiceDisabledError() -> Bool {
3636
return details.contains { $0.isFirebaseMLServiceDisabledErrorDetails() }
3737
}
3838

39-
func isFirebaseVertexAIServiceDisabledError() -> Bool {
40-
return details.contains { $0.isFirebaseVertexAIServiceDisabledErrorDetails() }
39+
func isVertexAIInFirebaseServiceDisabledError() -> Bool {
40+
return details.contains { $0.isVertexAIInFirebaseServiceDisabledErrorDetails() }
4141
}
4242
}
4343

@@ -95,7 +95,7 @@ struct ErrorDetails {
9595
return isErrorInfo() && reason == "SERVICE_DISABLED" && domain == "googleapis.com"
9696
}
9797

98-
// TODO(andrewheard): Remove this method after the Firebase Vertex AI API launch.
98+
// TODO(andrewheard): Remove this method after the Vertex AI in Firebase API launch.
9999
func isFirebaseMLServiceDisabledErrorDetails() -> Bool {
100100
guard isServiceDisabledError() else {
101101
return false
@@ -106,7 +106,7 @@ struct ErrorDetails {
106106
return true
107107
}
108108

109-
func isFirebaseVertexAIServiceDisabledErrorDetails() -> Bool {
109+
func isVertexAIInFirebaseServiceDisabledErrorDetails() -> Bool {
110110
guard isServiceDisabledError() else {
111111
return false
112112
}

FirebaseVertexAI/Sources/GenerativeAIRequest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public struct RequestOptions {
3232

3333
/// The API version to use in requests to the backend.
3434
///
35-
/// TODO(andrewheard): Update to "v1beta" after the Firebase Vertex AI API launch.
35+
/// TODO(andrewheard): Update to "v1beta" after the Vertex AI in Firebase API launch.
3636
let apiVersion = "v2beta"
3737

3838
/// Initializes a request options object.

FirebaseVertexAI/Sources/GenerativeAIService.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -266,9 +266,9 @@ struct GenerativeAIService {
266266
// Log specific RPC errors that cannot be mitigated or handled by user code.
267267
// These errors do not produce specific GenerateContentError or CountTokensError cases.
268268
private func logRPCError(_ error: RPCError) {
269-
// TODO(andrewheard): Remove this check after the Firebase Vertex AI API launch.
269+
// TODO(andrewheard): Remove this check after the Vertex AI in Firebase API launch.
270270
if error.isFirebaseMLServiceDisabledError() {
271-
VertexLog.error(code: .firebaseVertexAIAPIDisabled, """
271+
VertexLog.error(code: .vertexAIInFirebaseAPIDisabled, """
272272
The Vertex AI for Firebase SDK requires the Firebase ML API `firebaseml.googleapis.com` to \
273273
be enabled for your project. Get started in the Firebase Console \
274274
(https://console.firebase.google.com/project/\(projectID)/genai/vertex) or verify that the \
@@ -278,8 +278,8 @@ struct GenerativeAIService {
278278
""")
279279
}
280280

281-
if error.isFirebaseVertexAIServiceDisabledError() {
282-
VertexLog.error(code: .firebaseVertexAIAPIDisabled, """
281+
if error.isVertexAIInFirebaseServiceDisabledError() {
282+
VertexLog.error(code: .vertexAIInFirebaseAPIDisabled, """
283283
The Vertex AI for Firebase SDK requires the Firebase Vertex AI API \
284284
`firebasevertexai.googleapis.com` to be enabled for your project. Get started by visiting \
285285
the Firebase Console at: \

FirebaseVertexAI/Sources/VertexLog.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ enum VertexLog {
2929
case verboseLoggingEnabled = 101
3030

3131
// API Enablement Errors
32-
case firebaseVertexAIAPIDisabled = 200
32+
case vertexAIInFirebaseAPIDisabled = 200
3333

3434
// Model Configuration
3535
case generativeModelInitialized = 1000

FirebaseVertexAI/Tests/Unit/GenerativeModelTests.swift

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ final class GenerativeModelTests: XCTestCase {
453453
}
454454
}
455455

456-
// TODO(andrewheard): Remove this test case after the Firebase Vertex AI API launch.
456+
// TODO(andrewheard): Remove this test case after the Vertex AI in Firebase API launch.
457457
func testGenerateContent_failure_firebaseMLAPINotEnabled() async throws {
458458
let expectedStatusCode = 403
459459
MockURLProtocol
@@ -494,7 +494,7 @@ final class GenerativeModelTests: XCTestCase {
494494
XCTAssertEqual(error.status, .permissionDenied)
495495
XCTAssertTrue(error.message
496496
.starts(with: "Vertex AI in Firebase API has not been used in project"))
497-
XCTAssertTrue(error.isFirebaseMLServiceDisabledError())
497+
XCTAssertTrue(error.isVertexAIInFirebaseServiceDisabledError())
498498
return
499499
} catch {
500500
XCTFail("Should throw GenerateContentError.internalError(RPCError); error thrown: \(error)")
@@ -799,6 +799,7 @@ final class GenerativeModelTests: XCTestCase {
799799
XCTFail("Should have caught an error.")
800800
}
801801

802+
// TODO(andrewheard): Remove this test case after the Vertex AI in Firebase API launch.
802803
func testGenerateContentStream_failure_firebaseMLAPINotEnabled() async throws {
803804
let expectedStatusCode = 403
804805
MockURLProtocol
@@ -824,6 +825,31 @@ final class GenerativeModelTests: XCTestCase {
824825
XCTFail("Should have caught an error.")
825826
}
826827

828+
func testGenerateContentStream_failure_vertexAIInFirebaseAPINotEnabled() async throws {
829+
let expectedStatusCode = 403
830+
MockURLProtocol
831+
.requestHandler = try httpRequestHandler(
832+
forResource: "unary-failure-firebasevertexai-api-not-enabled",
833+
withExtension: "json",
834+
statusCode: expectedStatusCode
835+
)
836+
837+
do {
838+
let stream = try model.generateContentStream(testPrompt)
839+
for try await _ in stream {
840+
XCTFail("No content is there, this shouldn't happen.")
841+
}
842+
} catch let GenerateContentError.internalError(error as RPCError) {
843+
XCTAssertEqual(error.httpResponseCode, expectedStatusCode)
844+
XCTAssertEqual(error.status, .permissionDenied)
845+
XCTAssertTrue(error.message.starts(with: "Vertex AI in Firebase API has not been used in project"))
846+
XCTAssertTrue(error.isVertexAIInFirebaseServiceDisabledError())
847+
return
848+
}
849+
850+
XCTFail("Should have caught an error.")
851+
}
852+
827853
func testGenerateContentStream_failureEmptyContent() async throws {
828854
MockURLProtocol
829855
.requestHandler = try httpRequestHandler(

0 commit comments

Comments
 (0)