Skip to content

Commit

Permalink
add debug probes
Browse files Browse the repository at this point in the history
  • Loading branch information
ChlodAlejandro committed Oct 30, 2023
1 parent 4e2c791 commit adcab6b
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/WikimediaStream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,9 @@ export class WikimediaStream extends EventEmitter {
*/
attachEventListeners( options: WikimediaStreamOptions ) {
this.eventSource.addEventListener( 'open', () => {
console.log( 'probe 6' );
this.emit( 'open' );
console.log( 'probe 7' );
} );

this.eventSource.addEventListener( 'error', ( e ) => {
Expand Down Expand Up @@ -589,6 +591,7 @@ export class WikimediaStream extends EventEmitter {

const skipCanary = !( options.enableCanary ?? false );
this.eventSource.addEventListener( 'message', async ( event: MessageEvent ) => {
console.log( 'probe 8' );
this._lastEventId = event.lastEventId;

const data: WikimediaEventBase = JSON.parse( event.data );
Expand All @@ -599,11 +602,15 @@ export class WikimediaStream extends EventEmitter {
}

// Emit event.
console.log( 'probe 9' );
this.emit( data.meta.stream, data, event );
console.log( 'probe 10' );
// Emit event to aliases of event stream.
if ( WikimediaEventStreamAliasesKey[ data.meta.stream ] ) {
for ( const alias of WikimediaEventStreamAliasesKey[ data.meta.stream ] ) {
console.log( 'probe 11+' + alias );
this.emit( alias, data, event );
console.log( 'probe 12+' + alias );
}
}
} );
Expand Down Expand Up @@ -633,12 +640,21 @@ export class WikimediaStream extends EventEmitter {
* Returns a promise that resolves when the stream is closed.
*/
waitUntilClosed(): Promise<void> {
console.log( 'probe 13' );
// Already closed.
if ( this.eventSource == null ) {
console.log( 'probe 14a' );
return Promise.resolve();
}
console.log( 'probe 14b' );
return new Promise( res => {
this.once( 'close', res );
console.log( 'probe 15' );
this.once( 'close', () => {
console.log( 'probe 17' );
res();
console.log( 'probe 18' );
} );
console.log( 'probe 16' );
} );
}

Expand Down
50 changes: 50 additions & 0 deletions tests/MediaWikiStandardizedStreamTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,22 @@ beforeEach( ( doneFn ) => {
} );

function generateStream( topic: WikimediaEventStream ): Promise<WikimediaStream> {
console.log( 'probe 1' );
return new Promise<WikimediaStream>( res => {
console.log( 'probe 2' );
const stream = new WikimediaStream(
topic, { autoStart: false }
);
console.log( 'probe 3' );
stream.open( {
since: new Date(
Date.now() - ( 7 * 24 * 60 * 60 * 1e3 )
).toISOString()
} ).then( () => {
console.log( 'probe 5' );
res( stream );
} );
console.log( 'probe 4' );
} );
}

Expand Down Expand Up @@ -81,12 +86,17 @@ test.each( [
if ( data.test_map ) {
expect( typeof data.test_map ).toEqual( 'object' );
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -106,12 +116,17 @@ test.each( [
if ( data.performer ) {
testUser( data.performer );
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -130,12 +145,17 @@ test.each( [
}
expect( typeof data.rev_id ).toBe( 'number' );
expect( typeof data.rev_count ).toBe( 'number' );
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand Down Expand Up @@ -166,12 +186,17 @@ test.each( [
expect( typeof link.external ).toBe( 'boolean' );
}
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand Down Expand Up @@ -199,12 +224,17 @@ test.each( [
expect( typeof data.new_redirect_page.page_namespace ).toBe( 'number' );
expect( typeof data.new_redirect_page.rev_id ).toBe( 'number' );
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -231,12 +261,17 @@ test.each( [
propertiesFound = true;
}
expect( propertiesFound ).toBeTruthy();
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -257,12 +292,17 @@ test.each( [
expect( typeof data.prior_state ).toBe( 'object' );
expect( typeof data.prior_state.page_id ).toBe( 'number' );
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -284,12 +324,17 @@ test.each( [
for ( const priorTag of data.prior_state.tags ) {
expect( typeof priorTag ).toBe( 'string' );
}
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

test.each( [
Expand All @@ -314,10 +359,15 @@ test.each( [
expect( typeof data.prior_state.visibility.text ).toBe( 'boolean' );
expect( typeof data.prior_state.visibility.user ).toBe( 'boolean' );
expect( typeof data.prior_state.visibility.comment ).toBe( 'boolean' );
console.log( 'probe 11' + topic );
if ( ++successCount > 20 ) {
console.log( 'probe 12' + topic );
stream.close();
}
} );
console.log( 'probe 19' );
await stream.waitUntilClosed();
console.log( 'probe 20' );
expect.hasAssertions();
console.log( 'probe 21' );
} );

0 comments on commit adcab6b

Please sign in to comment.