Files
diegosouzapw--omniroute/tests/unit/webhook-dispatcher-routing.test.ts
2026-07-13 13:39:12 +08:00

32 lines
1.1 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
const { encryptMetadata, decryptMetadata } = await import("../../src/lib/webhookDispatcher.ts");
test("encryptMetadata roundtrips without encryption key (passthrough mode)", () => {
const original = { botToken: "123456:ABC-DEF", extra: "value" };
const encrypted = encryptMetadata(original);
assert.ok(typeof encrypted === "string" && encrypted.length > 0);
const decrypted = decryptMetadata(encrypted);
assert.deepEqual(decrypted, original);
});
test("decryptMetadata returns null for null input", () => {
const result = decryptMetadata(null);
assert.equal(result, null);
});
test("decryptMetadata returns null for malformed JSON", () => {
// Passthrough mode stores plaintext — inject bad JSON
const result = decryptMetadata("not-valid-json");
assert.equal(result, null);
});
test("encryptMetadata produces stable parseable JSON in passthrough mode", () => {
const meta = { botToken: "tok", chatId: "-100123" };
const enc = encryptMetadata(meta);
const dec = decryptMetadata(enc);
assert.equal(dec?.botToken, "tok");
assert.equal(dec?.chatId, "-100123");
});