27 lines
994 B
TypeScript
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);
|
|
});
|