feat(orchestrator): add subagent session tree endpoint
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
This commit is contained in:
@@ -6,6 +6,7 @@ import { KillswitchService } from "../../killswitch/killswitch.service";
|
||||
import { AgentEventsService } from "./agent-events.service";
|
||||
import { AgentMessagesService } from "./agent-messages.service";
|
||||
import { AgentControlService } from "./agent-control.service";
|
||||
import { AgentTreeService } from "./agent-tree.service";
|
||||
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
||||
|
||||
describe("AgentsController", () => {
|
||||
@@ -42,6 +43,9 @@ describe("AgentsController", () => {
|
||||
pauseAgent: ReturnType<typeof vi.fn>;
|
||||
resumeAgent: ReturnType<typeof vi.fn>;
|
||||
};
|
||||
let treeService: {
|
||||
getTree: ReturnType<typeof vi.fn>;
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
// Create mock services
|
||||
@@ -93,6 +97,10 @@ describe("AgentsController", () => {
|
||||
resumeAgent: vi.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
|
||||
treeService = {
|
||||
getTree: vi.fn().mockResolvedValue([]),
|
||||
};
|
||||
|
||||
// Create controller with mocked services
|
||||
controller = new AgentsController(
|
||||
queueService as unknown as QueueService,
|
||||
@@ -101,7 +109,8 @@ describe("AgentsController", () => {
|
||||
killswitchService as unknown as KillswitchService,
|
||||
eventsService as unknown as AgentEventsService,
|
||||
messagesService as unknown as AgentMessagesService,
|
||||
controlService as unknown as AgentControlService
|
||||
controlService as unknown as AgentControlService,
|
||||
treeService as unknown as AgentTreeService
|
||||
);
|
||||
});
|
||||
|
||||
@@ -113,6 +122,27 @@ describe("AgentsController", () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
|
||||
describe("getAgentTree", () => {
|
||||
it("should return tree entries", async () => {
|
||||
const entries = [
|
||||
{
|
||||
sessionId: "agent-1",
|
||||
parentSessionId: null,
|
||||
status: "running",
|
||||
agentType: "worker",
|
||||
taskSource: "internal",
|
||||
spawnedAt: "2026-03-07T00:00:00.000Z",
|
||||
completedAt: null,
|
||||
},
|
||||
];
|
||||
|
||||
treeService.getTree.mockResolvedValue(entries);
|
||||
|
||||
await expect(controller.getAgentTree()).resolves.toEqual(entries);
|
||||
expect(treeService.getTree).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("listAgents", () => {
|
||||
it("should return empty array when no agents exist", () => {
|
||||
// Arrange
|
||||
|
||||
Reference in New Issue
Block a user