test: add room, user, ticket validator test suites (83 files, 430+ tests)
Deploy / release (push) Skipped
Deploy / deploy (push) Successful in 2m3s

This commit is contained in:
openhands committed 2026-07-25 18:51:33 +02:00
1 parent 960fea3549
commit 2c0478bfc0
3 files changed
+339

No files matched your search

+119
View File
@@ -0,0 +1,119 @@
import { describe, expect, it } from "vitest";
import {
createTicketSchema,
replyTicketSchema,
updateTicketStatusSchema,
assignTicketSchema,
updateTicketPrioritySchema,
} from "./ticket";
describe("createTicketSchema", () => {
it("accepts valid ticket", () => {
const result = createTicketSchema.safeParse({
subject: "Help needed",
category: "technical",
message: "I need help with this issue",
});
expect(result.success).toBe(true);
});
it("rejects short subject (less than 5 chars)", () => {
expect(
createTicketSchema
.safeParse({
subject: "Hi",
category: "technical",
message: "Help",
})
.success,
).toBe(false);
});
it("rejects short message (less than 10 chars)", () => {
expect(
createTicketSchema
.safeParse({
subject: "Subject",
category: "technical",
message: "Hi",
})
.success,
).toBe(false);
});
it("rejects missing category", () => {
expect(
createTicketSchema
.safeParse({
subject: "Subject",
message: "Some message",
})
.success,
).toBe(false);
});
});
describe("replyTicketSchema", () => {
it("accepts valid reply", () => {
const result = replyTicketSchema.safeParse({
ticketId: 5,
message: "Update here",
});
expect(result.success).toBe(true);
});
it("rejects empty message", () => {
expect(
replyTicketSchema.safeParse({ ticketId: 5, message: "" }).success,
).toBe(false);
});
it("rejects non-positive ticketId", () => {
expect(
replyTicketSchema.safeParse({ ticketId: 0, message: "x" }).success,
).toBe(false);
});
});
describe("updateTicketStatusSchema", () => {
it("accepts valid status change", () => {
const result = updateTicketStatusSchema.safeParse({
ticketId: 1,
status: "closed",
});
expect(result.success).toBe(true);
});
it("rejects invalid status", () => {
expect(
updateTicketStatusSchema
.safeParse({ ticketId: 1, status: "unknown" })
.success,
).toBe(false);
});
});
describe("assignTicketSchema", () => {
it("accepts valid assignment", () => {
expect(
assignTicketSchema.safeParse({ ticketId: 1, assigneeId: 5 }).success,
).toBe(true);
});
it("accepts null assignee (unassign)", () => {
expect(
assignTicketSchema.safeParse({ ticketId: 1, assigneeId: null }).success,
).toBe(true);
});
});
describe("updateTicketPrioritySchema", () => {
it("accepts valid priority", () => {
const result = updateTicketPrioritySchema.safeParse({
ticketId: 1,
priority: "urgent",
});
expect(result.success).toBe(true);
});
});