diff options
Diffstat (limited to 'packages/core/src/config/storage.test.ts')
| -rw-r--r-- | packages/core/src/config/storage.test.ts | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/core/src/config/storage.test.ts b/packages/core/src/config/storage.test.ts new file mode 100644 index 00000000..4dab76f1 --- /dev/null +++ b/packages/core/src/config/storage.test.ts @@ -0,0 +1,55 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import { describe, it, expect, vi } from 'vitest'; +import * as os from 'os'; +import * as path from 'node:path'; + +vi.mock('fs', async (importOriginal) => { + const actual = await importOriginal<typeof import('fs')>(); + return { + ...actual, + mkdirSync: vi.fn(), + }; +}); + +import { Storage } from './storage.js'; + +describe('Storage – getGlobalSettingsPath', () => { + it('returns path to ~/.gemini/settings.json', () => { + const expected = path.join(os.homedir(), '.gemini', 'settings.json'); + expect(Storage.getGlobalSettingsPath()).toBe(expected); + }); +}); + +describe('Storage – additional helpers', () => { + const projectRoot = '/tmp/project'; + const storage = new Storage(projectRoot); + + it('getWorkspaceSettingsPath returns project/.gemini/settings.json', () => { + const expected = path.join(projectRoot, '.gemini', 'settings.json'); + expect(storage.getWorkspaceSettingsPath()).toBe(expected); + }); + + it('getUserCommandsDir returns ~/.gemini/commands', () => { + const expected = path.join(os.homedir(), '.gemini', 'commands'); + expect(Storage.getUserCommandsDir()).toBe(expected); + }); + + it('getProjectCommandsDir returns project/.gemini/commands', () => { + const expected = path.join(projectRoot, '.gemini', 'commands'); + expect(storage.getProjectCommandsDir()).toBe(expected); + }); + + it('getMcpOAuthTokensPath returns ~/.gemini/mcp-oauth-tokens.json', () => { + const expected = path.join( + os.homedir(), + '.gemini', + 'mcp-oauth-tokens.json', + ); + expect(Storage.getMcpOAuthTokensPath()).toBe(expected); + }); +}); |
