fix: clean up server dependencies before deletion
This commit is contained in:
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);
|
||||
});
|
||||
Reference in new issue
Block a user