summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/AuthDialog.test.tsx
diff options
context:
space:
mode:
authorPascal Birchler <[email protected]>2025-07-09 00:10:36 +0200
committerGitHub <[email protected]>2025-07-08 22:10:36 +0000
commitc8cf954e6ef8b360b0c7880ca4d29a12eb1ec7c8 (patch)
tree55670fde25a7d59cae19d2b21ecacc67f58ae1cc /packages/cli/src/ui/components/AuthDialog.test.tsx
parent0506b40a39c04a5949c7886aaf5f87173453f0a2 (diff)
fix(auth): do not blindly default to API key auth (#3235)
Co-authored-by: matt korwel <[email protected]> Co-authored-by: N. Taylor Mullen <[email protected]>
Diffstat (limited to 'packages/cli/src/ui/components/AuthDialog.test.tsx')
-rw-r--r--packages/cli/src/ui/components/AuthDialog.test.tsx40
1 files changed, 39 insertions, 1 deletions
diff --git a/packages/cli/src/ui/components/AuthDialog.test.tsx b/packages/cli/src/ui/components/AuthDialog.test.tsx
index 8f07e2a5..60a8a930 100644
--- a/packages/cli/src/ui/components/AuthDialog.test.tsx
+++ b/packages/cli/src/ui/components/AuthDialog.test.tsx
@@ -5,7 +5,7 @@
*/
import { render } from 'ink-testing-library';
-import { describe, it, expect, vi } from 'vitest';
+import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import { AuthDialog } from './AuthDialog.js';
import { LoadedSettings, SettingScope } from '../../config/settings.js';
import { AuthType } from '@google/gemini-cli-core';
@@ -13,7 +13,21 @@ import { AuthType } from '@google/gemini-cli-core';
describe('AuthDialog', () => {
const wait = (ms = 50) => new Promise((resolve) => setTimeout(resolve, ms));
+ let originalEnv: NodeJS.ProcessEnv;
+
+ beforeEach(() => {
+ originalEnv = { ...process.env };
+ process.env.GEMINI_API_KEY = '';
+ vi.clearAllMocks();
+ });
+
+ afterEach(() => {
+ process.env = originalEnv;
+ });
+
it('should show an error if the initial auth type is invalid', () => {
+ process.env.GEMINI_API_KEY = '';
+
const settings: LoadedSettings = new LoadedSettings(
{
settings: {
@@ -41,6 +55,30 @@ describe('AuthDialog', () => {
);
});
+ it('should detect GEMINI_API_KEY environment variable', () => {
+ process.env.GEMINI_API_KEY = 'foobar';
+
+ const settings: LoadedSettings = new LoadedSettings(
+ {
+ settings: {
+ selectedAuthType: undefined,
+ },
+ path: '',
+ },
+ {
+ settings: {},
+ path: '',
+ },
+ [],
+ );
+
+ const { lastFrame } = render(
+ <AuthDialog onSelect={() => {}} settings={settings} />,
+ );
+
+ expect(lastFrame()).toContain('Existing API key detected (GEMINI_API_KEY)');
+ });
+
it('should prevent exiting when no auth method is selected and show error message', async () => {
const onSelect = vi.fn();
const settings: LoadedSettings = new LoadedSettings(