吸收数字员工PlanStep远端策略拉取
This commit is contained in:
@@ -9,6 +9,7 @@ const mockState = vi.hoisted(() => ({
|
||||
governanceCommands: [] as Array<Record<string, unknown>>,
|
||||
acquiredLeases: [] as Array<Record<string, unknown>>,
|
||||
releasedLeases: [] as Array<Record<string, unknown>>,
|
||||
policyPulls: [] as Array<Record<string, unknown>>,
|
||||
settings: {
|
||||
enabled: true,
|
||||
catch_up_on_startup: true,
|
||||
@@ -85,6 +86,13 @@ vi.mock("./stateService", () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock("./syncService", () => ({
|
||||
pullDigitalEmployeePlanStepDispatchPolicy: (input: Record<string, unknown> = {}) => {
|
||||
mockState.policyPulls.push(input);
|
||||
return Promise.resolve({ ok: true, endpoint: "https://manage.example.com/api/digital-employee/policies/plan-step-dispatch" });
|
||||
},
|
||||
}));
|
||||
|
||||
describe("digital employee scheduler service", () => {
|
||||
beforeEach(() => {
|
||||
vi.resetModules();
|
||||
@@ -95,6 +103,7 @@ describe("digital employee scheduler service", () => {
|
||||
mockState.governanceCommands = [];
|
||||
mockState.acquiredLeases = [];
|
||||
mockState.releasedLeases = [];
|
||||
mockState.policyPulls = [];
|
||||
mockState.dispatchPolicy = {
|
||||
enabled: true,
|
||||
max_per_sweep: 3,
|
||||
@@ -179,6 +188,7 @@ describe("digital employee scheduler service", () => {
|
||||
expect.objectContaining({ method: "POST" }),
|
||||
);
|
||||
expect(mockState.dispatchEvents.map((event) => event.status)).toEqual(["started", "completed"]);
|
||||
expect(mockState.policyPulls).toEqual([{}]);
|
||||
expect(mockState.acquiredLeases).toEqual([expect.objectContaining({ stepId: "step-ready", triggerSource: "auto" })]);
|
||||
expect(mockState.releasedLeases).toEqual([expect.objectContaining({ stepId: "step-ready", leaseId: "lease-step-ready", reason: "completed" })]);
|
||||
expect(mockState.governanceCommands[0]).toMatchObject({
|
||||
@@ -260,6 +270,7 @@ describe("digital employee scheduler service", () => {
|
||||
|
||||
expect(result).toMatchObject({ plan_id: "plan-1", trigger_source: "manual", candidates: 1, dispatched: 1, skipped: 0, failed: 0 });
|
||||
expect(mockState.dispatchEvents[0]).toMatchObject({ status: "started", payload: expect.objectContaining({ trigger_source: "manual" }) });
|
||||
expect(mockState.policyPulls).toHaveLength(0);
|
||||
});
|
||||
|
||||
it("keeps the enabled switch as a manual plan dispatch kill switch", async () => {
|
||||
|
||||
Reference in New Issue
Block a user