test: use node helpers for events.once and setTimeout promise (#37374)
This commit is contained in:
parent
46c8b9c728
commit
a3e3efe4c4
47 changed files with 932 additions and 927 deletions
|
@ -4,8 +4,9 @@ import { net, session, ClientRequest, BrowserWindow, ClientRequestConstructorOpt
|
|||
import * as http from 'http';
|
||||
import * as url from 'url';
|
||||
import { Socket } from 'net';
|
||||
import { emittedOnce } from './lib/events-helpers';
|
||||
import { defer, delay, listen } from './lib/spec-helpers';
|
||||
import { defer, listen } from './lib/spec-helpers';
|
||||
import { once } from 'events';
|
||||
import { setTimeout } from 'timers/promises';
|
||||
|
||||
// See https://github.com/nodejs/node/issues/40702.
|
||||
dns.setDefaultResultOrder('ipv4first');
|
||||
|
@ -412,9 +413,9 @@ describe('net module', () => {
|
|||
|
||||
const urlRequest = net.request(serverUrl);
|
||||
// request close event
|
||||
const closePromise = emittedOnce(urlRequest, 'close');
|
||||
const closePromise = once(urlRequest, 'close');
|
||||
// request finish event
|
||||
const finishPromise = emittedOnce(urlRequest, 'close');
|
||||
const finishPromise = once(urlRequest, 'close');
|
||||
// request "response" event
|
||||
const response = await getResponse(urlRequest);
|
||||
response.on('error', (error: Error) => {
|
||||
|
@ -1056,7 +1057,7 @@ describe('net module', () => {
|
|||
urlRequest.on('response', () => {
|
||||
expect.fail('unexpected response event');
|
||||
});
|
||||
const aborted = emittedOnce(urlRequest, 'abort');
|
||||
const aborted = once(urlRequest, 'abort');
|
||||
urlRequest.abort();
|
||||
urlRequest.write('');
|
||||
urlRequest.end();
|
||||
|
@ -1086,10 +1087,10 @@ describe('net module', () => {
|
|||
requestAbortEventEmitted = true;
|
||||
});
|
||||
|
||||
await emittedOnce(urlRequest, 'close', () => {
|
||||
urlRequest!.chunkedEncoding = true;
|
||||
urlRequest!.write(randomString(kOneKiloByte));
|
||||
});
|
||||
const p = once(urlRequest, 'close');
|
||||
urlRequest.chunkedEncoding = true;
|
||||
urlRequest.write(randomString(kOneKiloByte));
|
||||
await p;
|
||||
expect(requestReceivedByServer).to.equal(true);
|
||||
expect(requestAbortEventEmitted).to.equal(true);
|
||||
});
|
||||
|
@ -1119,7 +1120,7 @@ describe('net module', () => {
|
|||
expect.fail('Unexpected error event');
|
||||
});
|
||||
urlRequest.end(randomString(kOneKiloByte));
|
||||
await emittedOnce(urlRequest, 'abort');
|
||||
await once(urlRequest, 'abort');
|
||||
expect(requestFinishEventEmitted).to.equal(true);
|
||||
expect(requestReceivedByServer).to.equal(true);
|
||||
});
|
||||
|
@ -1160,7 +1161,7 @@ describe('net module', () => {
|
|||
expect.fail('Unexpected error event');
|
||||
});
|
||||
urlRequest.end(randomString(kOneKiloByte));
|
||||
await emittedOnce(urlRequest, 'abort');
|
||||
await once(urlRequest, 'abort');
|
||||
expect(requestFinishEventEmitted).to.be.true('request should emit "finish" event');
|
||||
expect(requestReceivedByServer).to.be.true('request should be received by the server');
|
||||
expect(requestResponseEventEmitted).to.be.true('"response" event should be emitted');
|
||||
|
@ -1192,7 +1193,7 @@ describe('net module', () => {
|
|||
abortsEmitted++;
|
||||
});
|
||||
urlRequest.end(randomString(kOneKiloByte));
|
||||
await emittedOnce(urlRequest, 'abort');
|
||||
await once(urlRequest, 'abort');
|
||||
expect(requestFinishEventEmitted).to.be.true('request should emit "finish" event');
|
||||
expect(requestReceivedByServer).to.be.true('request should be received by server');
|
||||
expect(abortsEmitted).to.equal(1, 'request should emit exactly 1 "abort" event');
|
||||
|
@ -1214,7 +1215,7 @@ describe('net module', () => {
|
|||
});
|
||||
const eventHandlers = Promise.all([
|
||||
bodyCheckPromise,
|
||||
emittedOnce(urlRequest, 'close')
|
||||
once(urlRequest, 'close')
|
||||
]);
|
||||
|
||||
urlRequest.end();
|
||||
|
@ -1445,7 +1446,7 @@ describe('net module', () => {
|
|||
urlRequest.end();
|
||||
urlRequest.on('redirect', () => { urlRequest.abort(); });
|
||||
urlRequest.on('error', () => {});
|
||||
await emittedOnce(urlRequest, 'abort');
|
||||
await once(urlRequest, 'abort');
|
||||
});
|
||||
|
||||
it('should not follow redirect when mode is error', async () => {
|
||||
|
@ -1459,7 +1460,7 @@ describe('net module', () => {
|
|||
redirect: 'error'
|
||||
});
|
||||
urlRequest.end();
|
||||
await emittedOnce(urlRequest, 'error');
|
||||
await once(urlRequest, 'error');
|
||||
});
|
||||
|
||||
it('should follow redirect when handler calls callback', async () => {
|
||||
|
@ -1559,7 +1560,7 @@ describe('net module', () => {
|
|||
const nodeRequest = http.request(nodeServerUrl);
|
||||
const nodeResponse = await getResponse(nodeRequest as any) as any as http.ServerResponse;
|
||||
const netRequest = net.request(netServerUrl);
|
||||
const responsePromise = emittedOnce(netRequest, 'response');
|
||||
const responsePromise = once(netRequest, 'response');
|
||||
// TODO(@MarshallOfSound) - FIXME with #22730
|
||||
nodeResponse.pipe(netRequest as any);
|
||||
const [netResponse] = await responsePromise;
|
||||
|
@ -1576,7 +1577,7 @@ describe('net module', () => {
|
|||
const netRequest = net.request({ url: serverUrl, method: 'POST' });
|
||||
expect(netRequest.getUploadProgress()).to.have.property('active', false);
|
||||
netRequest.end(Buffer.from('hello'));
|
||||
const [position, total] = await emittedOnce(netRequest, 'upload-progress');
|
||||
const [position, total] = await once(netRequest, 'upload-progress');
|
||||
expect(netRequest.getUploadProgress()).to.deep.equal({ active: true, started: true, current: position, total });
|
||||
});
|
||||
|
||||
|
@ -1586,7 +1587,7 @@ describe('net module', () => {
|
|||
});
|
||||
const urlRequest = net.request(serverUrl);
|
||||
urlRequest.end();
|
||||
const [error] = await emittedOnce(urlRequest, 'error');
|
||||
const [error] = await once(urlRequest, 'error');
|
||||
expect(error.message).to.equal('net::ERR_EMPTY_RESPONSE');
|
||||
});
|
||||
|
||||
|
@ -1597,7 +1598,7 @@ describe('net module', () => {
|
|||
});
|
||||
const urlRequest = net.request(serverUrl);
|
||||
urlRequest.end(randomBuffer(kOneMegaByte));
|
||||
const [error] = await emittedOnce(urlRequest, 'error');
|
||||
const [error] = await once(urlRequest, 'error');
|
||||
expect(error.message).to.be.oneOf(['net::ERR_FAILED', 'net::ERR_CONNECTION_RESET', 'net::ERR_CONNECTION_ABORTED']);
|
||||
});
|
||||
|
||||
|
@ -1609,14 +1610,14 @@ describe('net module', () => {
|
|||
const urlRequest = net.request(serverUrl);
|
||||
urlRequest.end();
|
||||
|
||||
await emittedOnce(urlRequest, 'close');
|
||||
await once(urlRequest, 'close');
|
||||
await new Promise((resolve, reject) => {
|
||||
['finish', 'abort', 'close', 'error'].forEach(evName => {
|
||||
urlRequest.on(evName as any, () => {
|
||||
reject(new Error(`Unexpected ${evName} event`));
|
||||
});
|
||||
});
|
||||
setTimeout(resolve, 50);
|
||||
setTimeout(50).then(resolve);
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -1902,7 +1903,7 @@ describe('net module', () => {
|
|||
port: serverUrl.port
|
||||
};
|
||||
const nodeRequest = http.request(nodeOptions);
|
||||
const nodeResponsePromise = emittedOnce(nodeRequest, 'response');
|
||||
const nodeResponsePromise = once(nodeRequest, 'response');
|
||||
// TODO(@MarshallOfSound) - FIXME with #22730
|
||||
(netResponse as any).pipe(nodeRequest);
|
||||
const [nodeResponse] = await nodeResponsePromise;
|
||||
|
@ -1929,7 +1930,7 @@ describe('net module', () => {
|
|||
const urlRequest = net.request(serverUrl);
|
||||
urlRequest.on('response', () => {});
|
||||
urlRequest.end();
|
||||
await delay(2000);
|
||||
await setTimeout(2000);
|
||||
// TODO(nornagon): I think this ought to max out at 20, but in practice
|
||||
// it seems to exceed that sometimes. This is at 25 to avoid test flakes,
|
||||
// but we should investigate if there's actually something broken here and
|
||||
|
@ -2159,7 +2160,7 @@ describe('net module', () => {
|
|||
it('should reject body promise when stream fails', async () => {
|
||||
const serverUrl = await respondOnce.toSingleURL((request, response) => {
|
||||
response.write('first chunk');
|
||||
setTimeout(() => response.destroy());
|
||||
setTimeout().then(() => response.destroy());
|
||||
});
|
||||
const r = await net.fetch(serverUrl);
|
||||
expect(r.status).to.equal(200);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue