Skip to content

Commit 093539b

Browse files
committed
handle equivalent promises
1 parent 3e40e17 commit 093539b

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

packages/core/test/lib/utils/promisebuffer.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,27 @@ describe('PromiseBuffer', () => {
3434
expect(producer1).toHaveBeenCalled();
3535
expect(producer2).not.toHaveBeenCalled();
3636
});
37+
38+
test('handles multiple equivalent promises', async () => {
39+
const buffer = makePromiseBuffer(10);
40+
41+
const promise = new Promise(resolve => setTimeout(resolve, 1));
42+
43+
const producer = vi.fn(() => promise);
44+
const producer2 = vi.fn(() => promise);
45+
46+
expect(buffer.add(producer)).toEqual(promise);
47+
expect(buffer.add(producer2)).toEqual(promise);
48+
49+
expect(buffer.$.length).toEqual(1);
50+
51+
expect(producer).toHaveBeenCalled();
52+
expect(producer2).toHaveBeenCalled();
53+
54+
await buffer.drain();
55+
56+
expect(buffer.$.length).toEqual(0);
57+
});
3758
});
3859

3960
describe('drain()', () => {

0 commit comments

Comments
 (0)