All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { plainToInstance } from "class-transformer";
|
|
import { validate } from "class-validator";
|
|
import { describe, expect, it } from "vitest";
|
|
import { GetMessagesQueryDto } from "./get-messages-query.dto";
|
|
|
|
describe("GetMessagesQueryDto", () => {
|
|
it("should use defaults when empty", async () => {
|
|
const dto = plainToInstance(GetMessagesQueryDto, {});
|
|
const errors = await validate(dto);
|
|
|
|
expect(errors).toHaveLength(0);
|
|
expect(dto.limit).toBe(50);
|
|
expect(dto.skip).toBe(0);
|
|
});
|
|
|
|
it("should reject limit greater than 200", async () => {
|
|
const dto = plainToInstance(GetMessagesQueryDto, {
|
|
limit: 201,
|
|
skip: 0,
|
|
});
|
|
const errors = await validate(dto);
|
|
|
|
expect(errors.length).toBeGreaterThan(0);
|
|
expect(errors.some((error) => error.property === "limit")).toBe(true);
|
|
});
|
|
|
|
it("should reject negative skip", async () => {
|
|
const dto = plainToInstance(GetMessagesQueryDto, {
|
|
limit: 50,
|
|
skip: -1,
|
|
});
|
|
const errors = await validate(dto);
|
|
|
|
expect(errors.length).toBeGreaterThan(0);
|
|
expect(errors.some((error) => error.property === "skip")).toBe(true);
|
|
});
|
|
});
|