mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 11:58:38 +00:00
test: share qr cli setup code helpers
This commit is contained in:
@@ -104,6 +104,12 @@ function createLocalGatewayPasswordRefAuth(secretId: string) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function createLocalGatewayEnvPasswordRefAuth(secretId: string) {
|
||||||
|
return {
|
||||||
|
password: { source: "env", provider: "default", id: secretId },
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
describe("registerQrCli", () => {
|
describe("registerQrCli", () => {
|
||||||
function createProgram() {
|
function createProgram() {
|
||||||
const program = new Command();
|
const program = new Command();
|
||||||
@@ -129,6 +135,18 @@ describe("registerQrCli", () => {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function expectLoggedSetupCode(url: string) {
|
||||||
|
const expected = encodePairingSetupCode({
|
||||||
|
url,
|
||||||
|
bootstrapToken: "bootstrap-123",
|
||||||
|
});
|
||||||
|
expect(runtime.log).toHaveBeenCalledWith(expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
function expectLoggedLocalSetupCode() {
|
||||||
|
expectLoggedSetupCode("ws://gateway.local:18789");
|
||||||
|
}
|
||||||
|
|
||||||
function mockTailscaleStatusLookup() {
|
function mockTailscaleStatusLookup() {
|
||||||
runCommandWithTimeout.mockResolvedValue({
|
runCommandWithTimeout.mockResolvedValue({
|
||||||
code: 0,
|
code: 0,
|
||||||
@@ -198,11 +216,7 @@ describe("registerQrCli", () => {
|
|||||||
|
|
||||||
await runQr(["--setup-code-only", "--token", "override-token"]);
|
await runQr(["--setup-code-only", "--token", "override-token"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("skips local password SecretRef resolution when --token override is provided", async () => {
|
it("skips local password SecretRef resolution when --token override is provided", async () => {
|
||||||
@@ -214,11 +228,7 @@ describe("registerQrCli", () => {
|
|||||||
|
|
||||||
await runQr(["--setup-code-only", "--token", "override-token"]);
|
await runQr(["--setup-code-only", "--token", "override-token"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("resolves local gateway auth password SecretRefs before setup code generation", async () => {
|
it("resolves local gateway auth password SecretRefs before setup code generation", async () => {
|
||||||
@@ -231,11 +241,7 @@ describe("registerQrCli", () => {
|
|||||||
|
|
||||||
await runQr(["--setup-code-only"]);
|
await runQr(["--setup-code-only"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -249,11 +255,7 @@ describe("registerQrCli", () => {
|
|||||||
|
|
||||||
await runQr(["--setup-code-only"]);
|
await runQr(["--setup-code-only"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -262,17 +264,13 @@ describe("registerQrCli", () => {
|
|||||||
createLocalGatewayConfigWithAuth({
|
createLocalGatewayConfigWithAuth({
|
||||||
mode: "token",
|
mode: "token",
|
||||||
token: "token-123",
|
token: "token-123",
|
||||||
password: { source: "env", provider: "default", id: "MISSING_LOCAL_GATEWAY_PASSWORD" },
|
...createLocalGatewayEnvPasswordRefAuth("MISSING_LOCAL_GATEWAY_PASSWORD"),
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await runQr(["--setup-code-only"]);
|
await runQr(["--setup-code-only"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -280,17 +278,13 @@ describe("registerQrCli", () => {
|
|||||||
vi.stubEnv("QR_INFERRED_GATEWAY_PASSWORD", "inferred-password");
|
vi.stubEnv("QR_INFERRED_GATEWAY_PASSWORD", "inferred-password");
|
||||||
loadConfig.mockReturnValue(
|
loadConfig.mockReturnValue(
|
||||||
createLocalGatewayConfigWithAuth({
|
createLocalGatewayConfigWithAuth({
|
||||||
password: { source: "env", provider: "default", id: "QR_INFERRED_GATEWAY_PASSWORD" },
|
...createLocalGatewayEnvPasswordRefAuth("QR_INFERRED_GATEWAY_PASSWORD"),
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
await runQr(["--setup-code-only"]);
|
await runQr(["--setup-code-only"]);
|
||||||
|
|
||||||
const expected = encodePairingSetupCode({
|
expectLoggedLocalSetupCode();
|
||||||
url: "ws://gateway.local:18789",
|
|
||||||
bootstrapToken: "bootstrap-123",
|
|
||||||
});
|
|
||||||
expect(runtime.log).toHaveBeenCalledWith(expected);
|
|
||||||
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
expect(resolveCommandSecretRefsViaGateway).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user