@@ -123,42 +123,45 @@ async function setup(
123
123
} ) ;
124
124
}
125
125
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 ( ) => {
134
127
const contextManager = new AsyncHooksContextManager ( ) ;
135
128
setGlobalContextManager ( contextManager ) ;
136
-
137
129
afterEach ( ( ) => {
138
130
disableContextAndManager ( contextManager ) ;
139
131
} ) ;
140
132
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 ) ) ;
149
140
150
- const setupResult = await setup ( {
151
- tracerProvider : tracerProvider ,
152
- enableExtendedTracing : false ,
153
- } ) ;
141
+ const setupResult = await setup ( {
142
+ tracerProvider : tracerProvider ,
143
+ enableExtendedTracing : false ,
144
+ } ) ;
154
145
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' ) ;
158
150
159
- const instance = spanner . instance ( 'instance' ) ;
160
- database = instance . database ( 'database' ) ;
151
+ after ( async ( ) => {
152
+ spanner . close ( ) ;
153
+ await server . tryShutdown ( ( ) => { } ) ;
154
+ } ) ;
161
155
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 ( ) => {
162
165
// To deflake expectations of session creation, let's
163
166
// issue out a warm-up request request that'll ensure
164
167
// that the SessionPool is created deterministically.
@@ -168,16 +171,6 @@ describe('EndToEnd', () => {
168
171
traceExporter . reset ( ) ;
169
172
} ) ;
170
173
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
-
181
174
describe ( 'Database' , ( ) => {
182
175
it ( 'getSessions' , async ( ) => {
183
176
const [ rows ] = await database . getSessions ( ) ;
@@ -325,21 +318,7 @@ describe('EndToEnd', () => {
325
318
database
326
319
. runStream ( 'SELECT 1' )
327
320
. 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 )
343
322
. on ( 'end' , ( ) => {
344
323
traceExporter . forceFlush ( ) ;
345
324
const spans = traceExporter . getFinishedSpans ( ) ;
0 commit comments