Skip to content

Commit 588e18c

Browse files
committed
tidy tests
1 parent 9392475 commit 588e18c

File tree

6 files changed

+49
-65
lines changed

6 files changed

+49
-65
lines changed

packages/core/src/config/config.test.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import {
4545
PREVIEW_GEMINI_MODEL,
4646
PREVIEW_GEMINI_MODEL_AUTO,
4747
} from './models.js';
48+
import { initMockProjectRegistry } from '../test-utils/mockProjectRegistry.js';
4849

4950
vi.mock('fs', async (importOriginal) => {
5051
const actual = await importOriginal<typeof import('fs')>();
@@ -207,19 +208,6 @@ vi.mock('../core/tokenLimits.js', () => ({
207208
vi.mock('../code_assist/codeAssist.js');
208209
vi.mock('../code_assist/experiments/experiments.js');
209210

210-
const mockProjectRegistryInitialize = vi.hoisted(() =>
211-
vi.fn().mockReturnValue(undefined),
212-
);
213-
214-
vi.mock('./projectRegistry.js', () => {
215-
const ProjectRegistryMock = vi.fn();
216-
ProjectRegistryMock.prototype.initialize = mockProjectRegistryInitialize;
217-
ProjectRegistryMock.prototype.getShortId = vi
218-
.fn()
219-
.mockReturnValue('project-slug');
220-
return { ProjectRegistry: ProjectRegistryMock };
221-
});
222-
223211
describe('Server Config (config.ts)', () => {
224212
const MODEL = DEFAULT_GEMINI_MODEL;
225213
const SANDBOX: SandboxConfig = {
@@ -250,6 +238,7 @@ describe('Server Config (config.ts)', () => {
250238
beforeEach(() => {
251239
// Reset mocks if necessary
252240
vi.clearAllMocks();
241+
initMockProjectRegistry();
253242
vi.mocked(getExperiments).mockResolvedValue({
254243
experimentIds: [],
255244
flags: {},

packages/core/src/config/storage.test.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,22 @@ import { Storage } from './storage.js';
2020
import { GEMINI_DIR } from '../utils/paths.js';
2121
import { ProjectRegistry } from './projectRegistry.js';
2222
import { StorageMigration } from './storageMigration.js';
23+
import {
24+
initMockProjectRegistry,
25+
PROJECT_SLUG,
26+
} from 'src/test-utils/mockProjectRegistry.js';
2327

2428
vi.mock('./projectRegistry.js');
2529
vi.mock('./storageMigration.js');
2630

27-
const PROJECT_SLUG = 'project-slug';
28-
2931
describe('Storage – initialize', () => {
3032
const projectRoot = '/tmp/project';
3133
let storage: Storage;
3234

3335
beforeEach(() => {
3436
storage = new Storage(projectRoot);
3537
vi.clearAllMocks();
36-
37-
// Mock ProjectRegistry to return a predictable shortId
38-
vi.mocked(ProjectRegistry).prototype.initialize = vi
39-
.fn()
40-
.mockReturnValue(undefined);
41-
vi.mocked(ProjectRegistry).prototype.getShortId = vi
42-
.fn()
43-
.mockReturnValue(PROJECT_SLUG);
38+
initMockProjectRegistry();
4439

4540
// Mock StorageMigration.migrateDirectory
4641
vi.mocked(StorageMigration.migrateDirectory).mockReturnValue(undefined);

packages/core/src/core/logger.test.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,15 @@ import type { Content } from '@google/genai';
2828
import os from 'node:os';
2929
import { GEMINI_DIR } from '../utils/paths.js';
3030
import { debugLogger } from '../utils/debugLogger.js';
31+
import {
32+
initMockProjectRegistry,
33+
PROJECT_SLUG,
34+
} from 'src/test-utils/mockProjectRegistry.js';
3135

3236
const TMP_DIR_NAME = 'tmp';
3337
const LOG_FILE_NAME = 'logs.json';
3438
const CHECKPOINT_FILE_NAME = 'checkpoint.json';
3539

36-
const PROJECT_SLUG = 'project-slug';
3740
const TEST_GEMINI_DIR = path.join(
3841
os.homedir(),
3942
GEMINI_DIR,
@@ -71,25 +74,13 @@ vi.mock('../utils/session.js', () => ({
7174
sessionId: 'test-session-id',
7275
}));
7376

74-
const hoistedMockProjectRegistry = vi.hoisted(() => vi.fn());
75-
vi.mock('../config/projectRegistry.js', () => {
76-
hoistedMockProjectRegistry.mockImplementation(() => ({
77-
initialize: vi.fn(),
78-
getShortId: vi.fn().mockReturnValue(PROJECT_SLUG),
79-
}));
80-
return { ProjectRegistry: hoistedMockProjectRegistry };
81-
});
82-
8377
describe('Logger', () => {
8478
let logger: Logger;
8579
const testSessionId = 'test-session-id';
8680

8781
beforeEach(async () => {
8882
vi.resetAllMocks();
89-
hoistedMockProjectRegistry.mockImplementation(() => ({
90-
initialize: vi.fn(),
91-
getShortId: vi.fn().mockReturnValue(PROJECT_SLUG),
92-
}));
83+
initMockProjectRegistry();
9384
vi.useFakeTimers();
9485
vi.setSystemTime(new Date('2025-01-01T12:00:00.000Z'));
9586
// Clean up before the test

packages/core/src/scheduler/tool-executor.test.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import * as fileUtils from '../utils/fileUtils.js';
1717
import * as coreToolHookTriggers from '../core/coreToolHookTriggers.js';
1818
import { ShellToolInvocation } from '../tools/shell.js';
1919
import { createMockMessageBus } from '../test-utils/mock-message-bus.js';
20+
import { initMockProjectRegistry } from 'src/test-utils/mockProjectRegistry.js';
2021

2122
// Mock file utils
2223
vi.mock('../utils/fileUtils.js', () => ({
@@ -29,20 +30,11 @@ vi.mock('../core/coreToolHookTriggers.js', () => ({
2930
executeToolWithHooks: vi.fn(),
3031
}));
3132

32-
const hoistedMockProjectRegistry = vi.hoisted(() => vi.fn());
33-
vi.mock('../config/projectRegistry.js', () => {
34-
hoistedMockProjectRegistry.mockImplementation(() => ({
35-
initialize: vi.fn(),
36-
getShortId: vi.fn().mockReturnValue('project-slug'),
37-
}));
38-
return { ProjectRegistry: hoistedMockProjectRegistry };
39-
});
40-
4133
describe('ToolExecutor', () => {
4234
let config: Config;
4335
let executor: ToolExecutor;
4436

45-
beforeEach(async () => {
37+
beforeEach(() => {
4638
// Use the standard fake config factory
4739
config = makeFakeConfig();
4840
executor = new ToolExecutor(config);
@@ -58,10 +50,7 @@ describe('ToolExecutor', () => {
5850
vi.mocked(fileUtils.formatTruncatedToolOutput).mockReturnValue(
5951
'TruncatedContent...',
6052
);
61-
hoistedMockProjectRegistry.mockImplementation(() => ({
62-
initialize: vi.fn(),
63-
getShortId: vi.fn().mockReturnValue('project-slug'),
64-
}));
53+
initMockProjectRegistry();
6554
});
6655

6756
afterEach(() => {

packages/core/src/services/gitService.test.ts

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ import * as fs from 'node:fs/promises';
2020
import * as os from 'node:os';
2121
import { GEMINI_DIR, homedir as pathsHomedir } from '../utils/paths.js';
2222
import { spawnAsync } from '../utils/shell-utils.js';
23+
import {
24+
initMockProjectRegistry,
25+
PROJECT_SLUG,
26+
} from '../test-utils/mockProjectRegistry.js';
2327

2428
vi.mock('../utils/shell-utils.js', () => ({
2529
spawnAsync: vi.fn(),
@@ -77,16 +81,6 @@ vi.mock('../utils/debugLogger.js', () => ({
7781
debugLogger: hoistedMockDebugLogger,
7882
}));
7983

80-
const PROJECT_SLUG = 'project-slug';
81-
const hoistedMockProjectRegistry = vi.hoisted(() => vi.fn());
82-
vi.mock('../config/projectRegistry.js', () => {
83-
hoistedMockProjectRegistry.mockImplementation(() => ({
84-
initialize: vi.fn(),
85-
getShortId: vi.fn().mockReturnValue(PROJECT_SLUG),
86-
}));
87-
return { ProjectRegistry: hoistedMockProjectRegistry };
88-
});
89-
9084
describe('GitService', () => {
9185
let testRootDir: string;
9286
let projectRoot: string;
@@ -134,10 +128,7 @@ describe('GitService', () => {
134128
hoistedMockCommit.mockResolvedValue({
135129
commit: 'initial',
136130
});
137-
hoistedMockProjectRegistry.mockImplementation(() => ({
138-
initialize: vi.fn(),
139-
getShortId: vi.fn().mockReturnValue(PROJECT_SLUG),
140-
}));
131+
initMockProjectRegistry();
141132
storage = new Storage(projectRoot);
142133
});
143134

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @license
3+
* Copyright 2025 Google LLC
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
import { vi } from 'vitest';
8+
9+
import { ProjectRegistry } from '../config/projectRegistry.js';
10+
11+
export const PROJECT_SLUG = 'project-slug';
12+
13+
export function initMockProjectRegistry() {
14+
vi.mocked(ProjectRegistry).prototype.initialize = vi
15+
.fn()
16+
.mockReturnValue(undefined);
17+
vi.mocked(ProjectRegistry).prototype.getShortId = vi
18+
.fn()
19+
.mockReturnValue(PROJECT_SLUG);
20+
}
21+
22+
initMockProjectRegistry();
23+
24+
// export function createMockProjectRegistry() {
25+
// return {
26+
// initialize: vi.fn(),
27+
// getShortId: vi.fn().mockReturnValue(PROJECT_SLUG),
28+
// }
29+
// }

0 commit comments

Comments
 (0)