Files
bot-railway-template/test/server.devices-approve.validation.test.js
vignesh07andVignesh ad49b8ead3 fix(template): sync gateway remote token + add devices commands (with validation)
Adds gateway.remote.token setup to prevent Control UI token mismatch and exposes devices list/approve in the debug console. Validates requestId and adds a small unit test.
2026-02-10 20:30:34 -08:00

26 lines
1.0 KiB
JavaScript

import test from "node:test";
import assert from "node:assert/strict";
function validateRequestId(raw) {
const requestId = String(raw || "").trim();
if (!requestId) return { ok: false, error: "Missing device request ID" };
if (!/^[A-Za-z0-9_-]+$/.test(requestId)) return { ok: false, error: "Invalid device request ID" };
return { ok: true };
}
test("devices approve requestId validation: missing", () => {
assert.deepEqual(validateRequestId(""), { ok: false, error: "Missing device request ID" });
assert.deepEqual(validateRequestId(" "), { ok: false, error: "Missing device request ID" });
});
test("devices approve requestId validation: rejects weird chars", () => {
assert.equal(validateRequestId("../../etc/passwd").ok, false);
assert.equal(validateRequestId("abc def").ok, false);
assert.equal(validateRequestId("abc$def").ok, false);
});
test("devices approve requestId validation: allows typical ids", () => {
assert.equal(validateRequestId("abc123").ok, true);
assert.equal(validateRequestId("req_123-ABC").ok, true);
});