Skip to content

Commit 016656a

Browse files
committed
fix(serve): move "server.close" to after each function in test cases
1 parent f13dc42 commit 016656a

File tree

4 files changed

+50
-52
lines changed

4 files changed

+50
-52
lines changed

packages/serve/test/middlewares/built-in-middlewares/authRouteMiddleware.spec.ts

+7-8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
BaseAuthenticator,
1010
KoaContext,
1111
} from '@vulcan-sql/serve/models';
12+
import { Server } from 'http';
1213

1314
const runServer = async (
1415
options: AuthOptions,
@@ -31,6 +32,7 @@ describe('Test auth route middleware', () => {
3132
string,
3233
sinon.StubbedInstance<BaseAuthenticator<any>>
3334
>;
35+
let server: Server;
3436

3537
beforeAll(() => {
3638
const a1 = sinon.stubInterface<BaseAuthenticator<any>>();
@@ -47,6 +49,7 @@ describe('Test auth route middleware', () => {
4749
};
4850
});
4951
afterEach(() => {
52+
server?.close();
5053
sinon.default.restore();
5154
});
5255

@@ -132,14 +135,13 @@ describe('Test auth route middleware', () => {
132135
'Should get correct result when call GET /auth?type=%p',
133136
async (name, expected) => {
134137
// Arrange
135-
const server = await runServer({ a1: {}, a2: {} }, stubAuthenticators);
138+
server = await runServer({ a1: {}, a2: {} }, stubAuthenticators);
136139

137140
// Act
138141
const request = supertest(server).get(`/auth?type=${name}`);
139142
const response = await request;
140143
// Assert
141144
expect(response.body).toEqual({ token: expected });
142-
server.close();
143145
}
144146
);
145147

@@ -151,7 +153,7 @@ describe('Test auth route middleware', () => {
151153
options
152154
)}.`,
153155
};
154-
const server = await runServer(options, stubAuthenticators);
156+
server = await runServer(options, stubAuthenticators);
155157

156158
// Act
157159
const request = supertest(server).get(`/auth`);
@@ -160,7 +162,6 @@ describe('Test auth route middleware', () => {
160162
// Assert
161163
expect(response.statusCode).toEqual(400);
162164
expect(response.body).toEqual(expected);
163-
server.close();
164165
});
165166

166167
it('Should failed when call GET /auth?type=m1 but "m1" not setup in "auth" options', async () => {
@@ -171,7 +172,7 @@ describe('Test auth route middleware', () => {
171172
options
172173
)}.`,
173174
};
174-
const server = await runServer(options, stubAuthenticators);
175+
server = await runServer(options, stubAuthenticators);
175176

176177
// Act
177178
const request = supertest(server).get(`/auth?type=m1`);
@@ -180,7 +181,6 @@ describe('Test auth route middleware', () => {
180181
// Assert
181182
expect(response.statusCode).toEqual(400);
182183
expect(response.body).toEqual(expected);
183-
server.close();
184184
});
185185

186186
it('Should failed when call GET /auth?type=a3 but auth identity "a3" failed', async () => {
@@ -192,7 +192,7 @@ describe('Test auth route middleware', () => {
192192
const stubAuthenticator = sinon.stubInterface<BaseAuthenticator<any>>();
193193
stubAuthenticator.authIdentity.rejects(error);
194194
stubAuthenticator.getExtensionId.returns('a3');
195-
const server = await runServer(
195+
server = await runServer(
196196
{ a3: {} },
197197
{
198198
a3: stubAuthenticator,
@@ -206,6 +206,5 @@ describe('Test auth route middleware', () => {
206206
// Assert
207207
expect(response.statusCode).toEqual(400);
208208
expect(response.body).toEqual(expected);
209-
server.close();
210209
});
211210
});

packages/serve/test/middlewares/built-in-middlewares/corsMiddleware.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ describe('Test cors middlewares', () => {
2626
});
2727

2828
afterAll(() => {
29-
server.close();
29+
server?.close();
3030
});
3131
it('Should validate successfully when pass correct origin domain', async () => {
3232
// Arrange

packages/serve/test/middlewares/built-in-middlewares/enforceHttpsMiddleware.spec.ts

+41-42
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ResolverType,
99
} from '@vulcan-sql/serve/middleware';
1010
import { ServeConfig } from '@vulcan-sql/serve/models';
11+
import { Server } from 'http';
1112

1213
const runServer = (config: Omit<ServeConfig, 'artifact' | 'template'>) => {
1314
// Arrange
@@ -30,9 +31,13 @@ const runServer = (config: Omit<ServeConfig, 'artifact' | 'template'>) => {
3031
};
3132

3233
describe('Test enforce https middlewares for LOCAL resolver type', () => {
34+
let server: Server;
35+
afterEach(() => {
36+
server?.close();
37+
});
3338
it('Should get status code "301" when send GET request', async () => {
3439
// Arrange
35-
const { server } = runServer({});
40+
server = runServer({}).server;
3641

3742
const request = supertest(server).get('/');
3843
// Act
@@ -41,33 +46,29 @@ describe('Test enforce https middlewares for LOCAL resolver type', () => {
4146
// Assert
4247
expect(response.statusCode).toEqual(301);
4348
expect(response.body).toEqual({});
44-
45-
server.close();
4649
});
4750

4851
it('Should get status code "405" when send POST request', async () => {
4952
// Arrange
50-
const { server } = runServer({});
53+
server = runServer({}).server;
5154
const request = supertest(server).post('/');
5255
// Act
5356
const response = await request;
5457

5558
// Assert
5659
expect(response.statusCode).toEqual(405);
5760
expect(response.body).toEqual({});
58-
59-
server.close();
6061
});
6162

6263
it('Should get status code "301" when config allow POST redirect', async () => {
6364
// Arrange
64-
const { server } = runServer({
65+
server = runServer({
6566
'enforce-https': {
6667
options: {
6768
redirectMethods: ['POST'],
6869
} as EnforceHttpsOptions,
6970
},
70-
});
71+
}).server;
7172

7273
const request = supertest(server).post('/');
7374
// Act
@@ -76,21 +77,23 @@ describe('Test enforce https middlewares for LOCAL resolver type', () => {
7677
// Assert
7778
expect(response.statusCode).toEqual(301);
7879
expect(response.body).toEqual({});
79-
80-
server.close();
8180
});
8281
});
8382

8483
describe('Test enforce https middlewares for X_FORWARDED_PROTO resolver type', () => {
84+
let server: Server;
85+
afterEach(() => {
86+
server?.close();
87+
});
8588
it('Should get status code "301" when send GET request', async () => {
8689
// Arrange
87-
const { server } = runServer({
90+
server = runServer({
8891
'enforce-https': {
8992
options: {
9093
type: ResolverType.X_FORWARDED_PROTO.toString(),
9194
} as EnforceHttpsOptions,
9295
},
93-
});
96+
}).server;
9497

9598
const request = supertest(server).get('/');
9699
// Act
@@ -99,19 +102,17 @@ describe('Test enforce https middlewares for X_FORWARDED_PROTO resolver type', (
99102
// Assert
100103
expect(response.statusCode).toEqual(301);
101104
expect(response.body).toEqual({});
102-
103-
server.close();
104105
});
105106

106107
it('Should get status code "200" when send GET request with "x-forwarded-proto: https"', async () => {
107108
// Arrange
108-
const { server } = runServer({
109+
server = runServer({
109110
'enforce-https': {
110111
options: {
111112
type: ResolverType.X_FORWARDED_PROTO.toString(),
112113
} as EnforceHttpsOptions,
113114
},
114-
});
115+
}).server;
115116

116117
const request = supertest(server)
117118
.get('/')
@@ -122,21 +123,23 @@ describe('Test enforce https middlewares for X_FORWARDED_PROTO resolver type', (
122123
// Assert
123124
expect(response.statusCode).toEqual(200);
124125
expect(response.body).toEqual({ result: 'ok' });
125-
126-
server.close();
127126
});
128127
});
129128

130129
describe('Test enforce https middlewares for AZURE_ARR resolver type', () => {
130+
let server: Server;
131+
afterEach(() => {
132+
server?.close();
133+
});
131134
it('Should get status code "301" when send GET request', async () => {
132135
// Arrange
133-
const { server } = runServer({
136+
server = runServer({
134137
'enforce-https': {
135138
options: {
136139
type: ResolverType.AZURE_ARR.toString(),
137140
} as EnforceHttpsOptions,
138141
},
139-
});
142+
}).server;
140143

141144
const request = supertest(server).get('/');
142145
// Act
@@ -145,19 +148,17 @@ describe('Test enforce https middlewares for AZURE_ARR resolver type', () => {
145148
// Assert
146149
expect(response.statusCode).toEqual(301);
147150
expect(response.body).toEqual({});
148-
149-
server.close();
150151
});
151152

152153
it('Should get status code "200" when send GET request with "x-arr-ssl: https"', async () => {
153154
// Arrange
154-
const { server } = runServer({
155+
server = runServer({
155156
'enforce-https': {
156157
options: {
157158
type: ResolverType.AZURE_ARR.toString(),
158159
} as EnforceHttpsOptions,
159160
},
160-
});
161+
}).server;
161162

162163
const request = supertest(server).get('/').set('x-arr-ssl', 'https');
163164
// Act
@@ -166,12 +167,14 @@ describe('Test enforce https middlewares for AZURE_ARR resolver type', () => {
166167
// Assert
167168
expect(response.statusCode).toEqual(200);
168169
expect(response.body).toEqual({ result: 'ok' });
169-
170-
server.close();
171170
});
172171
});
173172

174173
describe('Test enforce https middlewares for CUSTOM resolver type', () => {
174+
let server: Server;
175+
afterEach(() => {
176+
server?.close();
177+
});
175178
it('Should throw error when not set proto in options', async () => {
176179
// Arrange
177180
const config = {
@@ -190,14 +193,14 @@ describe('Test enforce https middlewares for CUSTOM resolver type', () => {
190193
});
191194
it('Should get status code "301" when send GET request', async () => {
192195
// Arrange
193-
const { server } = runServer({
196+
server = runServer({
194197
'enforce-https': {
195198
options: {
196199
type: ResolverType.CUSTOM.toString(),
197200
proto: 'x-custom-proto',
198201
} as EnforceHttpsOptions,
199202
},
200-
});
203+
}).server;
201204

202205
const request = supertest(server).get('/');
203206
// Act
@@ -206,20 +209,18 @@ describe('Test enforce https middlewares for CUSTOM resolver type', () => {
206209
// Assert
207210
expect(response.statusCode).toEqual(301);
208211
expect(response.body).toEqual({});
209-
210-
server.close();
211212
});
212213

213214
it('Should get status code "200" when send GET request with "x-custom-proto: https"', async () => {
214215
// Arrange
215-
const { server } = runServer({
216+
server = runServer({
216217
'enforce-https': {
217218
options: {
218219
type: ResolverType.CUSTOM.toString(),
219220
proto: 'x-custom-proto',
220221
} as EnforceHttpsOptions,
221222
},
222-
});
223+
}).server;
223224

224225
const request = supertest(server).get('/').set('x-custom-proto', 'https');
225226
// Act
@@ -228,21 +229,23 @@ describe('Test enforce https middlewares for CUSTOM resolver type', () => {
228229
// Assert
229230
expect(response.statusCode).toEqual(200);
230231
expect(response.body).toEqual({ result: 'ok' });
231-
232-
server.close();
233232
});
234233
});
235234

236235
describe('Test enforce https middlewares for FORWARDED resolver type', () => {
236+
let server: Server;
237+
afterEach(() => {
238+
server?.close();
239+
});
237240
it('Should get status code "301" when send GET request', async () => {
238241
// Arrange
239-
const { server } = runServer({
242+
server = runServer({
240243
'enforce-https': {
241244
options: {
242245
type: ResolverType.FORWARDED.toString(),
243246
} as EnforceHttpsOptions,
244247
},
245-
});
248+
}).server;
246249

247250
const request = supertest(server).get('/');
248251
// Act
@@ -251,19 +254,17 @@ describe('Test enforce https middlewares for FORWARDED resolver type', () => {
251254
// Assert
252255
expect(response.statusCode).toEqual(301);
253256
expect(response.body).toEqual({});
254-
255-
server.close();
256257
});
257258

258259
it('Should get status code "200" when send GET request with "forwarded: by=foo;for=baz;host=localhost;proto=https', async () => {
259260
// Arrange
260-
const { server } = runServer({
261+
server = runServer({
261262
'enforce-https': {
262263
options: {
263264
type: ResolverType.FORWARDED.toString(),
264265
} as EnforceHttpsOptions,
265266
},
266-
});
267+
}).server;
267268

268269
const request = supertest(server)
269270
.get('/')
@@ -274,7 +275,5 @@ describe('Test enforce https middlewares for FORWARDED resolver type', () => {
274275
// Assert
275276
expect(response.statusCode).toEqual(200);
276277
expect(response.body).toEqual({ result: 'ok' });
277-
278-
server.close();
279278
});
280279
});

packages/serve/test/middlewares/built-in-middlewares/rateLimitMiddleware.spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ describe('Test rate limit middlewares', () => {
3333
});
3434

3535
afterAll(() => {
36-
server.close();
36+
server?.close();
3737
});
3838

3939
it.each([

0 commit comments

Comments
 (0)