Test: Absturz beim Beenden vermeiden (better-sqlite3)

This commit is contained in:
2026-08-22 22:57:59 +02:00
parent 38bc741660
commit 60c1e7be94
+15 -3
View File
@@ -203,6 +203,18 @@ pruefe("Die Aufgaben des ANDEREN Kunden bleiben",
db.prepare(`SELECT COUNT(*) n FROM wd_aufgaben WHERE kunde_id = ?`).get(kundeA).n > 0);
console.log(`\n===== ${ok} bestanden, ${fehler} fehlgeschlagen =====`);
db.close();
rmSync(tmp, { recursive: true, force: true });
process.exit(fehler ? 1 : 0);
/* Weder db.close() noch process.exit().
Beides zusammen bringt better-sqlite3 zum Absturz ("Assertion failed:
(env) != nullptr"): process.exit() reisst die Node-Umgebung ab,
waehrend der Aufraeumer der geschlossenen Datenbank noch laeuft. Der
Absturz kam NACH allen Prüfungen, verschluckte aber die gepufferte
Ausgabe -- es sah deshalb so aus, als waere der Test gar nicht
gelaufen. Eine halbe Stunde Fehlersuche an der falschen Stelle.
process.exitCode setzen statt exit() aufzurufen: Node beendet sich von
selbst, wenn nichts mehr zu tun ist, raeumt dabei ordentlich auf und
schreibt die Ausgabe vollstaendig raus. */
process.on("exit", () => rmSync(tmp, { recursive: true, force: true }));
process.exitCode = fehler ? 1 : 0;