summaryrefslogtreecommitdiff
path: root/integration-tests/globalSetup.ts
diff options
context:
space:
mode:
Diffstat (limited to 'integration-tests/globalSetup.ts')
-rw-r--r--integration-tests/globalSetup.ts35
1 files changed, 34 insertions, 1 deletions
diff --git a/integration-tests/globalSetup.ts b/integration-tests/globalSetup.ts
index 00327a91..46894f88 100644
--- a/integration-tests/globalSetup.ts
+++ b/integration-tests/globalSetup.ts
@@ -9,16 +9,38 @@ if (process.env.NO_COLOR !== undefined) {
delete process.env.NO_COLOR;
}
-import { mkdir, readdir, rm } from 'fs/promises';
+import { mkdir, readdir, rm, readFile, writeFile, unlink } from 'fs/promises';
import { join, dirname } from 'path';
import { fileURLToPath } from 'url';
+import * as os from 'os';
+
+import {
+ GEMINI_CONFIG_DIR,
+ DEFAULT_CONTEXT_FILENAME,
+} from '../packages/core/src/tools/memoryTool.js';
const __dirname = dirname(fileURLToPath(import.meta.url));
const rootDir = join(__dirname, '..');
const integrationTestsDir = join(rootDir, '.integration-tests');
let runDir = ''; // Make runDir accessible in teardown
+const memoryFilePath = join(
+ os.homedir(),
+ GEMINI_CONFIG_DIR,
+ DEFAULT_CONTEXT_FILENAME,
+);
+let originalMemoryContent: string | null = null;
+
export async function setup() {
+ try {
+ originalMemoryContent = await readFile(memoryFilePath, 'utf-8');
+ } catch (e) {
+ if ((e as NodeJS.ErrnoException).code !== 'ENOENT') {
+ throw e;
+ }
+ // File doesn't exist, which is fine.
+ }
+
runDir = join(integrationTestsDir, `${Date.now()}`);
await mkdir(runDir, { recursive: true });
@@ -57,4 +79,15 @@ export async function teardown() {
if (process.env.KEEP_OUTPUT !== 'true' && runDir) {
await rm(runDir, { recursive: true, force: true });
}
+
+ if (originalMemoryContent !== null) {
+ await mkdir(dirname(memoryFilePath), { recursive: true });
+ await writeFile(memoryFilePath, originalMemoryContent, 'utf-8');
+ } else {
+ try {
+ await unlink(memoryFilePath);
+ } catch {
+ // File might not exist if the test failed before creating it.
+ }
+ }
}