Fix auth hook so it returns forbidden if the user is authenticated but not allowed to hit an endpoint.

This commit is contained in:
2025-01-29 14:49:53 -08:00
parent 5487a23c86
commit 53214644b4
23 changed files with 835 additions and 187 deletions

View File

@ -0,0 +1,53 @@
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 with extra properties", () => {
const data: GameData & { extra: boolean } = {
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));
});
});
});