import { describe, expect, it } from "vitest";
import { hashRuleClaimToken, hashSessionToken } from "../../lib/server/hash";

describe("hashRuleClaimToken", () => {
  it("is stable for the same token and pepper", () => {
    const a = hashRuleClaimToken("secret-token", "pepper");
    const b = hashRuleClaimToken("secret-token", "pepper");
    expect(a).toBe(b);
    expect(a).toMatch(/^[a-f0-9]{64}$/);
  });

  it("differs from the session hash of the same token", () => {
    const claim = hashRuleClaimToken("secret-token", "pepper");
    const session = hashSessionToken("secret-token", "pepper");
    expect(claim).not.toBe(session);
  });
});
