mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 03:22:44 +00:00
fix(msteams): Send invokeResponse immediately to prevent Teams timeout (#27632)
Fix file upload 'Something went wrong' error by sending the invoke acknowledgement before performing the file upload, rather than after. Changes: - Move invokeResponse to fire immediately upon receiving fileConsent/invoke - Handle file upload asynchronously without blocking the response - Update test to wait for async upload completion using vi.waitFor This prevents Teams from timing out while waiting for the HTTP 200 acknowledgement during slow file uploads to OneDrive. Fixes #27632
This commit is contained in:
committed by
Peter Steinberger
parent
7d9397099b
commit
09f4abdd61
@@ -148,18 +148,24 @@ describe("msteams file consent invoke authz", () => {
|
||||
|
||||
await handler.run?.(context);
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).toHaveBeenCalledTimes(1);
|
||||
// invokeResponse should be sent immediately
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
type: "invokeResponse",
|
||||
}),
|
||||
);
|
||||
|
||||
// Wait for async upload to complete
|
||||
await vi.waitFor(() => {
|
||||
expect(fileConsentMockState.uploadToConsentUrl).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
url: "https://upload.example.com/put",
|
||||
}),
|
||||
);
|
||||
expect(getPendingUpload(uploadId)).toBeUndefined();
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
type: "invokeResponse",
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it("rejects cross-conversation accept invoke and keeps pending upload", async () => {
|
||||
|
||||
Reference in New Issue
Block a user