mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-01 21:02:12 +03:00
65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
buildCloudflaredChildEnv,
|
|
extractTryCloudflareUrl,
|
|
getCloudflaredAssetSpec,
|
|
} from "../../src/lib/cloudflaredTunnel.ts";
|
|
|
|
test("extractTryCloudflareUrl parses trycloudflare URL from log output", () => {
|
|
const url = extractTryCloudflareUrl(
|
|
"INF +------------------------------------------------------------+\nINF | https://violet-sky-1234.trycloudflare.com |\nINF +------------------------------------------------------------+"
|
|
);
|
|
|
|
assert.equal(url, "https://violet-sky-1234.trycloudflare.com");
|
|
});
|
|
|
|
test("extractTryCloudflareUrl returns null when no tunnel URL is present", () => {
|
|
assert.equal(extractTryCloudflareUrl("cloudflared starting without assigned URL"), null);
|
|
});
|
|
|
|
test("getCloudflaredAssetSpec resolves linux amd64 binary", () => {
|
|
const spec = getCloudflaredAssetSpec("linux", "x64");
|
|
|
|
assert.deepEqual(spec, {
|
|
assetName: "cloudflared-linux-amd64",
|
|
binaryName: "cloudflared",
|
|
archive: "none",
|
|
downloadUrl:
|
|
"https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64",
|
|
});
|
|
});
|
|
|
|
test("getCloudflaredAssetSpec resolves darwin arm64 archive", () => {
|
|
const spec = getCloudflaredAssetSpec("darwin", "arm64");
|
|
|
|
assert.deepEqual(spec, {
|
|
assetName: "cloudflared-darwin-arm64.tgz",
|
|
binaryName: "cloudflared",
|
|
archive: "tgz",
|
|
downloadUrl:
|
|
"https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-darwin-arm64.tgz",
|
|
});
|
|
});
|
|
|
|
test("getCloudflaredAssetSpec returns null for unsupported platforms", () => {
|
|
assert.equal(getCloudflaredAssetSpec("freebsd", "x64"), null);
|
|
});
|
|
|
|
test("buildCloudflaredChildEnv keeps runtime essentials but drops secrets", () => {
|
|
const env = buildCloudflaredChildEnv({
|
|
PATH: "/usr/bin",
|
|
HOME: "/tmp/home",
|
|
HTTPS_PROXY: "http://proxy.internal:8080",
|
|
JWT_SECRET: "top-secret",
|
|
API_KEY_SECRET: "another-secret",
|
|
});
|
|
|
|
assert.deepEqual(env, {
|
|
PATH: "/usr/bin",
|
|
HOME: "/tmp/home",
|
|
HTTPS_PROXY: "http://proxy.internal:8080",
|
|
});
|
|
});
|