import { describe, expect, it, vi } from "vite-plus/test"; import { maskedRenderServiceUrl, normalizeRenderServiceUrl, RenderBootstrapRequestError, requestRenderPairing,} from "./renderBootstrap"; describe("normalizeRenderServiceUrl", () => { it("accepts a bare Render hostname and keeps only its origin", () => { expect(normalizeRenderServiceUrl("demo.onrender.com/path")).toBe("https://demo.onrender.com"); }); it("rejects Render dashboard URLs", () => { expect(() => normalizeRenderServiceUrl("https://dashboard.render.com/web/srv-123")).toThrow( "not the Render dashboard URL", ); }); it("masks long service hostnames", () => { expect(maskedRenderServiceUrl("https://t3code-cloud-demo-eg5i.onrender.com")).toBe( "t3code-cloud-…i.onrender.com", ); });}); describe("requestRenderPairing", () => { it("claims a one-time pairing credential from the service URL", async () => { const fetcher = vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) => Response.json({ pairingCode: "pairing-code", label: "Render cloud environment" }), ); await expect( requestRenderPairing({ serviceUrl: "demo.onrender.com", fetcher, }), ).resolves.toEqual({ host: "https://demo.onrender.com", pairingCode: "pairing-code", label: "Render cloud environment", }); expect(fetcher).toHaveBeenCalledOnce(); expect(fetcher.mock.calls[0]?.[0].toString()).toBe( "https://demo.onrender.com/.well-known/t3/render/pair", ); }); it("explains when the service is still running an older deployment", async () => { const fetcher = vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) => Response.json({ message: "missing" }, { status: 404 }), ); const failure = await requestRenderPairing({ serviceUrl: "https://demo.onrender.com", fetcher, }).catch((error: unknown) => error); expect(failure).toBeInstanceOf(RenderBootstrapRequestError); expect((failure as Error).message).toContain("Deploy the latest version"); });});
import { describe, expect, it, vi } from "vite-plus/test";
import {
maskedRenderServiceUrl,
normalizeRenderServiceUrl,
RenderBootstrapRequestError,
requestRenderPairing,
} from "./renderBootstrap";
describe("normalizeRenderServiceUrl", () => {
it("accepts a bare Render hostname and keeps only its origin", () => {
expect(normalizeRenderServiceUrl("demo.onrender.com/path")).toBe("https://demo.onrender.com");
});
it("rejects Render dashboard URLs", () => {
expect(() => normalizeRenderServiceUrl("https://dashboard.render.com/web/srv-123")).toThrow(
"not the Render dashboard URL",
);
});
it("masks long service hostnames", () => {
expect(maskedRenderServiceUrl("https://t3code-cloud-demo-eg5i.onrender.com")).toBe(
"t3code-cloud-…i.onrender.com",
);
});
});
describe("requestRenderPairing", () => {
it("claims a one-time pairing credential from the service URL", async () => {
const fetcher = vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) =>
Response.json({ pairingCode: "pairing-code", label: "Render cloud environment" }),
);
await expect(
requestRenderPairing({
serviceUrl: "demo.onrender.com",
fetcher,
}),
).resolves.toEqual({
host: "https://demo.onrender.com",
pairingCode: "pairing-code",
label: "Render cloud environment",
});
expect(fetcher).toHaveBeenCalledOnce();
expect(fetcher.mock.calls[0]?.[0].toString()).toBe(
"https://demo.onrender.com/.well-known/t3/render/pair",
);
});
it("explains when the service is still running an older deployment", async () => {
const fetcher = vi.fn(async (_input: RequestInfo | URL, _init?: RequestInit) =>
Response.json({ message: "missing" }, { status: 404 }),
);
const failure = await requestRenderPairing({
serviceUrl: "https://demo.onrender.com",
fetcher,
}).catch((error: unknown) => error);
expect(failure).toBeInstanceOf(RenderBootstrapRequestError);
expect((failure as Error).message).toContain("Deploy the latest version");
});
});