@@ -123,42 +123,45 @@ async function setup(
123123 } ) ;
124124}
125125
126- describe ( 'EndToEnd' , ( ) => {
127- let server : grpc . Server ;
128- let spanner : Spanner ;
129- let database : Database ;
130- let spannerMock : mock . MockSpanner ;
131- let traceExporter : typeof InMemorySpanExporter ;
132- let tracerProvider : typeof NodeTracerProvider ;
133-
126+ describe ( 'EndToEnd' , async ( ) => {
134127 const contextManager = new AsyncHooksContextManager ( ) ;
135128 setGlobalContextManager ( contextManager ) ;
136-
137129 afterEach ( ( ) => {
138130 disableContextAndManager ( contextManager ) ;
139131 } ) ;
140132
141- beforeEach ( async ( ) => {
142- traceExporter = new InMemorySpanExporter ( ) ;
143- const sampler = new AlwaysOnSampler ( ) ;
144- tracerProvider = new NodeTracerProvider ( {
145- sampler : sampler ,
146- exporter : traceExporter ,
147- } ) ;
148- tracerProvider . addSpanProcessor ( new SimpleSpanProcessor ( traceExporter ) ) ;
133+ const traceExporter = new InMemorySpanExporter ( ) ;
134+ const sampler = new AlwaysOnSampler ( ) ;
135+ const tracerProvider = new NodeTracerProvider ( {
136+ sampler : sampler ,
137+ exporter : traceExporter ,
138+ } ) ;
139+ tracerProvider . addSpanProcessor ( new SimpleSpanProcessor ( traceExporter ) ) ;
149140
150- const setupResult = await setup ( {
151- tracerProvider : tracerProvider ,
152- enableExtendedTracing : false ,
153- } ) ;
141+ const setupResult = await setup ( {
142+ tracerProvider : tracerProvider ,
143+ enableExtendedTracing : false ,
144+ } ) ;
154145
155- spanner = setupResult . spanner ;
156- server = setupResult . server ;
157- spannerMock = setupResult . spannerMock ;
146+ const server = setupResult . server ;
147+ const spannerMock = setupResult . spannerMock ;
148+ const spanner = setupResult . spanner ;
149+ const instance = spanner . instance ( 'instance' ) ;
158150
159- const instance = spanner . instance ( 'instance' ) ;
160- database = instance . database ( 'database' ) ;
151+ after ( async ( ) => {
152+ spanner . close ( ) ;
153+ await server . tryShutdown ( ( ) => { } ) ;
154+ } ) ;
161155
156+ afterEach ( async ( ) => {
157+ await tracerProvider . forceFlush ( ) ;
158+ await traceExporter . reset ( ) ;
159+ spannerMock . resetRequests ( ) ;
160+ } ) ;
161+
162+ const database = instance . database ( 'database' ) ;
163+
164+ beforeEach ( async ( ) => {
162165 // To deflake expectations of session creation, let's
163166 // issue out a warm-up request request that'll ensure
164167 // that the SessionPool is created deterministically.
@@ -168,16 +171,6 @@ describe('EndToEnd', () => {
168171 traceExporter . reset ( ) ;
169172 } ) ;
170173
171- afterEach ( async ( ) => {
172- await tracerProvider . forceFlush ( ) ;
173- await tracerProvider . shutdown ( ) ;
174- traceExporter . reset ( ) ;
175- spannerMock . resetRequests ( ) ;
176- // Hot-fix, do not close spanner.
177- // spanner.close();
178- server . tryShutdown ( ( ) => { } ) ;
179- } ) ;
180-
181174 describe ( 'Database' , ( ) => {
182175 it ( 'getSessions' , async ( ) => {
183176 const [ rows ] = await database . getSessions ( ) ;
@@ -325,21 +318,7 @@ describe('EndToEnd', () => {
325318 database
326319 . runStream ( 'SELECT 1' )
327320 . on ( 'data' , row => { } )
328- . once ( 'error' , err => {
329- // TODO: Examine why this error condition is triggered
330- // after the test has finished running.
331- console . log ( `\x1b[31mRogue error: ${ err } \x1b[00m` ) ;
332- /*
333- // De-flake by ignoring grpc.status.CANCELLED as we've
334- // seen on the Github test runners, due to timing.
335- const grpcErr = err as grpc.ServiceError;
336- if (!grpcErr) {
337- assert.ifError(err);
338- } else if (grpcErr.code != grpc.status.CANCELLED) {
339- assert.ifError(err);
340- }
341- */
342- } )
321+ . once ( 'error' , assert . ifError )
343322 . on ( 'end' , ( ) => {
344323 traceExporter . forceFlush ( ) ;
345324 const spans = traceExporter . getFinishedSpans ( ) ;
0 commit comments