Files
openclaw/src/infra/ssh-tunnel.test.ts
2026-03-13 20:12:04 +00:00

30 lines
926 B
TypeScript

import { describe, expect, it } from "vitest";
import { parseSshTarget } from "./ssh-tunnel.js";
describe("parseSshTarget", () => {
it("parses user@host:port targets", () => {
expect(parseSshTarget("me@example.com:2222")).toEqual({
user: "me",
host: "example.com",
port: 2222,
});
});
it("strips an ssh prefix and keeps the default port when missing", () => {
expect(parseSshTarget(" ssh alice@example.com ")).toEqual({
user: "alice",
host: "example.com",
port: 22,
});
});
it("rejects invalid hosts and ports", () => {
expect(parseSshTarget("")).toBeNull();
expect(parseSshTarget("me@example.com:0")).toBeNull();
expect(parseSshTarget("me@example.com:not-a-port")).toBeNull();
expect(parseSshTarget("-V")).toBeNull();
expect(parseSshTarget("me@-badhost")).toBeNull();
expect(parseSshTarget("-oProxyCommand=echo")).toBeNull();
});
});