- Remove .prettierrc (dead config, Biome replaces Prettier) - Rename lighthouserc.json to lighthouserc.cjs with module.exports for ESM compat - Add logger.warn to empty catch blocks in auth, register, site-settings, prisma-cache, redis, security, rate-limit - Unify ActionResult type: action-helper.ts uses 'ok' consistent with safe-action-shared.ts - Add noUnusedLocals + noUnusedParameters to tsconfig + fix 25 pre-existing unused vars - Replace barrel export src/types/index.ts with direct @/types/common imports - Make trustHost conditional (development only) in auth.ts - Add pre-flight URL validation to update-Nitrov3.sh to catch image.library.url misconfigurations - Improve NITRO_IMAGE_LIBRARY_URL content validation in pre-flight & post-compute checks
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { updateRoomSchema } from "./room";
|
|
|
|
describe("updateRoomSchema", () => {
|
|
it("accepts valid room update", () => {
|
|
const result = updateRoomSchema.safeParse({
|
|
name: "My Room",
|
|
description: "A cool room",
|
|
state: "open",
|
|
usersMax: 20,
|
|
});
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.name).toBe("My Room");
|
|
expect(result.data.state).toBe("open");
|
|
}
|
|
});
|
|
|
|
it("accepts partial updates", () => {
|
|
const result = updateRoomSchema.safeParse({ state: "locked" });
|
|
expect(result.success).toBe(true);
|
|
if (result.success) {
|
|
expect(result.data.state).toBe("locked");
|
|
expect(result.data.name).toBeUndefined();
|
|
}
|
|
});
|
|
|
|
it("rejects name too long", () => {
|
|
expect(updateRoomSchema.safeParse({ name: "a".repeat(61) }).success).toBe(
|
|
false,
|
|
);
|
|
});
|
|
|
|
it("rejects description too long", () => {
|
|
expect(
|
|
updateRoomSchema.safeParse({ description: "b".repeat(513) }).success,
|
|
).toBe(false);
|
|
});
|
|
|
|
it("rejects invalid state", () => {
|
|
expect(updateRoomSchema.safeParse({ state: "banana" }).success).toBe(false);
|
|
});
|
|
|
|
it("rejects usersMax below 1", () => {
|
|
expect(updateRoomSchema.safeParse({ usersMax: 0 }).success).toBe(false);
|
|
});
|
|
|
|
it("rejects usersMax above 100", () => {
|
|
expect(updateRoomSchema.safeParse({ usersMax: 101 }).success).toBe(false);
|
|
});
|
|
});
|