diff --git a/src/thread_manager.ts b/src/thread_manager.ts index fd37c5d6b..3d8d47976 100644 --- a/src/thread_manager.ts +++ b/src/thread_manager.ts @@ -208,7 +208,9 @@ export class ThreadManager { }, })); - const response = await this.queryThreads({ limit: Math.min(limit, MAX_QUERY_THREADS_LIMIT) }); + const response = await this.queryThreads({ + limit: Math.min(limit, MAX_QUERY_THREADS_LIMIT) || MAX_QUERY_THREADS_LIMIT, + }); const currentThreads = this.threadsById; const nextThreads: Thread[] = []; diff --git a/test/unit/threads.test.ts b/test/unit/threads.test.ts index 1d420f419..d4c31f324 100644 --- a/test/unit/threads.test.ts +++ b/test/unit/threads.test.ts @@ -1099,6 +1099,14 @@ describe('Threads 2.0', () => { }); describe('reload', () => { + it('reloads with a default limit if both threads and unseenThreadIds are empty', async () => { + threadManager.state.partialNext({ + threads: [], + unseenThreadIds: [], + }); + await threadManager.reload(); + expect(stubbedQueryThreads.calledWithMatch({ limit: 25 })).to.be.true; + }); it('skips reload if there were no updates since the latest reload', async () => { threadManager.state.partialNext({ ready: true }); await threadManager.reload();