chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import { readFileSync } from "node:fs";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import path from "node:path";
|
||||
|
||||
const scriptDir = path.dirname(fileURLToPath(import.meta.url));
|
||||
const listSource = readFileSync(
|
||||
path.resolve(scriptDir, "../src/pages/instances/InstanceListPage.tsx"),
|
||||
"utf8",
|
||||
);
|
||||
const detailSource = readFileSync(
|
||||
path.resolve(scriptDir, "../src/pages/instances/InstanceDetailPage.tsx"),
|
||||
"utf8",
|
||||
);
|
||||
|
||||
function assert(condition, message) {
|
||||
if (!condition) {
|
||||
throw new Error(message);
|
||||
}
|
||||
}
|
||||
|
||||
assert(
|
||||
!listSource.includes("useInstanceStatusWebSocket") &&
|
||||
!listSource.includes("InstanceStatusUpdate"),
|
||||
"Instance list must not keep a long-lived instance status WebSocket connection.",
|
||||
);
|
||||
|
||||
assert(
|
||||
listSource.includes("window.setInterval") &&
|
||||
listSource.includes('instance.status === "creating"') &&
|
||||
listSource.includes('instance.status === "deleting"'),
|
||||
"Instance list must keep transition-state polling after removing WebSocket updates.",
|
||||
);
|
||||
|
||||
assert(
|
||||
detailSource.includes("useInstanceStatusWebSocket"),
|
||||
"Instance detail should keep WebSocket updates for focused real-time status.",
|
||||
);
|
||||
|
||||
console.log("Instance list WebSocket contract is valid.");
|
||||
Reference in New Issue
Block a user