add unit tests for auth related functions.

This commit is contained in:
2025-02-02 18:52:25 -08:00
parent 53214644b4
commit f413b74a1f
21 changed files with 953 additions and 133 deletions

View File

@ -0,0 +1,62 @@
import { describe, it } from "vitest";
import { type GameData, isGameData } from "$lib/GameData";
import { equal, ok } from "node:assert/strict";
import { createId, idFromString, stringFromId } from "$lib/Id";
describe("GameData", () => {
const idString = stringFromId(createId());
describe("isGameData", () => {
it("rejects a malformed object", () => {
let data: unknown = {
players: [idFromString(idString), idString],
isStarted: false,
state: {},
};
equal(isGameData(data), false);
data = {
players: [idFromString(idString)],
isStarted: null,
state: {},
};
equal(isGameData(data), false);
data = {
players: [idFromString(idString)],
isStarted: false,
};
equal(isGameData(data), false);
});
it("rejects an object without a players property", () => {
const data: unknown = {
state: {},
isStarted: false,
};
equal(isGameData(data), false);
});
it("rejects an object with extra properties", () => {
const data: unknown = {
players: [idFromString(idString)],
isStarted: false,
state: {},
extra: true,
};
equal(isGameData(data), false);
});
it("should accept a proper GameData object", () => {
const data: GameData = {
players: [idFromString(idString)],
state: {},
isStarted: false,
};
ok(isGameData(data));
});
});
});