mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-10 22:21:22 -07:00
feat(core): remove unnecessary login verbiage from Code Assist auth (#19861)
This commit is contained in:
@@ -271,7 +271,7 @@ async function initOauthClient(
|
||||
|
||||
await triggerPostAuthCallbacks(client.credentials);
|
||||
} else {
|
||||
const userConsent = await getConsentForOauth('Code Assist login required.');
|
||||
const userConsent = await getConsentForOauth('');
|
||||
if (!userConsent) {
|
||||
throw new FatalCancellationError('Authentication cancelled by user.');
|
||||
}
|
||||
@@ -281,8 +281,7 @@ async function initOauthClient(
|
||||
coreEvents.emit(CoreEvent.UserFeedback, {
|
||||
severity: 'info',
|
||||
message:
|
||||
`\n\nCode Assist login required.\n` +
|
||||
`Attempting to open authentication page in your browser.\n` +
|
||||
`\n\nAttempting to open authentication page in your browser.\n` +
|
||||
`Otherwise navigate to:\n\n${webLogin.authUrl}\n\n\n`,
|
||||
});
|
||||
try {
|
||||
|
||||
@@ -56,6 +56,25 @@ describe('getConsentForOauth', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should handle empty prompt correctly', async () => {
|
||||
const mockEmitConsentRequest = vi.spyOn(coreEvents, 'emitConsentRequest');
|
||||
vi.spyOn(coreEvents, 'listenerCount').mockReturnValue(1);
|
||||
|
||||
mockEmitConsentRequest.mockImplementation((payload) => {
|
||||
payload.onConfirm(true);
|
||||
});
|
||||
|
||||
await getConsentForOauth('');
|
||||
|
||||
expect(mockEmitConsentRequest).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
prompt: expect.stringMatching(
|
||||
/^Opening authentication page in your browser\./,
|
||||
),
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it('should return false when user declines via UI', async () => {
|
||||
const mockEmitConsentRequest = vi.spyOn(coreEvents, 'emitConsentRequest');
|
||||
vi.spyOn(coreEvents, 'listenerCount').mockReturnValue(1);
|
||||
|
||||
@@ -15,7 +15,9 @@ import { isHeadlessMode } from './headless.js';
|
||||
* Handles both interactive and non-interactive (headless) modes.
|
||||
*/
|
||||
export async function getConsentForOauth(prompt: string): Promise<boolean> {
|
||||
const finalPrompt = prompt + ' Opening authentication page in your browser. ';
|
||||
const finalPrompt =
|
||||
(prompt ? prompt + ' ' : '') +
|
||||
'Opening authentication page in your browser. ';
|
||||
|
||||
if (isHeadlessMode()) {
|
||||
return getOauthConsentNonInteractive(finalPrompt);
|
||||
|
||||
Reference in New Issue
Block a user