import CodexBarCoreimport Foundationimport Testing@testable import CodexBar struct AntigravityLoginAlertTests { @Test func `authorization URL asks Google to select an account`() throws { let redirectURL = try #require(URL(string: "http://127.0.0.1:54321/callback")) let url = try AntigravityLoginRunner.makeAuthorizationURL( redirectURL: redirectURL, state: "state", oauthClient: AntigravityOAuthClient( clientID: "client.apps.googleusercontent.com", clientSecret: "secret")) let components = try #require(URLComponents(url: url, resolvingAgainstBaseURL: false)) let prompt = components.queryItems?.first(where: { $0.name == "prompt" })?.value #expect(prompt?.split(separator: " ").contains("select_account") == true) #expect(prompt?.split(separator: " ").contains("consent") == true) } @Test func `returns alert for timeout`() { let result = AntigravityLoginRunner.Result(outcome: .timedOut) let info = StatusItemController.antigravityLoginAlertInfo(for: result) #expect(info?.title == "Antigravity login timed out") } @Test func `returns alert for launch failure`() { let result = AntigravityLoginRunner.Result(outcome: .launchFailed("https://example.com/login")) let info = StatusItemController.antigravityLoginAlertInfo(for: result) #expect(info?.title == "Could not open browser for Antigravity") #expect(info?.message.contains("https://example.com/login") == true) } @Test func `returns alert for auth failure`() { let result = AntigravityLoginRunner.Result(outcome: .failed("permission denied")) let info = StatusItemController.antigravityLoginAlertInfo(for: result) #expect(info?.title == "Antigravity login failed") #expect(info?.message == "permission denied") } @Test func `returns nil on success`() { let result = AntigravityLoginRunner.Result(outcome: .success("user@example.com")) let info = StatusItemController.antigravityLoginAlertInfo(for: result) #expect(info == nil) }}
import CodexBarCore
import Foundation
import Testing
@testable import CodexBar
struct AntigravityLoginAlertTests {
@Test
func `authorization URL asks Google to select an account`() throws {
let redirectURL = try #require(URL(string: "http://127.0.0.1:54321/callback"))
let url = try AntigravityLoginRunner.makeAuthorizationURL(
redirectURL: redirectURL,
state: "state",
oauthClient: AntigravityOAuthClient(
clientID: "client.apps.googleusercontent.com",
clientSecret: "secret"))
let components = try #require(URLComponents(url: url, resolvingAgainstBaseURL: false))
let prompt = components.queryItems?.first(where: { $0.name == "prompt" })?.value
#expect(prompt?.split(separator: " ").contains("select_account") == true)
#expect(prompt?.split(separator: " ").contains("consent") == true)
}
@Test
func `returns alert for timeout`() {
let result = AntigravityLoginRunner.Result(outcome: .timedOut)
let info = StatusItemController.antigravityLoginAlertInfo(for: result)
#expect(info?.title == "Antigravity login timed out")
}
@Test
func `returns alert for launch failure`() {
let result = AntigravityLoginRunner.Result(outcome: .launchFailed("https://example.com/login"))
let info = StatusItemController.antigravityLoginAlertInfo(for: result)
#expect(info?.title == "Could not open browser for Antigravity")
#expect(info?.message.contains("https://example.com/login") == true)
}
@Test
func `returns alert for auth failure`() {
let result = AntigravityLoginRunner.Result(outcome: .failed("permission denied"))
let info = StatusItemController.antigravityLoginAlertInfo(for: result)
#expect(info?.title == "Antigravity login failed")
#expect(info?.message == "permission denied")
}
@Test
func `returns nil on success`() {
let result = AntigravityLoginRunner.Result(outcome: .success("user@example.com"))
let info = StatusItemController.antigravityLoginAlertInfo(for: result)
#expect(info == nil)
}
}