Initial commit : monorepo seiche (serveur Fastify + web Vite/React, Docker, config VS Code)
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { hashPassword, verifyPassword } from "../src/auth/password";
|
||||
|
||||
describe("hashPassword / verifyPassword (argon2id)", () => {
|
||||
it("roundtrip", async () => {
|
||||
const hash = await hashPassword("correct horse battery staple");
|
||||
expect(hash).toMatch(/^\$argon2id\$/);
|
||||
expect(await verifyPassword(hash, "correct horse battery staple")).toBe(true);
|
||||
});
|
||||
|
||||
it("mauvais mot de passe → false", async () => {
|
||||
const hash = await hashPassword("correct horse battery staple");
|
||||
expect(await verifyPassword(hash, "nope")).toBe(false);
|
||||
});
|
||||
|
||||
it("hash invalide → false (jamais d'exception)", async () => {
|
||||
expect(await verifyPassword("$argon2id$garbage", "x")).toBe(false);
|
||||
expect(await verifyPassword("", "x")).toBe(false);
|
||||
});
|
||||
|
||||
it("salé : même mot de passe → hashes différents", async () => {
|
||||
const a = await hashPassword("même mot de passe");
|
||||
const b = await hashPassword("même mot de passe");
|
||||
expect(a).not.toBe(b);
|
||||
expect(await verifyPassword(a, "même mot de passe")).toBe(true);
|
||||
expect(await verifyPassword(b, "même mot de passe")).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user