Skip to content

Commit 0f102f5

Browse files
Fix timeout issue: change resetTimeoutOnProgress default to true
Co-authored-by: andrea-tomassi <[email protected]>
1 parent 17c22d2 commit 0f102f5

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/shared/protocol.test.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,13 @@ describe("protocol tests", () => {
8282
});
8383

8484
describe("_meta preservation with onprogress", () => {
85+
beforeEach(() => {
86+
jest.useFakeTimers();
87+
});
88+
afterEach(() => {
89+
jest.useRealTimers();
90+
});
91+
8592
test("should preserve existing _meta when adding progressToken", async () => {
8693
await protocol.connect(transport);
8794
const request = {
@@ -101,6 +108,8 @@ describe("protocol tests", () => {
101108

102109
protocol.request(request, mockSchema, {
103110
onprogress: onProgressMock,
111+
resetTimeoutOnProgress: false,
112+
104113
});
105114

106115
expect(sendSpy).toHaveBeenCalledWith(expect.objectContaining({
@@ -133,6 +142,8 @@ describe("protocol tests", () => {
133142

134143
protocol.request(request, mockSchema, {
135144
onprogress: onProgressMock,
145+
resetTimeoutOnProgress: false,
146+
136147
});
137148

138149
expect(sendSpy).toHaveBeenCalledWith(expect.objectContaining({
@@ -163,7 +174,10 @@ describe("protocol tests", () => {
163174
result: z.string(),
164175
});
165176

166-
protocol.request(request, mockSchema);
177+
protocol.request(request, mockSchema, {
178+
resetTimeoutOnProgress: false,
179+
180+
});
167181

168182
expect(sendSpy).toHaveBeenCalledWith(expect.objectContaining({
169183
method: "example",
@@ -190,6 +204,8 @@ describe("protocol tests", () => {
190204

191205
protocol.request(request, mockSchema, {
192206
onprogress: onProgressMock,
207+
resetTimeoutOnProgress: false,
208+
193209
});
194210

195211
expect(sendSpy).toHaveBeenCalledWith(expect.objectContaining({

src/shared/protocol.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export type RequestOptions = {
8383
/**
8484
* If true, receiving a progress notification will reset the request timeout.
8585
* This is useful for long-running operations that send periodic progress updates.
86-
* Default: false
86+
* Default: true
8787
*/
8888
resetTimeoutOnProgress?: boolean;
8989

@@ -628,7 +628,7 @@ export abstract class Protocol<
628628
{ timeout }
629629
));
630630

631-
this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false);
631+
this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? true);
632632

633633
this._transport.send(jsonrpcRequest, { relatedRequestId, resumptionToken, onresumptiontoken }).catch((error) => {
634634
this._cleanupTimeout(messageId);

0 commit comments

Comments
 (0)