minesweeper/backend/services/score.test.ts

41 lines
1.0 KiB
TypeScript

import { describe, it, expect } from "bun:test";
import { getScoreBoard } from "./score.ts";
import { getTestDb } from "../database/getTestDb.ts";
import { Game, User } from "../schema.ts";
describe("Score", () => {
it("should return the score board", async () => {
const db = getTestDb();
await db.insert(User).values({
name: "TestUser",
password: "test",
});
await db.insert(Game).values({
user: "TestUser",
uuid: crypto.randomUUID(),
stage: 1,
gameState: "ANY",
finished: 1,
timestamp: Date.now(),
});
await db.insert(Game).values({
user: "TestUser",
uuid: crypto.randomUUID(),
stage: 10,
gameState: "ANY",
finished: 1,
timestamp: Date.now(),
});
await db.insert(Game).values({
user: "TestUser",
uuid: crypto.randomUUID(),
stage: 20,
gameState: "ANY",
finished: 0,
timestamp: Date.now(),
});
const result = await getScoreBoard(db);
expect(result).toEqual([{ stage: 10, user: "TestUser" }]);
});
});