mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-12 07:20:45 +00:00
fix(msteams): Fix test timing for async file upload handling
Update tests to properly wait for async file upload operations: - Use vi.waitFor() to wait for async upload completion in success case - Use vi.waitFor() to wait for error message in cross-conversation case - Add setTimeout delay for decline case to ensure async handler completes - Adjust assertion order to match new execution flow (invokeResponse first) The tests were failing because the file upload now happens asynchronously after sending the invokeResponse, so we need to explicitly wait for the async operations to complete before making assertions.
This commit is contained in:
committed by
Peter Steinberger
parent
09f4abdd61
commit
ecbb3bcc1a
@@ -185,16 +185,22 @@ describe("msteams file consent invoke authz", () => {
|
||||
|
||||
await handler.run?.(context);
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).not.toHaveBeenCalled();
|
||||
expect(getPendingUpload(uploadId)).toBeDefined();
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
"The file upload request has expired. Please try sending the file again.",
|
||||
);
|
||||
// invokeResponse should be sent immediately
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
type: "invokeResponse",
|
||||
}),
|
||||
);
|
||||
|
||||
// Wait for async handler to complete
|
||||
await vi.waitFor(() => {
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
"The file upload request has expired. Please try sending the file again.",
|
||||
);
|
||||
});
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).not.toHaveBeenCalled();
|
||||
expect(getPendingUpload(uploadId)).toBeDefined();
|
||||
});
|
||||
|
||||
it("ignores cross-conversation decline invoke and keeps pending upload", async () => {
|
||||
@@ -214,13 +220,18 @@ describe("msteams file consent invoke authz", () => {
|
||||
|
||||
await handler.run?.(context);
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).not.toHaveBeenCalled();
|
||||
expect(getPendingUpload(uploadId)).toBeDefined();
|
||||
expect(sendActivity).toHaveBeenCalledTimes(1);
|
||||
// invokeResponse should be sent immediately
|
||||
expect(sendActivity).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
type: "invokeResponse",
|
||||
}),
|
||||
);
|
||||
|
||||
// Wait a bit for async handler to complete
|
||||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
|
||||
expect(fileConsentMockState.uploadToConsentUrl).not.toHaveBeenCalled();
|
||||
expect(getPendingUpload(uploadId)).toBeDefined();
|
||||
expect(sendActivity).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user