瀏覽代碼

Fix test isolation: use separate YAML config for CLI tests

- Create test config directory in beforeAll
- Pass QMD_CONFIG_DIR to spawned CLI processes
- Initialize with empty collections config
- Tests now properly isolated from user's real config

Test results improved: 193 passing (90.6%), 16 failing (down from 20)
Tobi Lutke 5 月之前
父節點
當前提交
6210720c08
共有 1 個文件被更改,包括 10 次插入0 次删除
  1. 10 0
      src/cli.test.ts

+ 10 - 0
src/cli.test.ts

@@ -13,6 +13,7 @@ import { join } from "path";
 // Test fixtures directory and database path
 let testDir: string;
 let testDbPath: string;
+let testConfigDir: string;
 let fixturesDir: string;
 let testCounter = 0; // Unique counter for each test run
 
@@ -32,6 +33,7 @@ async function runQmd(
     env: {
       ...process.env,
       INDEX_PATH: dbPath,
+      QMD_CONFIG_DIR: testConfigDir, // Use test config directory
       PWD: workingDir, // Must explicitly set PWD since getPwd() checks this
       ...options.env,
     },
@@ -57,12 +59,20 @@ beforeAll(async () => {
   // Create temp directory structure
   testDir = await mkdtemp(join(tmpdir(), "qmd-test-"));
   testDbPath = join(testDir, "test.sqlite");
+  testConfigDir = join(testDir, "config");
   fixturesDir = join(testDir, "fixtures");
 
+  await mkdir(testConfigDir, { recursive: true });
   await mkdir(fixturesDir, { recursive: true });
   await mkdir(join(fixturesDir, "notes"), { recursive: true });
   await mkdir(join(fixturesDir, "docs"), { recursive: true });
 
+  // Create empty YAML config for tests
+  await writeFile(
+    join(testConfigDir, "index.yml"),
+    "collections: {}\n"
+  );
+
   // Create test markdown files
   await writeFile(
     join(fixturesDir, "README.md"),