summaryrefslogtreecommitdiff
path: root/packages/core/src/config/config.test.ts
diff options
context:
space:
mode:
authorAbhi <[email protected]>2025-07-14 13:23:51 -0400
committerGitHub <[email protected]>2025-07-14 17:23:51 +0000
commit9dc812dd4b90008575e747e9a821feddd2c4dc49 (patch)
tree23c293f7f6611efd6a38d705d700e240c42f11b8 /packages/core/src/config/config.test.ts
parent2f1d6234def2c8c77c2afebd9f83a2dcf3d6aacd (diff)
fix(checkpoint): Prevent silent failure and enable for non-Git projects (#4144)
Diffstat (limited to 'packages/core/src/config/config.test.ts')
-rw-r--r--packages/core/src/config/config.test.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/packages/core/src/config/config.test.ts b/packages/core/src/config/config.test.ts
index c9965e87..bb074a71 100644
--- a/packages/core/src/config/config.test.ts
+++ b/packages/core/src/config/config.test.ts
@@ -17,6 +17,7 @@ import {
createContentGeneratorConfig,
} from '../core/contentGenerator.js';
import { GeminiClient } from '../core/client.js';
+import { GitService } from '../services/gitService.js';
import { loadServerHierarchicalMemory } from '../utils/memoryDiscovery.js';
// Mock dependencies that might be called during Config construction or createServerConfig
@@ -75,6 +76,12 @@ vi.mock('../telemetry/index.js', async (importOriginal) => {
};
});
+vi.mock('../services/gitService.js', () => {
+ const GitServiceMock = vi.fn();
+ GitServiceMock.prototype.initialize = vi.fn();
+ return { GitService: GitServiceMock };
+});
+
describe('Server Config (config.ts)', () => {
const MODEL = 'gemini-pro';
const SANDBOX: SandboxConfig = {
@@ -108,6 +115,32 @@ describe('Server Config (config.ts)', () => {
vi.clearAllMocks();
});
+ describe('initialize', () => {
+ it('should throw an error if checkpointing is enabled and GitService fails', async () => {
+ const gitError = new Error('Git is not installed');
+ (GitService.prototype.initialize as Mock).mockRejectedValue(gitError);
+
+ const config = new Config({
+ ...baseParams,
+ checkpointing: true,
+ });
+
+ await expect(config.initialize()).rejects.toThrow(gitError);
+ });
+
+ it('should not throw an error if checkpointing is disabled and GitService fails', async () => {
+ const gitError = new Error('Git is not installed');
+ (GitService.prototype.initialize as Mock).mockRejectedValue(gitError);
+
+ const config = new Config({
+ ...baseParams,
+ checkpointing: false,
+ });
+
+ await expect(config.initialize()).resolves.toBeUndefined();
+ });
+ });
+
describe('refreshAuth', () => {
it('should refresh auth and update config', async () => {
const config = new Config(baseParams);