49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { describe, it, expect } from "bun:test";
|
|
import { getTestDb } from "../database/getTestDb";
|
|
import { getUser, loginUser, registerUser } from "./user";
|
|
|
|
describe("User", () => {
|
|
it("should register a user", async () => {
|
|
const db = getTestDb();
|
|
await registerUser(db, "TestUser", "test");
|
|
const user = await getUser(db, "TestUser");
|
|
expect(user).toEqual({
|
|
name: "TestUser",
|
|
password: undefined,
|
|
});
|
|
});
|
|
|
|
it("should throw an error if user already exists register", async () => {
|
|
const db = getTestDb();
|
|
await registerUser(db, "TestUser", "test");
|
|
expect(registerUser(db, "TestUser", "test")).rejects.toThrow(
|
|
"User already exists",
|
|
);
|
|
});
|
|
|
|
it("should throw an error if user already exists register case insensitive", async () => {
|
|
const db = getTestDb();
|
|
await registerUser(db, "TestUser", "test");
|
|
expect(registerUser(db, "TESTUSER", "test")).rejects.toThrow(
|
|
"User already exists",
|
|
);
|
|
});
|
|
|
|
it("should throw an error if user does not exist on login", async () => {
|
|
const db = getTestDb();
|
|
expect(loginUser(db, "TestUser", "test")).rejects.toThrow(
|
|
"User does not exist",
|
|
);
|
|
});
|
|
|
|
it("should login a user", async () => {
|
|
const db = getTestDb();
|
|
await registerUser(db, "TestUser", "test");
|
|
const user = await loginUser(db, "TestUser", "test");
|
|
expect(user).toEqual({
|
|
name: "TestUser",
|
|
password: undefined,
|
|
});
|
|
});
|
|
});
|