1
1
import { describe , expect , test , vi } from 'vitest' ;
2
2
import { makePromiseBuffer } from '../../../src/utils/promisebuffer' ;
3
- import { SyncPromise } from '../../../src/utils/syncpromise' ;
3
+ import { makeSyncPromise } from '../../../src/utils/syncpromise' ;
4
4
5
5
describe ( 'PromiseBuffer' , ( ) => {
6
6
describe ( 'add()' , ( ) => {
7
7
test ( 'no limit' , ( ) => {
8
8
const buffer = makePromiseBuffer ( ) ;
9
- const p = vi . fn ( ( ) => new SyncPromise ( resolve => setTimeout ( resolve ) ) ) ;
9
+ const p = vi . fn ( ( ) => makeSyncPromise ( ( ) => { } ) ) ;
10
10
void buffer . add ( p ) ;
11
11
expect ( buffer . $ . length ) . toEqual ( 1 ) ;
12
12
} ) ;
@@ -15,10 +15,10 @@ describe('PromiseBuffer', () => {
15
15
const buffer = makePromiseBuffer ( 1 ) ;
16
16
let task1 ;
17
17
const producer1 = vi . fn ( ( ) => {
18
- task1 = new SyncPromise ( resolve => setTimeout ( resolve ) ) ;
18
+ task1 = makeSyncPromise ( ( ) => { } ) ;
19
19
return task1 ;
20
20
} ) ;
21
- const producer2 = vi . fn ( ( ) => new SyncPromise ( resolve => setTimeout ( resolve ) ) ) ;
21
+ const producer2 = vi . fn ( ( ) => makeSyncPromise ( ( ) => { } ) ) ;
22
22
expect ( buffer . add ( producer1 ) ) . toEqual ( task1 ) ;
23
23
void expect ( buffer . add ( producer2 ) ) . rejects . toThrowError ( ) ;
24
24
expect ( buffer . $ . length ) . toEqual ( 1 ) ;
@@ -31,7 +31,7 @@ describe('PromiseBuffer', () => {
31
31
test ( 'without timeout' , async ( ) => {
32
32
const buffer = makePromiseBuffer ( ) ;
33
33
for ( let i = 0 ; i < 5 ; i ++ ) {
34
- void buffer . add ( ( ) => new SyncPromise ( resolve => setTimeout ( resolve ) ) ) ;
34
+ void buffer . add ( ( ) => makeSyncPromise ( ( ) => { } ) ) ;
35
35
}
36
36
expect ( buffer . $ . length ) . toEqual ( 5 ) ;
37
37
const result = await buffer . drain ( ) ;
@@ -42,7 +42,7 @@ describe('PromiseBuffer', () => {
42
42
test ( 'with timeout' , async ( ) => {
43
43
const buffer = makePromiseBuffer ( ) ;
44
44
for ( let i = 0 ; i < 5 ; i ++ ) {
45
- void buffer . add ( ( ) => new SyncPromise ( resolve => setTimeout ( resolve , 100 ) ) ) ;
45
+ void buffer . add ( ( ) => new Promise ( resolve => setTimeout ( resolve , 100 ) ) ) ;
46
46
}
47
47
expect ( buffer . $ . length ) . toEqual ( 5 ) ;
48
48
const result = await buffer . drain ( 50 ) ;
@@ -60,7 +60,7 @@ describe('PromiseBuffer', () => {
60
60
61
61
test ( 'resolved promises should not show up in buffer length' , async ( ) => {
62
62
const buffer = makePromiseBuffer ( ) ;
63
- const producer = ( ) => new SyncPromise ( resolve => setTimeout ( resolve ) ) ;
63
+ const producer = ( ) => makeSyncPromise ( ( ) => { } ) ;
64
64
const task = buffer . add ( producer ) ;
65
65
expect ( buffer . $ . length ) . toEqual ( 1 ) ;
66
66
await task ;
@@ -69,7 +69,10 @@ describe('PromiseBuffer', () => {
69
69
70
70
test ( 'rejected promises should not show up in buffer length' , async ( ) => {
71
71
const buffer = makePromiseBuffer ( ) ;
72
- const producer = ( ) => new SyncPromise ( ( _ , reject ) => setTimeout ( reject ) ) ;
72
+ const producer = ( ) =>
73
+ makeSyncPromise ( ( ) => {
74
+ throw new Error ( 'whoops' ) ;
75
+ } ) ;
73
76
const task = buffer . add ( producer ) ;
74
77
expect ( buffer . $ . length ) . toEqual ( 1 ) ;
75
78
try {
@@ -82,7 +85,7 @@ describe('PromiseBuffer', () => {
82
85
83
86
test ( 'resolved task should give an access to the return value' , async ( ) => {
84
87
const buffer = makePromiseBuffer < string > ( ) ;
85
- const producer = ( ) => new SyncPromise < string > ( resolve => setTimeout ( ( ) => resolve ( 'test' ) ) ) ;
88
+ const producer = ( ) => makeSyncPromise < string > ( ( ) => 'test' ) ;
86
89
const task = buffer . add ( producer ) ;
87
90
const result = await task ;
88
91
expect ( result ) . toEqual ( 'test' ) ;
@@ -91,7 +94,10 @@ describe('PromiseBuffer', () => {
91
94
test ( 'rejected task should give an access to the return value' , async ( ) => {
92
95
expect . assertions ( 1 ) ;
93
96
const buffer = makePromiseBuffer < string > ( ) ;
94
- const producer = ( ) => new SyncPromise < string > ( ( _ , reject ) => setTimeout ( ( ) => reject ( new Error ( 'whoops' ) ) ) ) ;
97
+ const producer = ( ) =>
98
+ makeSyncPromise < string > ( ( ) => {
99
+ throw new Error ( 'whoops' ) ;
100
+ } ) ;
95
101
const task = buffer . add ( producer ) ;
96
102
try {
97
103
await task ;
0 commit comments