fix: clean up server dependencies before deletion

This commit is contained in:
KodekaTeam committed 2026-06-19 02:39:57 +07:00
1 parent a39fa83b31
commit ff72c75002
3 files changed
+53

No files matched your search

@@ -0,0 +1,45 @@
import assert from "node:assert/strict";
import { readFileSync } from "node:fs";
import test from "node:test";
function readSource(path: string) {
return readFileSync(path, "utf8");
}
function assertEnvironmentCleanupBeforeServerDelete(source: string) {
const environmentCleanup = source.indexOf("tx.environment.deleteMany");
const serverDelete = source.indexOf("tx.server.delete");
assert.notEqual(environmentCleanup, -1);
assert.notEqual(serverDelete, -1);
assert.ok(
environmentCleanup < serverDelete,
"server deletion must remove environments before deleting servers",
);
}
function assertStorageDestinationCleanupBeforeServerDelete(source: string) {
const storageCleanup = source.indexOf("tx.userStorageDestination.deleteMany");
const serverDelete = source.indexOf("tx.server.delete");
assert.notEqual(storageCleanup, -1);
assert.notEqual(serverDelete, -1);
assert.ok(
storageCleanup < serverDelete,
"server deletion must remove server-specific storage destinations before deleting servers",
);
}
test("server deletion removes dependent records before deleting the server", () => {
const source = readSource("src/server/routes/servers.ts");
assertEnvironmentCleanupBeforeServerDelete(source);
assertStorageDestinationCleanupBeforeServerDelete(source);
});
test("organization deletion removes dependent records before deleting servers", () => {
const source = readSource("src/server/routes/organizations.ts");
assertEnvironmentCleanupBeforeServerDelete(source);
assertStorageDestinationCleanupBeforeServerDelete(source);
});