Skip to content

Commit 614320c

Browse files
authored
[Firebase AI] Handle known URL Context issue in integration test (#15386)
1 parent 541ac34 commit 614320c

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -433,22 +433,28 @@ struct GenerateContentIntegrationTests {
433433
modelName: ModelNames.gemini2_5_Flash,
434434
tools: [.urlContext()]
435435
)
436-
let prompt = """
437-
Write a one paragraph summary of this blog post: \
438-
https://developers.googleblog.com/en/introducing-gemma-3-270m/
439-
"""
436+
let url = "https://developers.googleblog.com/en/introducing-gemma-3-270m/"
437+
let prompt = "Write a one paragraph summary of this blog post: \(url)"
440438

441-
let response = try await model.generateContent(prompt)
439+
// TODO(#15385): Remove `withKnownIssue` when the URL Context tool works consistently using the
440+
// Gemini Developer API.
441+
try await withKnownIssue(isIntermittent: true) {
442+
let response = try await model.generateContent(prompt)
442443

443-
let candidate = try #require(response.candidates.first)
444-
let urlContextMetadata = try #require(candidate.urlContextMetadata)
445-
#expect(urlContextMetadata.urlMetadata.count == 1)
446-
let urlMetadata = try #require(urlContextMetadata.urlMetadata.first)
447-
let retrievedURL = try #require(urlMetadata.retrievedURL)
448-
#expect(
449-
retrievedURL == URL(string: "https://developers.googleblog.com/en/introducing-gemma-3-270m/")
450-
)
451-
#expect(urlMetadata.retrievalStatus == .success)
444+
let candidate = try #require(response.candidates.first)
445+
let urlContextMetadata = try #require(candidate.urlContextMetadata)
446+
#expect(urlContextMetadata.urlMetadata.count == 1)
447+
let urlMetadata = try #require(urlContextMetadata.urlMetadata.first)
448+
let retrievedURL = try #require(urlMetadata.retrievedURL)
449+
#expect(retrievedURL == URL(string: url))
450+
#expect(urlMetadata.retrievalStatus == .success)
451+
} when: {
452+
// This issue only impacts the Gemini Developer API (Google AI), Vertex AI is unaffected.
453+
if case .googleAI = config.apiConfig.service {
454+
return true
455+
}
456+
return false
457+
}
452458
}
453459

454460
@Test(arguments: InstanceConfig.allConfigs)

0 commit comments

Comments
 (0)