diff options
| author | Yuki Okita <[email protected]> | 2025-08-20 10:55:47 +0900 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-08-20 01:55:47 +0000 |
| commit | 21c6480b65528a98ac0e1e3855f3c78c1f9b7cbe (patch) | |
| tree | 5555ec429209e87e0c21483c9e5fddd53ac01dbc /packages/core/src/config/storage.test.ts | |
| parent | 1049d388451120587a8643a401fd71430a8cd5fe (diff) | |
Refac: Centralize storage file management (#4078)
Co-authored-by: Taylor Mullen <[email protected]>
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); + }); +}); |
