Quellcode durchsuchen

test(file-upload): cover extensible request identifiers

creatixchu vor 1 Woche
Ursprung
Commit
f989df7c8e

+ 8 - 0
packages/api/session-controller/tests/commands-upload-file.host.spec.ts

@@ -294,6 +294,14 @@ describe('Session file uploads', () => {
       new AbortController().signal,
     )
     await first.controller.prompt(promptRequest([{ type: 'file', receiptId: observed.receiptId }]))
+    first.ctx.emit('session/event', first.agent.session, {
+      type: 'user/message',
+      data: createUserMessage({
+        content: [{ type: 'text', text: 'extension event' }],
+        source: { kind: 'user', rpcId: 1 } as never,
+      }),
+    } as never)
+    expect(first.uploads.resolve(first.agent, observed.receiptId)).toEqual(observed.file)
     first.agent.session.append('user/message', createUserMessage({
       content: [{ type: 'text', text: 'observed' }],
       source: { kind: 'user', rpcId: 'req-1' as SessionRequestId },

+ 1 - 1
packages/client/file-upload/src/index.ts

@@ -223,7 +223,7 @@ export class FileUploads extends TypertRemoteService {
   private observeSessionEvent(session: Session, event: SessionEvent): void {
     if (event.type !== 'user/message' || event.data.source.kind !== 'user'
       || !('rpcId' in event.data.source)) return
-    this.retire(session, event.data.source.rpcId)
+    if (typeof event.data.source.rpcId === 'string') this.retire(session, event.data.source.rpcId)
   }
 
   private retire(session: Session, requestId: string): void {