Skip to content

Commit d8d6dec

Browse files
committed
more tests
1 parent f75cb95 commit d8d6dec

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

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

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,44 @@ import { rejectedSyncPromise, resolvedSyncPromise } from '../../../src/utils/syn
44

55
describe('PromiseBuffer', () => {
66
describe('add()', () => {
7+
test('enforces limit of promises', async () => {
8+
const buffer = makePromiseBuffer(5);
9+
10+
const producer1 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
11+
const producer2 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
12+
const producer3 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
13+
const producer4 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
14+
const producer5 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
15+
const producer6 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 1)));
16+
17+
void buffer.add(producer1);
18+
void buffer.add(producer2);
19+
void buffer.add(producer3);
20+
void buffer.add(producer4);
21+
void buffer.add(producer5);
22+
void expect(buffer.add(producer6)).rejects.toThrowError();
23+
24+
expect(producer1).toHaveBeenCalledTimes(1);
25+
expect(producer2).toHaveBeenCalledTimes(1);
26+
expect(producer3).toHaveBeenCalledTimes(1);
27+
expect(producer4).toHaveBeenCalledTimes(1);
28+
expect(producer5).toHaveBeenCalledTimes(1);
29+
expect(producer6).not.toHaveBeenCalled();
30+
31+
expect(buffer.$.length).toEqual(5);
32+
33+
await buffer.drain();
34+
35+
expect(buffer.$.length).toEqual(0);
36+
37+
expect(producer1).toHaveBeenCalledTimes(1);
38+
expect(producer2).toHaveBeenCalledTimes(1);
39+
expect(producer3).toHaveBeenCalledTimes(1);
40+
expect(producer4).toHaveBeenCalledTimes(1);
41+
expect(producer5).toHaveBeenCalledTimes(1);
42+
expect(producer6).not.toHaveBeenCalled();
43+
});
44+
745
test('sync promises', () => {
846
const buffer = makePromiseBuffer(1);
947
let task1;
@@ -83,7 +121,7 @@ describe('PromiseBuffer', () => {
83121
expect(p5).toHaveBeenCalled();
84122
});
85123

86-
test('drains all promises with timeout xxx', async () => {
124+
test('drains all promises with timeout', async () => {
87125
const buffer = makePromiseBuffer();
88126

89127
const p1 = vi.fn(() => new Promise(resolve => setTimeout(resolve, 2)));

0 commit comments

Comments
 (0)