mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 17:24:32 +00:00
test(gateway): dedupe tailscale header auth fixtures
This commit is contained in:
@@ -27,6 +27,24 @@ function createLimiterSpy(): AuthRateLimiter & {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createTailscaleForwardedReq(): never {
|
||||||
|
return {
|
||||||
|
socket: { remoteAddress: "127.0.0.1" },
|
||||||
|
headers: {
|
||||||
|
host: "gateway.local",
|
||||||
|
"x-forwarded-for": "100.64.0.1",
|
||||||
|
"x-forwarded-proto": "https",
|
||||||
|
"x-forwarded-host": "ai-hub.bone-egret.ts.net",
|
||||||
|
"tailscale-user-login": "peter",
|
||||||
|
"tailscale-user-name": "Peter",
|
||||||
|
},
|
||||||
|
} as never;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createTailscaleWhois() {
|
||||||
|
return async () => ({ login: "peter", name: "Peter" });
|
||||||
|
}
|
||||||
|
|
||||||
describe("gateway auth", () => {
|
describe("gateway auth", () => {
|
||||||
it("resolves token/password from OPENCLAW gateway env vars", () => {
|
it("resolves token/password from OPENCLAW gateway env vars", () => {
|
||||||
expect(
|
expect(
|
||||||
@@ -197,18 +215,8 @@ describe("gateway auth", () => {
|
|||||||
const res = await authorizeGatewayConnect({
|
const res = await authorizeGatewayConnect({
|
||||||
auth: { mode: "token", token: "secret", allowTailscale: true },
|
auth: { mode: "token", token: "secret", allowTailscale: true },
|
||||||
connectAuth: null,
|
connectAuth: null,
|
||||||
tailscaleWhois: async () => ({ login: "peter", name: "Peter" }),
|
tailscaleWhois: createTailscaleWhois(),
|
||||||
req: {
|
req: createTailscaleForwardedReq(),
|
||||||
socket: { remoteAddress: "127.0.0.1" },
|
|
||||||
headers: {
|
|
||||||
host: "gateway.local",
|
|
||||||
"x-forwarded-for": "100.64.0.1",
|
|
||||||
"x-forwarded-proto": "https",
|
|
||||||
"x-forwarded-host": "ai-hub.bone-egret.ts.net",
|
|
||||||
"tailscale-user-login": "peter",
|
|
||||||
"tailscale-user-name": "Peter",
|
|
||||||
},
|
|
||||||
} as never,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(res.ok).toBe(false);
|
expect(res.ok).toBe(false);
|
||||||
@@ -219,19 +227,9 @@ describe("gateway auth", () => {
|
|||||||
const res = await authorizeGatewayConnect({
|
const res = await authorizeGatewayConnect({
|
||||||
auth: { mode: "token", token: "secret", allowTailscale: true },
|
auth: { mode: "token", token: "secret", allowTailscale: true },
|
||||||
connectAuth: null,
|
connectAuth: null,
|
||||||
tailscaleWhois: async () => ({ login: "peter", name: "Peter" }),
|
tailscaleWhois: createTailscaleWhois(),
|
||||||
authSurface: "ws-control-ui",
|
authSurface: "ws-control-ui",
|
||||||
req: {
|
req: createTailscaleForwardedReq(),
|
||||||
socket: { remoteAddress: "127.0.0.1" },
|
|
||||||
headers: {
|
|
||||||
host: "gateway.local",
|
|
||||||
"x-forwarded-for": "100.64.0.1",
|
|
||||||
"x-forwarded-proto": "https",
|
|
||||||
"x-forwarded-host": "ai-hub.bone-egret.ts.net",
|
|
||||||
"tailscale-user-login": "peter",
|
|
||||||
"tailscale-user-name": "Peter",
|
|
||||||
},
|
|
||||||
} as never,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(res.ok).toBe(true);
|
expect(res.ok).toBe(true);
|
||||||
@@ -243,18 +241,8 @@ describe("gateway auth", () => {
|
|||||||
const res = await authorizeHttpGatewayConnect({
|
const res = await authorizeHttpGatewayConnect({
|
||||||
auth: { mode: "token", token: "secret", allowTailscale: true },
|
auth: { mode: "token", token: "secret", allowTailscale: true },
|
||||||
connectAuth: null,
|
connectAuth: null,
|
||||||
tailscaleWhois: async () => ({ login: "peter", name: "Peter" }),
|
tailscaleWhois: createTailscaleWhois(),
|
||||||
req: {
|
req: createTailscaleForwardedReq(),
|
||||||
socket: { remoteAddress: "127.0.0.1" },
|
|
||||||
headers: {
|
|
||||||
host: "gateway.local",
|
|
||||||
"x-forwarded-for": "100.64.0.1",
|
|
||||||
"x-forwarded-proto": "https",
|
|
||||||
"x-forwarded-host": "ai-hub.bone-egret.ts.net",
|
|
||||||
"tailscale-user-login": "peter",
|
|
||||||
"tailscale-user-name": "Peter",
|
|
||||||
},
|
|
||||||
} as never,
|
|
||||||
});
|
});
|
||||||
expect(res.ok).toBe(false);
|
expect(res.ok).toBe(false);
|
||||||
expect(res.reason).toBe("token_missing");
|
expect(res.reason).toBe("token_missing");
|
||||||
@@ -264,18 +252,8 @@ describe("gateway auth", () => {
|
|||||||
const res = await authorizeWsControlUiGatewayConnect({
|
const res = await authorizeWsControlUiGatewayConnect({
|
||||||
auth: { mode: "token", token: "secret", allowTailscale: true },
|
auth: { mode: "token", token: "secret", allowTailscale: true },
|
||||||
connectAuth: null,
|
connectAuth: null,
|
||||||
tailscaleWhois: async () => ({ login: "peter", name: "Peter" }),
|
tailscaleWhois: createTailscaleWhois(),
|
||||||
req: {
|
req: createTailscaleForwardedReq(),
|
||||||
socket: { remoteAddress: "127.0.0.1" },
|
|
||||||
headers: {
|
|
||||||
host: "gateway.local",
|
|
||||||
"x-forwarded-for": "100.64.0.1",
|
|
||||||
"x-forwarded-proto": "https",
|
|
||||||
"x-forwarded-host": "ai-hub.bone-egret.ts.net",
|
|
||||||
"tailscale-user-login": "peter",
|
|
||||||
"tailscale-user-name": "Peter",
|
|
||||||
},
|
|
||||||
} as never,
|
|
||||||
});
|
});
|
||||||
expect(res.ok).toBe(true);
|
expect(res.ok).toBe(true);
|
||||||
expect(res.method).toBe("tailscale");
|
expect(res.method).toBe("tailscale");
|
||||||
|
|||||||
Reference in New Issue
Block a user