Kaynağa Gözat

test(tasks): align tool fixtures with unified identity

Tianyi Cui 2 ay önce
ebeveyn
işleme
f8cc1af99b

+ 8 - 7
packages/tasks/tool-tasks/tests/tool-tasks.spec.ts

@@ -5,6 +5,7 @@ import SystemPrompt from '@deepseek-ai/dsh-system-prompt'
 import ToolRegistry from '@deepseek-ai/dsh-tools'
 import AgentRegistry from '@deepseek-ai/dsh-agent'
 import type { Agent } from '@deepseek-ai/dsh-agent'
+import { SessionId } from '@deepseek-ai/dsh-session'
 import TaskService from '@deepseek-ai/dsh-tasks'
 import type { TaskHooks, TaskOutcome, TaskSnapshot, TaskStart } from '@deepseek-ai/dsh-tasks'
 import * as ToolTasks from '@deepseek-ai/dsh-tool-tasks'
@@ -23,17 +24,17 @@ async function setup(config: ToolTasks.Config = {}) {
 }
 
 /**
- * A fake agent whose session token is `sessionId`, registered in `ctx.agents`.
- * The agent id is deliberately different so session authorization and exact
- * lifecycle ownership cannot be confused in tests.
+ * A fake agent with the shared agent/session identity, registered in
+ * `ctx.agents` with a dedicated lifecycle scope.
  */
 function fakeAgent(ctx: Context, sessionId: string, inject: (...args: unknown[]) => void = () => {}): Agent {
   const scopeFiber = ctx.plugin(() => {})
+  const id = SessionId(sessionId)
   const agent = {
-    id: `agent-${sessionId}`,
+    id,
     ctx: scopeFiber.ctx,
     inject,
-    session: { header: { version: 0, id: sessionId, createdAt: 0 } },
+    session: { id, header: { version: 0, id, createdAt: 0 } },
   } as unknown as Agent
   agentRegistryDisposers.set(agent, ctx.agents.register(agent))
   return agent
@@ -276,7 +277,7 @@ describe('completion notices', () => {
     await tick()
 
     // Disposed owner: inject throws the disposed message — contained.
-    const inject = vi.fn(() => { throw new Error('agent "agent-sess-1" is disposed') })
+    const inject = vi.fn(() => { throw new Error('agent "sess-1" is disposed') })
     const owner = fakeAgent(ctx, 'sess-1', inject)
     const p = producer({ owner })
     ctx.tasks.start(p.spec)
@@ -287,7 +288,7 @@ describe('completion notices', () => {
 
   it('does not route an old owner completion notice to a same-session replacement', async () => {
     const { ctx } = await setup()
-    const oldInject = vi.fn(() => { throw new Error('agent "agent-shared" is disposed') })
+    const oldInject = vi.fn(() => { throw new Error('agent "shared" is disposed') })
     const oldOwner = fakeAgent(ctx, 'shared', oldInject)
     const p = producer({ owner: oldOwner })
     ctx.tasks.start(p.spec)