test: tighten relay smoke + slack token validation

This commit is contained in:
Peter Steinberger
2026-02-16 01:45:10 +00:00
parent 4d9e310dad
commit 014d45f7ee
2 changed files with 56 additions and 0 deletions

View File

@@ -33,4 +33,39 @@ describe("Slack token config fields", () => {
});
expect(res.ok).toBe(true);
});
it("rejects invalid userTokenReadOnly types", () => {
const res = validateConfigObject({
channels: {
slack: {
botToken: "xoxb-any",
appToken: "xapp-any",
userToken: "xoxp-any",
// oxlint-disable-next-line typescript/no-explicit-any
userTokenReadOnly: "no" as any,
},
},
});
expect(res.ok).toBe(false);
if (!res.ok) {
expect(res.issues.some((iss) => iss.path.includes("userTokenReadOnly"))).toBe(true);
}
});
it("rejects invalid userToken types", () => {
const res = validateConfigObject({
channels: {
slack: {
botToken: "xoxb-any",
appToken: "xapp-any",
// oxlint-disable-next-line typescript/no-explicit-any
userToken: 123 as any,
},
},
});
expect(res.ok).toBe(false);
if (!res.ok) {
expect(res.issues.some((iss) => iss.path.includes("userToken"))).toBe(true);
}
});
});

View File

@@ -10,6 +10,18 @@ describe("parseRelaySmokeTest", () => {
expect(parseRelaySmokeTest(["--smoke", "qr"], {})).toBe("qr");
});
it("rejects --smoke without a value", () => {
expect(() => parseRelaySmokeTest(["--smoke"], {})).toThrow(
"Missing value for --smoke (expected: qr)",
);
});
it("rejects --smoke when the next arg is another flag", () => {
expect(() => parseRelaySmokeTest(["--smoke", "--smoke-qr"], {})).toThrow(
"Missing value for --smoke (expected: qr)",
);
});
it("parses --smoke-qr", () => {
expect(parseRelaySmokeTest(["--smoke-qr"], {})).toBe("qr");
});
@@ -19,9 +31,18 @@ describe("parseRelaySmokeTest", () => {
expect(parseRelaySmokeTest(["send"], { OPENCLAW_SMOKE_QR: "1" })).toBe(null);
});
it("supports OPENCLAW_SMOKE=qr only when no args", () => {
expect(parseRelaySmokeTest([], { OPENCLAW_SMOKE: "qr" })).toBe("qr");
expect(parseRelaySmokeTest(["send"], { OPENCLAW_SMOKE: "qr" })).toBe(null);
});
it("rejects unknown smoke values", () => {
expect(() => parseRelaySmokeTest(["--smoke", "nope"], {})).toThrow("Unknown smoke test");
});
it("prefers explicit --smoke over env vars", () => {
expect(parseRelaySmokeTest(["--smoke", "qr"], { OPENCLAW_SMOKE: "nope" })).toBe("qr");
});
});
describe("runRelaySmokeTest", () => {