Files
2026-09-16 05:30:23 +00:00

27 lines
994 B
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { decryptSecret, encryptSecret, isEncryptedSecret } from "../src/secrets.js";
test("database secrets are encrypted and can be decrypted", () => {
process.env.SECRET_ENCRYPTION_KEY = "test-secret-key";
const encrypted = encryptSecret("zammad-token-with-specials-!$%&/()=?");
assert.equal(isEncryptedSecret(encrypted), true);
assert.notEqual(encrypted, "zammad-token-with-specials-!$%&/()=?");
assert.equal(decryptSecret(encrypted), "zammad-token-with-specials-!$%&/()=?");
});
test("plain legacy secrets are read as-is until migration encrypts them", () => {
assert.equal(decryptSecret("legacy-token"), "legacy-token");
assert.equal(decryptSecret(null), null);
});
test("already encrypted secrets are not encrypted twice", () => {
process.env.SECRET_ENCRYPTION_KEY = "test-secret-key";
const encrypted = encryptSecret("zammad-token");
assert.equal(encryptSecret(encrypted), encrypted);
});