feat(orchestrator): MS23-P1-002 InternalAgentProvider (#719)
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 #719.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
||||
import { AgentControlService } from "./agent-control.service";
|
||||
import { PrismaService } from "../../prisma/prisma.service";
|
||||
import { KillswitchService } from "../../killswitch/killswitch.service";
|
||||
|
||||
describe("AgentControlService", () => {
|
||||
let service: AgentControlService;
|
||||
@@ -16,6 +17,9 @@ describe("AgentControlService", () => {
|
||||
create: ReturnType<typeof vi.fn>;
|
||||
};
|
||||
};
|
||||
let killswitchService: {
|
||||
killAgent: ReturnType<typeof vi.fn>;
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
prisma = {
|
||||
@@ -31,7 +35,14 @@ describe("AgentControlService", () => {
|
||||
},
|
||||
};
|
||||
|
||||
service = new AgentControlService(prisma as unknown as PrismaService);
|
||||
killswitchService = {
|
||||
killAgent: vi.fn().mockResolvedValue(undefined),
|
||||
};
|
||||
|
||||
service = new AgentControlService(
|
||||
prisma as unknown as PrismaService,
|
||||
killswitchService as unknown as KillswitchService
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -137,4 +148,25 @@ describe("AgentControlService", () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("killAgent", () => {
|
||||
it("delegates kill to killswitch and logs audit", async () => {
|
||||
await service.killAgent("agent-654", "operator-kill", false);
|
||||
|
||||
expect(killswitchService.killAgent).toHaveBeenCalledWith("agent-654");
|
||||
expect(prisma.operatorAuditLog.create).toHaveBeenCalledWith({
|
||||
data: {
|
||||
sessionId: "agent-654",
|
||||
userId: "operator-kill",
|
||||
provider: "internal",
|
||||
action: "kill",
|
||||
metadata: {
|
||||
payload: {
|
||||
force: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user