feat(orchestrator): MS23 per-agent message history and SSE stream (#702)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
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>
This commit was merged in pull request #702.
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Type } from "class-transformer";
|
||||
import { IsInt, IsOptional, Max, Min } from "class-validator";
|
||||
|
||||
export class GetMessagesQueryDto {
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
@IsInt()
|
||||
@Min(1)
|
||||
@Max(200)
|
||||
limit = 50;
|
||||
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
@IsInt()
|
||||
@Min(0)
|
||||
skip = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user