import { mkdtempSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { vi } from "vitest"; /** * Carrega os módulos do servidor com um STORAGE_ROOT temporário. * O SessionManager lê a variável e cria o singleton no import, então o módulo * precisa ser reimportado a cada teste. */ export async function loadModules() { const storageRoot = mkdtempSync(join(tmpdir(), "downloader-test-")); process.env.STORAGE_ROOT = storageRoot; vi.resetModules(); const { sessionManager } = await import("../src/lib/SessionManager.js"); const { DownloadManager } = await import("../src/lib/DownloadManager.js"); return { storageRoot, sessionManager, DownloadManager }; }