Skip to content

Commit ac0c398

Browse files
committed
test(@angular-devkit/build-angular): clean up proxy-config_spec
This commit removes repetitive code in the mentioned spec file.
1 parent bb32b7e commit ac0c398

File tree

1 file changed

+36
-57
lines changed

1 file changed

+36
-57
lines changed

packages/angular_devkit/build_angular/src/builders/dev-server/tests/options/proxy-config_spec.ts

+36-57
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,18 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
2828
proxyConfig: 'proxy.config.json',
2929
});
3030

31-
const proxyServer = createProxyServer();
31+
const proxyServer = await createProxyServer();
3232
try {
33-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
34-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
35-
3633
await harness.writeFiles({
37-
'proxy.config.json': `{ "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }`,
34+
'proxy.config.json': `{ "/api/*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }`,
3835
});
3936

4037
const { result, response } = await executeOnceAndFetch(harness, '/api/test');
4138

4239
expect(result?.success).toBeTrue();
4340
expect(await response?.text()).toContain('TEST_API_RETURN');
4441
} finally {
45-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
42+
await proxyServer.close();
4643
}
4744
});
4845

@@ -52,15 +49,12 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
5249
proxyConfig: 'proxy.config.json',
5350
});
5451

55-
const proxyServer = createProxyServer();
52+
const proxyServer = await createProxyServer();
5653
try {
57-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
58-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
59-
6054
await harness.writeFiles({
6155
'proxy.config.json': `
6256
// JSON file with comments
63-
{ "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }
57+
{ "/api/*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }
6458
`,
6559
});
6660

@@ -69,7 +63,7 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
6963
expect(result?.success).toBeTrue();
7064
expect(await response?.text()).toContain('TEST_API_RETURN');
7165
} finally {
72-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
66+
await proxyServer.close();
7367
}
7468
});
7569

@@ -78,22 +72,18 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
7872
...BASE_OPTIONS,
7973
proxyConfig: 'proxy.config.js',
8074
});
81-
82-
const proxyServer = createProxyServer();
75+
const proxyServer = await createProxyServer();
8376
try {
84-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
85-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
86-
8777
await harness.writeFiles({
88-
'proxy.config.js': `module.exports = { "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }`,
78+
'proxy.config.js': `module.exports = { "/api/*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }`,
8979
});
9080

9181
const { result, response } = await executeOnceAndFetch(harness, '/api/test');
9282

9383
expect(result?.success).toBeTrue();
9484
expect(await response?.text()).toContain('TEST_API_RETURN');
9585
} finally {
96-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
86+
await proxyServer.close();
9787
}
9888
});
9989

@@ -103,13 +93,10 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
10393
proxyConfig: 'proxy.config.js',
10494
});
10595

106-
const proxyServer = createProxyServer();
96+
const proxyServer = await createProxyServer();
10797
try {
108-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
109-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
110-
11198
await harness.writeFiles({
112-
'proxy.config.js': `export default { "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }`,
99+
'proxy.config.js': `export default { "/api/*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }`,
113100
'package.json': '{ "type": "module" }',
114101
});
115102

@@ -118,7 +105,7 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
118105
expect(result?.success).toBeTrue();
119106
expect(await response?.text()).toContain('TEST_API_RETURN');
120107
} finally {
121-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
108+
await proxyServer.close();
122109
}
123110
});
124111

@@ -128,10 +115,9 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
128115
proxyConfig: 'proxy.config.cjs',
129116
});
130117

131-
const proxyServer = createProxyServer();
118+
const proxyServer = await createProxyServer();
132119
try {
133-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
134-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
120+
const proxyAddress = proxyServer.address;
135121

136122
await harness.writeFiles({
137123
'proxy.config.cjs': `module.exports = { "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }`,
@@ -142,7 +128,7 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
142128
expect(result?.success).toBeTrue();
143129
expect(await response?.text()).toContain('TEST_API_RETURN');
144130
} finally {
145-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
131+
await proxyServer.close();
146132
}
147133
});
148134

@@ -152,21 +138,18 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
152138
proxyConfig: 'proxy.config.mjs',
153139
});
154140

155-
const proxyServer = createProxyServer();
141+
const proxyServer = await createProxyServer();
156142
try {
157-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
158-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
159-
160143
await harness.writeFiles({
161-
'proxy.config.mjs': `export default { "/api/*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }`,
144+
'proxy.config.mjs': `export default { "/api/*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }`,
162145
});
163146

164147
const { result, response } = await executeOnceAndFetch(harness, '/api/test');
165148

166149
expect(result?.success).toBeTrue();
167150
expect(await response?.text()).toContain('TEST_API_RETURN');
168151
} finally {
169-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
152+
await proxyServer.close();
170153
}
171154
});
172155

@@ -176,21 +159,18 @@ describeServeBuilder(executeDevServer, DEV_SERVER_BUILDER_INFO, (harness, setupT
176159
proxyConfig: 'proxy.config.json',
177160
});
178161

179-
const proxyServer = createProxyServer();
162+
const proxyServer = await createProxyServer();
180163
try {
181-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
182-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
183-
184164
await harness.writeFiles({
185-
'proxy.config.json': `[ { "context": ["/api", "/abc"], "target": "http://127.0.0.1:${proxyAddress.port}" } ]`,
165+
'proxy.config.json': `[ { "context": ["/api", "/abc"], "target": "http://127.0.0.1:${proxyServer.address.port}" } ]`,
186166
});
187167

188168
const { result, response } = await executeOnceAndFetch(harness, '/api/test');
189169

190170
expect(result?.success).toBeTrue();
191171
expect(await response?.text()).toContain('TEST_API_RETURN');
192172
} finally {
193-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
173+
await proxyServer.close();
194174
}
195175
});
196176

@@ -255,14 +235,11 @@ function viteOnlyTests(harness: JasmineBuilderHarness<unknown>): void {
255235
proxyConfig: 'proxy.config.json',
256236
});
257237

258-
const proxyServer = createProxyServer();
238+
const proxyServer = await createProxyServer();
259239
try {
260-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
261-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
262-
263240
await harness.writeFiles({
264241
'proxy.config.json': `
265-
{ "^/api/.*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }
242+
{ "^/api/.*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }
266243
`,
267244
});
268245

@@ -271,7 +248,7 @@ function viteOnlyTests(harness: JasmineBuilderHarness<unknown>): void {
271248
expect(result?.success).toBeTrue();
272249
expect(await response?.text()).toContain('TEST_API_RETURN');
273250
} finally {
274-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
251+
await proxyServer.close();
275252
}
276253
});
277254

@@ -281,14 +258,11 @@ function viteOnlyTests(harness: JasmineBuilderHarness<unknown>): void {
281258
proxyConfig: 'proxy.config.json',
282259
});
283260

284-
const proxyServer = createProxyServer();
261+
const proxyServer = await createProxyServer();
285262
try {
286-
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
287-
const proxyAddress = proxyServer.address() as import('net').AddressInfo;
288-
289263
await harness.writeFiles({
290264
'proxy.config.json': `
291-
{ "^\\/(?!something).*": { "target": "http://127.0.0.1:${proxyAddress.port}" } }
265+
{ "^\\/(?!something).*": { "target": "http://127.0.0.1:${proxyServer.address.port}" } }
292266
`,
293267
});
294268

@@ -297,7 +271,7 @@ function viteOnlyTests(harness: JasmineBuilderHarness<unknown>): void {
297271
expect(result?.success).toBeTrue();
298272
expect(await response?.text()).toContain('TEST_API_RETURN');
299273
} finally {
300-
await new Promise<void>((resolve) => proxyServer.close(() => resolve()));
274+
await proxyServer.close();
301275
}
302276
});
303277
}
@@ -306,11 +280,9 @@ function viteOnlyTests(harness: JasmineBuilderHarness<unknown>): void {
306280
* Creates an HTTP Server used for proxy testing that provides a `/test` endpoint
307281
* that returns a 200 response with a body of `TEST_API_RETURN`. All other requests
308282
* will return a 404 response.
309-
*
310-
* @returns An HTTP Server instance.
311283
*/
312-
function createProxyServer() {
313-
return createServer((request, response) => {
284+
async function createProxyServer() {
285+
const proxyServer = createServer((request, response) => {
314286
if (request.url?.endsWith('/test')) {
315287
response.writeHead(200);
316288
response.end('TEST_API_RETURN');
@@ -319,4 +291,11 @@ function createProxyServer() {
319291
response.end();
320292
}
321293
});
294+
295+
await new Promise<void>((resolve) => proxyServer.listen(0, '127.0.0.1', resolve));
296+
297+
return {
298+
address: proxyServer.address() as import('net').AddressInfo,
299+
close: () => new Promise<void>((resolve) => proxyServer.close(() => resolve())),
300+
};
322301
}

0 commit comments

Comments
 (0)