fix: use explicit durable bridge entrypoint
This commit is contained in:
@@ -5,14 +5,12 @@ import { existsSync, mkdirSync, mkdtempSync, rmSync, symlinkSync, writeFileSync
|
||||
import { createServer } from "node:http";
|
||||
import { tmpdir } from "node:os";
|
||||
import { join } from "node:path";
|
||||
import { pathToFileURL } from "node:url";
|
||||
import test from "node:test";
|
||||
import {
|
||||
createGithubSyncHandler,
|
||||
createDurableInboxStore,
|
||||
createDurableSyncController,
|
||||
createSyncCoordinator,
|
||||
isMainModule,
|
||||
run,
|
||||
runResult,
|
||||
syncRepository,
|
||||
@@ -20,17 +18,21 @@ import {
|
||||
|
||||
const zeroDelay = async () => {};
|
||||
|
||||
test("main module detection follows Kubernetes ConfigMap symlinks", () => {
|
||||
test("explicit entrypoint starts through Kubernetes ConfigMap symlinks", () => {
|
||||
const root = mkdtempSync(join(tmpdir(), "gitea-sync-main-"));
|
||||
try {
|
||||
const dataDirectory = join(root, "..data");
|
||||
const source = join(dataDirectory, "server.mjs");
|
||||
const mounted = join(root, "server.mjs");
|
||||
const serverSource = join(dataDirectory, "server.mjs");
|
||||
const entrypointSource = join(dataDirectory, "entrypoint.mjs");
|
||||
const marker = join(root, "started");
|
||||
mkdirSync(dataDirectory);
|
||||
writeFileSync(source, "export {};\n", { flag: "wx" });
|
||||
symlinkSync(join("..data", "server.mjs"), mounted);
|
||||
writeFileSync(serverSource, `import { writeFileSync } from "node:fs";\nexport function startServer() { writeFileSync(${JSON.stringify(marker)}, "started\\n"); }\n`, { flag: "wx" });
|
||||
writeFileSync(entrypointSource, 'import { startServer } from "./server.mjs";\nstartServer();\n', { flag: "wx" });
|
||||
symlinkSync(join("..data", "server.mjs"), join(root, "server.mjs"));
|
||||
symlinkSync(join("..data", "entrypoint.mjs"), join(root, "entrypoint.mjs"));
|
||||
|
||||
assert.equal(isMainModule(mounted, pathToFileURL(source).href), true);
|
||||
execFileSync(process.execPath, [join(root, "entrypoint.mjs")], { stdio: "pipe" });
|
||||
assert.equal(existsSync(marker), true);
|
||||
} finally {
|
||||
rmSync(root, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user