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:
1 parent
d181c76dfd
commit
6fbc1222b4
5 files changed
+118
-4
No files matched your search
@@ -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 };
|
||||
}
|
||||
Reference in new issue
Block a user