Merged via /review-pr -> /prepare-pr -> /merge-pr. Prepared head SHA: be1b73182cdca9c2331e2113bd1a08b977181974 Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com> Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com> Reviewed-by: @gumadeiras
112 lines
2.9 KiB
TypeScript
112 lines
2.9 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import type { OpenClawConfig } from "../config/types.js";
|
|
import { ensureBrowserControlAuth } from "./control-auth.js";
|
|
|
|
describe("ensureBrowserControlAuth", () => {
|
|
describe("trusted-proxy mode", () => {
|
|
it("should not auto-generate token when auth mode is trusted-proxy", async () => {
|
|
const cfg: OpenClawConfig = {
|
|
gateway: {
|
|
auth: {
|
|
mode: "trusted-proxy",
|
|
trustedProxy: {
|
|
userHeader: "x-forwarded-user",
|
|
},
|
|
},
|
|
trustedProxies: ["192.168.1.1"],
|
|
},
|
|
};
|
|
|
|
const result = await ensureBrowserControlAuth({
|
|
cfg,
|
|
env: { OPENCLAW_BROWSER_AUTO_AUTH: "1" },
|
|
});
|
|
|
|
expect(result.generatedToken).toBeUndefined();
|
|
expect(result.auth.token).toBeUndefined();
|
|
expect(result.auth.password).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
describe("password mode", () => {
|
|
it("should not auto-generate token when auth mode is password (even if password not set)", async () => {
|
|
const cfg: OpenClawConfig = {
|
|
gateway: {
|
|
auth: {
|
|
mode: "password",
|
|
},
|
|
},
|
|
};
|
|
|
|
const result = await ensureBrowserControlAuth({
|
|
cfg,
|
|
env: { OPENCLAW_BROWSER_AUTO_AUTH: "1" },
|
|
});
|
|
|
|
expect(result.generatedToken).toBeUndefined();
|
|
expect(result.auth.token).toBeUndefined();
|
|
expect(result.auth.password).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
describe("none mode", () => {
|
|
it("should not auto-generate token when auth mode is none", async () => {
|
|
const cfg: OpenClawConfig = {
|
|
gateway: {
|
|
auth: {
|
|
mode: "none",
|
|
},
|
|
},
|
|
};
|
|
|
|
const result = await ensureBrowserControlAuth({
|
|
cfg,
|
|
env: { OPENCLAW_BROWSER_AUTO_AUTH: "1" },
|
|
});
|
|
|
|
expect(result.generatedToken).toBeUndefined();
|
|
expect(result.auth.token).toBeUndefined();
|
|
expect(result.auth.password).toBeUndefined();
|
|
});
|
|
});
|
|
|
|
describe("token mode", () => {
|
|
it("should return existing token if configured", async () => {
|
|
const cfg: OpenClawConfig = {
|
|
gateway: {
|
|
auth: {
|
|
mode: "token",
|
|
token: "existing-token-123",
|
|
},
|
|
},
|
|
};
|
|
|
|
const result = await ensureBrowserControlAuth({
|
|
cfg,
|
|
env: { OPENCLAW_BROWSER_AUTO_AUTH: "1" },
|
|
});
|
|
|
|
expect(result.generatedToken).toBeUndefined();
|
|
expect(result.auth.token).toBe("existing-token-123");
|
|
});
|
|
|
|
it("should skip auto-generation in test environment", async () => {
|
|
const cfg: OpenClawConfig = {
|
|
gateway: {
|
|
auth: {
|
|
mode: "token",
|
|
},
|
|
},
|
|
};
|
|
|
|
const result = await ensureBrowserControlAuth({
|
|
cfg,
|
|
env: { NODE_ENV: "test" },
|
|
});
|
|
|
|
expect(result.generatedToken).toBeUndefined();
|
|
expect(result.auth.token).toBeUndefined();
|
|
});
|
|
});
|
|
});
|