Skip to content

Commit 9c1d2b3

Browse files
authored
fix: isFinished never set on waiter (#35)
1 parent 379dc9b commit 9c1d2b3

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/helpers/__tests__/helpers.test.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as events from 'node:events';
2-
import { timeout } from '../time';
2+
import { timeout, waiter } from '../time';
33

44
describe('Helper tests', () => {
55
test('timeout function should not cause memory leak by accumulating abort listeners on abort', async () => {
@@ -49,4 +49,11 @@ describe('Helper tests', () => {
4949
// Final check to confirm listeners are cleaned up
5050
expect(countListeners()).toBe(0);
5151
});
52+
53+
test('waiter is finished', async () => {
54+
const myWaiter = waiter();
55+
myWaiter.finish();
56+
await myWaiter;
57+
expect(myWaiter.isFinished).toBe(true);
58+
});
5259
});

src/helpers/time.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export function waiter<T = void>(): Waiter<T> {
121121
});
122122
const completer = {
123123
finish: (result: T) => {
124-
completer.isFinished = true;
124+
void Object.assign(promise, { isFinished: true });
125125
resolveFn(result);
126126
},
127127
isFinished: false,

0 commit comments

Comments
 (0)