Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/utils/api/.server/CryptoApi.test.ts
T

28 lines
907 B
TypeScript

// @vitest-environment node
import { afterEach, describe, expect, test } from "vitest";
import CryptoApi from "./CryptoApi";
const previousCryptoSecret = process.env.CRYPTO_SECRET;
afterEach(() => {
process.env.CRYPTO_SECRET = previousCryptoSecret;
});
describe("CryptoApi", () => {
test("encrypts and decrypts values with authenticated node crypto", () => {
process.env.CRYPTO_SECRET = "test-crypto-secret";
const encrypted = CryptoApi.encrypt("secret value");
expect(encrypted).toMatch(/^v1:[A-Za-z0-9_-]+:[A-Za-z0-9_-]+:[A-Za-z0-9_-]+$/);
expect(encrypted).not.toContain("secret value");
expect(CryptoApi.decrypt(encrypted)).toBe("secret value");
});
test("rejects malformed encrypted payloads", () => {
process.env.CRYPTO_SECRET = "test-crypto-secret";
expect(() => CryptoApi.decrypt("legacy-or-corrupt-value")).toThrow("Invalid encrypted payload");
});
});