adminTempPassword.test.js 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. /* @vitest-environment node */
  2. import { describe, it, expect } from "vitest";
  3. import { PASSWORD_POLICY, validateNewPassword } from "@/lib/auth/passwordPolicy";
  4. import { generateAdminTemporaryPassword } from "./adminTempPassword.js";
  5. describe("lib/auth/adminTempPassword", () => {
  6. it("generates passwords that pass the configured password policy", () => {
  7. for (let i = 0; i < 25; i += 1) {
  8. const password = generateAdminTemporaryPassword();
  9. const result = validateNewPassword({ newPassword: password });
  10. expect(password.length).toBeGreaterThanOrEqual(PASSWORD_POLICY.minLength);
  11. expect(result.ok).toBe(true);
  12. }
  13. });
  14. it("respects custom length but never below the policy minimum", () => {
  15. const belowMin = generateAdminTemporaryPassword({
  16. length: PASSWORD_POLICY.minLength - 3,
  17. });
  18. const custom = generateAdminTemporaryPassword({
  19. length: PASSWORD_POLICY.minLength + 4,
  20. });
  21. expect(belowMin.length).toBeGreaterThanOrEqual(PASSWORD_POLICY.minLength);
  22. expect(custom.length).toBe(PASSWORD_POLICY.minLength + 4);
  23. });
  24. });