test: share qr cli setup code helpers

This commit is contained in:
Peter Steinberger
2026-03-14 00:11:26 +00:00
parent c90b10b02f
commit 54999be326

View File

@@ -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();
}); });