@@ -112,69 +112,73 @@ if (
112112}
113113
114114for ( const mqName in queues ) {
115- test ( `ParallelMessageQueue [${ mqName } ]` , async ( t ) => {
116- const mq = await queues [ mqName ] ( ) ;
117- const workers = new ParallelMessageQueue ( mq , 5 ) ;
118-
119- const messages : string [ ] = [ ] ;
120- const controller = new AbortController ( ) ;
121- const listening = workers . listen ( async ( message : string ) => {
122- for ( let i = 0 , cnt = 5 + Math . random ( ) * 5 ; i < cnt ; i ++ ) {
123- await delay ( 250 ) ;
124- }
125- messages . push ( message ) ;
126- } , controller ) ;
127-
128- await t . step ( "enqueue() [single]" , async ( ) => {
129- await workers . enqueue ( "Hello, world!" ) ;
130- } ) ;
131-
132- await waitFor ( ( ) => messages . length > 0 , 15_000 ) ;
133-
134- await t . step ( "listen() [single]" , ( ) => {
135- assertEquals ( messages , [ "Hello, world!" ] ) ;
136- } ) ;
137-
138- messages . pop ( ) ;
115+ test ( {
116+ name : `ParallelMessageQueue [${ mqName } ]` ,
117+ ignore : "Bun" in globalThis , // FIXME
118+ async fn ( t ) {
119+ const mq = await queues [ mqName ] ( ) ;
120+ const workers = new ParallelMessageQueue ( mq , 5 ) ;
121+
122+ const messages : string [ ] = [ ] ;
123+ const controller = new AbortController ( ) ;
124+ const listening = workers . listen ( async ( message : string ) => {
125+ for ( let i = 0 , cnt = 5 + Math . random ( ) * 5 ; i < cnt ; i ++ ) {
126+ await delay ( 250 ) ;
127+ }
128+ messages . push ( message ) ;
129+ } , controller ) ;
130+
131+ await t . step ( "enqueue() [single]" , async ( ) => {
132+ await workers . enqueue ( "Hello, world!" ) ;
133+ } ) ;
134+
135+ await waitFor ( ( ) => messages . length > 0 , 15_000 ) ;
136+
137+ await t . step ( "listen() [single]" , ( ) => {
138+ assertEquals ( messages , [ "Hello, world!" ] ) ;
139+ } ) ;
140+
141+ messages . pop ( ) ;
142+
143+ await t . step ( "enqueue() [multiple]" , async ( ) => {
144+ for ( let i = 0 ; i < 20 ; i ++ ) {
145+ await workers . enqueue ( `Hello, ${ i } !` ) ;
146+ }
147+ } ) ;
148+
149+ await t . step ( "listen() [multiple]" , async ( ) => {
150+ await delay ( 10 * 250 + 500 ) ;
151+ assertGreaterOrEqual ( messages . length , 5 ) ;
152+ await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
153+ assertEquals ( messages . length , 20 ) ;
154+ } ) ;
139155
140- await t . step ( "enqueue() [multiple]" , async ( ) => {
141- for ( let i = 0 ; i < 20 ; i ++ ) {
142- await workers . enqueue ( `Hello, ${ i } !` ) ;
143- }
144- } ) ;
145-
146- await t . step ( "listen() [multiple]" , async ( ) => {
147- await delay ( 10 * 250 + 500 ) ;
148- assertGreaterOrEqual ( messages . length , 5 ) ;
149156 await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
150- assertEquals ( messages . length , 20 ) ;
151- } ) ;
152157
153- await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
158+ while ( messages . length > 0 ) messages . pop ( ) ;
154159
155- while ( messages . length > 0 ) messages . pop ( ) ;
160+ await t . step ( "enqueueMany()" , async ( ) => {
161+ const messages = Array . from ( { length : 20 } , ( _ , i ) => `Hello, ${ i } !` ) ;
162+ await workers . enqueueMany ( messages ) ;
163+ } ) ;
156164
157- await t . step ( "enqueueMany()" , async ( ) => {
158- const messages = Array . from ( { length : 20 } , ( _ , i ) => `Hello, ${ i } !` ) ;
159- await workers . enqueueMany ( messages ) ;
160- } ) ;
165+ await t . step ( "listen() [multiple]" , async ( ) => {
166+ await delay ( 10 * 250 + 500 ) ;
167+ assertGreaterOrEqual ( messages . length , 5 ) ;
168+ await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
169+ assertEquals ( messages . length , 20 ) ;
170+ } ) ;
161171
162- await t . step ( "listen() [multiple]" , async ( ) => {
163- await delay ( 10 * 250 + 500 ) ;
164- assertGreaterOrEqual ( messages . length , 5 ) ;
165172 await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
166- assertEquals ( messages . length , 20 ) ;
167- } ) ;
168-
169- await waitFor ( ( ) => messages . length >= 20 , 15_000 ) ;
170173
171- controller . abort ( ) ;
172- await listening ;
174+ controller . abort ( ) ;
175+ await listening ;
173176
174- if ( Symbol . dispose in mq ) {
175- const dispose = mq [ Symbol . dispose ] ;
176- if ( typeof dispose === "function" ) dispose . call ( mq ) ;
177- }
177+ if ( Symbol . dispose in mq ) {
178+ const dispose = mq [ Symbol . dispose ] ;
179+ if ( typeof dispose === "function" ) dispose . call ( mq ) ;
180+ }
181+ } ,
178182 } ) ;
179183}
180184
0 commit comments