fix(google): keep first login identity errors · openclaw/openclaw@e8b4003
jason-allen-
·
2026-05-17
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -842,6 +842,21 @@ describe("loginGeminiCliOAuth", () => {
|
842 | 842 | ).rejects.toThrow("OAuth state mismatch - please try again"); |
843 | 843 | }); |
844 | 844 | |
| 845 | +it("rejects first login when project discovery fails and no stored identity exists", async () => { |
| 846 | +const { requests } = installGeminiOAuthFetchMock(({ url }) => { |
| 847 | +if ([LOAD_PROD, LOAD_DAILY, LOAD_AUTOPUSH].includes(url)) { |
| 848 | +return responseJson({ error: { message: "unavailable" } }, 503); |
| 849 | +} |
| 850 | +return undefined; |
| 851 | +}); |
| 852 | + |
| 853 | +const { exchangeCodeForTokens } = await import("./oauth.token.js"); |
| 854 | +await expect(exchangeCodeForTokens("oauth-code", "pkce-verifier")).rejects.toThrow( |
| 855 | +/loadCodeAssist failed/i, |
| 856 | +); |
| 857 | +expect(requests.filter(({ url }) => url.includes("v1internal:loadCodeAssist"))).toHaveLength(3); |
| 858 | +}); |
| 859 | + |
845 | 860 | it("falls back to GOOGLE_CLOUD_PROJECT when all loadCodeAssist endpoints fail", async () => { |
846 | 861 | process.env.GOOGLE_CLOUD_PROJECT = "env-project"; |
847 | 862 | |
@@ -891,7 +906,10 @@ describe("loginGeminiCliOAuth", () => {
|
891 | 906 | |
892 | 907 | const { requests } = installGeminiOAuthFetchMock(() => undefined); |
893 | 908 | const { refreshTokensForGeminiCli } = await import("./oauth.token.js"); |
894 | | -const result = await refreshTokensForGeminiCli({ refresh: "refresh-token" }); |
| 909 | +const result = await refreshTokensForGeminiCli({ |
| 910 | +refresh: "refresh-token", |
| 911 | +email: "lobster@openclaw.ai", |
| 912 | +}); |
895 | 913 | |
896 | 914 | expect(result).toMatchObject({ |
897 | 915 | access: "access-token", |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。