import { describe, it, expect } from "vitest"; import { createUser, serializeUser } from "../src/models/user.js"; describe("User model", () => { it("creates a user with valid email", () => { const user = createUser({ email: "alice@example.com", name: "Alice" }); expect(user.email).toBe("alice@example.com"); expect(user.name).toBe("Alice"); expect(user.id).toBeDefined(); expect(user.createdAt).toBeInstanceOf(Date); }); it("throws on invalid email", () => { expect(() => createUser({ email: "not-an-email", name: "Bob" }), ).toThrow("Invalid email"); }); it("serializes to JSON", () => { const user = createUser({ email: "charlie@example.com", name: "Charlie" }); const json = serializeUser(user); expect(JSON.parse(json).name).toBe("Charlie"); }); });