Skip to content

Commit 7398b3b

Browse files
refactor: tests
1 parent 9d008f3 commit 7398b3b

File tree

1 file changed

+182
-49
lines changed

1 file changed

+182
-49
lines changed

test/server/https-option.test.js

Lines changed: 182 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
const path = require('path');
44
const fs = require('graceful-fs');
55
const request = require('supertest');
6-
const testServer = require('../helpers/test-server');
6+
const webpack = require('webpack');
7+
const Server = require('../../lib/Server');
78
const config = require('../fixtures/contentbase-config/webpack.config');
89
const { skipTestOnWindows } = require('../helpers/conditional-test');
910
const port = require('../ports-map')['https-option'];
@@ -22,9 +23,10 @@ describe('https option', () => {
2223
let req;
2324

2425
describe('as a boolean', () => {
25-
beforeAll((done) => {
26-
server = testServer.start(
27-
config,
26+
beforeAll(async () => {
27+
const compiler = webpack(config);
28+
29+
server = new Server(
2830
{
2931
static: {
3032
directory: contentBasePublic,
@@ -33,24 +35,45 @@ describe('https option', () => {
3335
https: true,
3436
port,
3537
},
36-
done
38+
compiler
3739
);
40+
41+
await new Promise((resolve, reject) => {
42+
server.listen(port, '::', (error) => {
43+
if (error) {
44+
reject(error);
45+
46+
return;
47+
}
48+
49+
resolve();
50+
});
51+
});
52+
3853
req = request(server.app);
3954
});
4055

41-
it('Request to index', async () => {
42-
const res = await req.get('/');
43-
expect(res.status).toEqual(200);
44-
expect(res.text).toContain('Heyo');
56+
afterAll(async () => {
57+
await new Promise((resolve) => {
58+
server.close(() => {
59+
resolve();
60+
});
61+
});
4562
});
4663

47-
afterAll(testServer.close);
64+
it('Request to index', async () => {
65+
const response = await req.get('/');
66+
67+
expect(response.status).toEqual(200);
68+
expect(response.text).toContain('Heyo');
69+
});
4870
});
4971

5072
describe('as an object when cacert, pfx, key and cert are buffer', () => {
51-
beforeAll((done) => {
52-
server = testServer.start(
53-
config,
73+
beforeAll(async () => {
74+
const compiler = webpack(config);
75+
76+
server = new Server(
5477
{
5578
static: {
5679
directory: contentBasePublic,
@@ -73,22 +96,45 @@ describe('https option', () => {
7396
},
7497
port,
7598
},
76-
done
99+
compiler
77100
);
101+
102+
await new Promise((resolve, reject) => {
103+
server.listen(port, '::', (error) => {
104+
if (error) {
105+
reject(error);
106+
107+
return;
108+
}
109+
110+
resolve();
111+
});
112+
});
113+
78114
req = request(server.app);
79115
});
80116

117+
afterAll(async () => {
118+
await new Promise((resolve) => {
119+
server.close(() => {
120+
resolve();
121+
});
122+
});
123+
});
124+
81125
it('Request to index', async () => {
82-
const res = await req.get('/');
83-
expect(res.status).toEqual(200);
84-
expect(res.text).toContain('Heyo');
126+
const response = await req.get('/');
127+
128+
expect(response.status).toEqual(200);
129+
expect(response.text).toContain('Heyo');
85130
});
86131
});
87132

88133
describe('as an object when cacert, pfx, key and cert are paths', () => {
89-
beforeAll((done) => {
90-
server = testServer.start(
91-
config,
134+
beforeAll(async () => {
135+
const compiler = webpack(config);
136+
137+
server = new Server(
92138
{
93139
static: contentBasePublic,
94140
https: {
@@ -100,15 +146,37 @@ describe('https option', () => {
100146
},
101147
port,
102148
},
103-
done
149+
compiler
104150
);
151+
152+
await new Promise((resolve, reject) => {
153+
server.listen(port, '::', (error) => {
154+
if (error) {
155+
reject(error);
156+
157+
return;
158+
}
159+
160+
resolve();
161+
});
162+
});
163+
105164
req = request(server.app);
106165
});
107166

167+
afterAll(async () => {
168+
await new Promise((resolve) => {
169+
server.close(() => {
170+
resolve();
171+
});
172+
});
173+
});
174+
108175
it('Request to index', async () => {
109-
const res = await req.get('/');
110-
expect(res.status).toEqual(200);
111-
expect(res.text).toContain('Heyo');
176+
const response = await req.get('/');
177+
178+
expect(response.status).toEqual(200);
179+
expect(response.text).toContain('Heyo');
112180
});
113181
});
114182

@@ -117,9 +185,10 @@ describe('https option', () => {
117185
return;
118186
}
119187

120-
beforeAll((done) => {
121-
server = testServer.start(
122-
config,
188+
beforeAll(async () => {
189+
const compiler = webpack(config);
190+
191+
server = new Server(
123192
{
124193
static: {
125194
directory: contentBasePublic,
@@ -134,24 +203,45 @@ describe('https option', () => {
134203
},
135204
port,
136205
},
137-
done
206+
compiler
138207
);
208+
209+
await new Promise((resolve, reject) => {
210+
server.listen(port, '::', (error) => {
211+
if (error) {
212+
reject(error);
213+
214+
return;
215+
}
216+
217+
resolve();
218+
});
219+
});
220+
139221
req = request(server.app);
140222
});
141223

142-
it('Request to index', async () => {
143-
const res = await req.get('/');
144-
expect(res.status).toEqual(200);
145-
expect(res.text).toContain('Heyo');
224+
afterAll(async () => {
225+
await new Promise((resolve) => {
226+
server.close(() => {
227+
resolve();
228+
});
229+
});
146230
});
147231

148-
afterAll(testServer.close);
232+
it('Request to index', async () => {
233+
const response = await req.get('/');
234+
235+
expect(response.status).toEqual(200);
236+
expect(response.text).toContain('Heyo');
237+
});
149238
});
150239

151240
describe('as an object when cacert, pfx, key and cert are raw strings', () => {
152-
beforeAll((done) => {
153-
server = testServer.start(
154-
config,
241+
beforeAll(async () => {
242+
const compiler = webpack(config);
243+
244+
server = new Server(
155245
{
156246
static: {
157247
directory: contentBasePublic,
@@ -175,22 +265,45 @@ describe('https option', () => {
175265
},
176266
port,
177267
},
178-
done
268+
compiler
179269
);
270+
271+
await new Promise((resolve, reject) => {
272+
server.listen(port, '::', (error) => {
273+
if (error) {
274+
reject(error);
275+
276+
return;
277+
}
278+
279+
resolve();
280+
});
281+
});
282+
180283
req = request(server.app);
181284
});
182285

286+
afterAll(async () => {
287+
await new Promise((resolve) => {
288+
server.close(() => {
289+
resolve();
290+
});
291+
});
292+
});
293+
183294
it('Request to index', async () => {
184-
const res = await req.get('/');
185-
expect(res.status).toEqual(200);
186-
expect(res.text).toContain('Heyo');
295+
const response = await req.get('/');
296+
297+
expect(response.status).toEqual(200);
298+
expect(response.text).toContain('Heyo');
187299
});
188300
});
189301

190302
describe('should support the "requestCert" option', () => {
191-
beforeAll((done) => {
192-
server = testServer.start(
193-
config,
303+
beforeAll(async () => {
304+
const compiler = webpack(config);
305+
306+
server = new Server(
194307
{
195308
static: {
196309
directory: contentBasePublic,
@@ -214,17 +327,37 @@ describe('https option', () => {
214327
},
215328
port,
216329
},
217-
done
330+
compiler
218331
);
332+
333+
await new Promise((resolve, reject) => {
334+
server.listen(port, '::', (error) => {
335+
if (error) {
336+
reject(error);
337+
338+
return;
339+
}
340+
341+
resolve();
342+
});
343+
});
344+
219345
req = request(server.app);
220346
});
221347

348+
afterAll(async () => {
349+
await new Promise((resolve) => {
350+
server.close(() => {
351+
resolve();
352+
});
353+
});
354+
});
355+
222356
it('Request to index', async () => {
223-
const res = await req.get('/');
224-
expect(res.status).toEqual(200);
225-
expect(res.text).toContain('Heyo');
357+
const response = await req.get('/');
358+
359+
expect(response.status).toEqual(200);
360+
expect(response.text).toContain('Heyo');
226361
});
227362
});
228-
229-
afterEach(testServer.close);
230363
});

0 commit comments

Comments
 (0)