summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/config.test.ts
diff options
context:
space:
mode:
authorYuki Okita <[email protected]>2025-08-20 10:55:47 +0900
committerGitHub <[email protected]>2025-08-20 01:55:47 +0000
commit21c6480b65528a98ac0e1e3855f3c78c1f9b7cbe (patch)
tree5555ec429209e87e0c21483c9e5fddd53ac01dbc /packages/cli/src/config/config.test.ts
parent1049d388451120587a8643a401fd71430a8cd5fe (diff)
Refac: Centralize storage file management (#4078)
Co-authored-by: Taylor Mullen <[email protected]>
Diffstat (limited to 'packages/cli/src/config/config.test.ts')
-rw-r--r--packages/cli/src/config/config.test.ts62
1 files changed, 32 insertions, 30 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts
index 727f6fe1..c9426379 100644
--- a/packages/cli/src/config/config.test.ts
+++ b/packages/cli/src/config/config.test.ts
@@ -6,7 +6,6 @@
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
import * as os from 'os';
-import * as fs from 'fs';
import * as path from 'path';
import { ShellTool, EditTool, WriteFileTool } from '@google/gemini-cli-core';
import { loadCliConfig, parseArguments } from './config.js';
@@ -19,6 +18,38 @@ vi.mock('./trustedFolders.js', () => ({
isWorkspaceTrusted: vi.fn(),
}));
+vi.mock('fs', async (importOriginal) => {
+ const actualFs = await importOriginal<typeof import('fs')>();
+ const pathMod = await import('path');
+ const mockHome = '/mock/home/user';
+ const MOCK_CWD1 = process.cwd();
+ const MOCK_CWD2 = pathMod.resolve(pathMod.sep, 'home', 'user', 'project');
+
+ const mockPaths = new Set([
+ MOCK_CWD1,
+ MOCK_CWD2,
+ pathMod.resolve(pathMod.sep, 'cli', 'path1'),
+ pathMod.resolve(pathMod.sep, 'settings', 'path1'),
+ pathMod.join(mockHome, 'settings', 'path2'),
+ pathMod.join(MOCK_CWD2, 'cli', 'path2'),
+ pathMod.join(MOCK_CWD2, 'settings', 'path3'),
+ ]);
+
+ return {
+ ...actualFs,
+ mkdirSync: vi.fn(),
+ writeFileSync: vi.fn(),
+ existsSync: vi.fn((p) => mockPaths.has(p.toString())),
+ statSync: vi.fn((p) => {
+ if (mockPaths.has(p.toString())) {
+ return { isDirectory: () => true } as unknown as import('fs').Stats;
+ }
+ return (actualFs as typeof import('fs')).statSync(p as unknown as string);
+ }),
+ realpathSync: vi.fn((p) => p),
+ };
+});
+
vi.mock('os', async (importOriginal) => {
const actualOs = await importOriginal<typeof os>();
return {
@@ -1441,35 +1472,6 @@ describe('loadCliConfig folderTrust', () => {
});
});
-vi.mock('fs', async () => {
- const actualFs = await vi.importActual<typeof fs>('fs');
- const MOCK_CWD1 = process.cwd();
- const MOCK_CWD2 = path.resolve(path.sep, 'home', 'user', 'project');
-
- const mockPaths = new Set([
- MOCK_CWD1,
- MOCK_CWD2,
- path.resolve(path.sep, 'cli', 'path1'),
- path.resolve(path.sep, 'settings', 'path1'),
- path.join(os.homedir(), 'settings', 'path2'),
- path.join(MOCK_CWD2, 'cli', 'path2'),
- path.join(MOCK_CWD2, 'settings', 'path3'),
- ]);
-
- return {
- ...actualFs,
- existsSync: vi.fn((p) => mockPaths.has(p.toString())),
- statSync: vi.fn((p) => {
- if (mockPaths.has(p.toString())) {
- return { isDirectory: () => true };
- }
- // Fallback for other paths if needed, though the test should be specific.
- return actualFs.statSync(p);
- }),
- realpathSync: vi.fn((p) => p),
- };
-});
-
describe('loadCliConfig with includeDirectories', () => {
const originalArgv = process.argv;