perf(server): descarta as tasks de sessões expiradas e adiciona testes do servidor

O Map de tasks em DownloadManager nunca removia entradas; em um servidor
de longa duração ele crescia sem limite, mesmo com os arquivos da sessão
já apagados. O SessionManager agora avisa quando destrói uma sessão e o
DownloadManager descarta as tasks dela.
This commit is contained in:
evandro committed 2026-10-10 03:56:15 -03:00
1 parent d181c76dfd
commit 6fbc1222b4
5 files changed
+118 -4

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
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 };
}