Files
OmniRoute/tests/unit/db/encryption-error-handling.test.mjs
2026-04-21 04:48:32 -03:00

35 lines
1.3 KiB
JavaScript

import { test } from "node:test";
import assert from "node:assert";
import { decrypt } from "../../../src/lib/db/encryption.ts";
test("decrypt() with invalid auth tag should not crash and return ciphertext", () => {
const invalidCiphertext = "enc:v1:0000:0000:0000";
const result = decrypt(invalidCiphertext);
assert.strictEqual(result, invalidCiphertext, "Should return ciphertext unchanged on error");
assert.strictEqual(typeof result, "string", "Result should be a string");
});
test("decrypt() with malformed ciphertext should not crash", () => {
const malformed = "enc:v1:invalid";
const result = decrypt(malformed);
assert.strictEqual(result, malformed, "Should return malformed ciphertext unchanged");
});
test("decrypt() with null should return null", () => {
const result = decrypt(null);
assert.strictEqual(result, null, "Should return null for null input");
});
test("decrypt() with undefined should return undefined", () => {
const result = decrypt(undefined);
assert.strictEqual(result, undefined, "Should return undefined for undefined input");
});
test("decrypt() with non-encrypted string should return as-is", () => {
const plaintext = "this-is-not-encrypted";
const result = decrypt(plaintext);
assert.strictEqual(result, plaintext, "Should return plaintext unchanged");
});