| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent d7e9bd1 commit 81a2194
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -9,7 +9,9 @@ if (!common.hasCrypto) | |||
| 9 | 9 | // secure context is changed. | |
| 10 | 10 | ||
| 11 | 11 | const assert = require('assert'); | |
| 12 | + const events = require('events'); | ||
| 12 | 13 | const https = require('https'); | |
| 14 | + const timers = require('timers/promises'); | ||
| 13 | 15 | const fixtures = require('../common/fixtures'); | |
| 14 | 16 | const credentialOptions = [ | |
| 15 | 17 | { | |
@@ -43,10 +45,10 @@ server.listen(0, common.mustCall(() => { | |||
| 43 | 45 | const { port } = server.address(); | |
| 44 | 46 | const firstRequest = makeRequest(port, 1); | |
| 45 | 47 | ||
| 46 | - async function makeRemainingRequests() { | ||
| 48 | + (async function makeRemainingRequests() { | ||
| 47 | 49 | // Wait until the first request is guaranteed to have been handled. | |
| 48 | - if (!firstResponse) { | ||
| 49 | - return setImmediate(makeRemainingRequests); | ||
| 50 | + while (!firstResponse) { | ||
| 51 | + await timers.setImmediate(); | ||
| 50 | 52 | } | |
| 51 | 53 | ||
| 52 | 54 | assert.strictEqual(await makeRequest(port, 2), 'success'); | |
@@ -56,53 +58,38 @@ server.listen(0, common.mustCall(() => { | |||
| 56 | 58 | const errorMessageRegex = common.hasOpenSSL3 ? | |
| 57 | 59 | /^Error: self-signed certificate$/ : | |
| 58 | 60 | /^Error: self signed certificate$/; | |
| 59 | - await assert.rejects(async () => { | ||
| 60 | - await makeRequest(port, 3); | ||
| 61 | - }, errorMessageRegex); | ||
| 61 | + await assert.rejects(makeRequest(port, 3), errorMessageRegex); | ||
| 62 | 62 | ||
| 63 | 63 | server.setSecureContext(credentialOptions[0]); | |
| 64 | 64 | assert.strictEqual(await makeRequest(port, 4), 'success'); | |
| 65 | 65 | ||
| 66 | 66 | server.setSecureContext(credentialOptions[1]); | |
| 67 | 67 | firstResponse.end('fun!'); | |
| 68 | - await assert.rejects(async () => { | ||
| 69 | - await makeRequest(port, 5); | ||
| 70 | - }, errorMessageRegex); | ||
| 68 | + await assert.rejects(makeRequest(port, 5), errorMessageRegex); | ||
| 71 | 69 | ||
| 72 | 70 | assert.strictEqual(await firstRequest, 'multi-request-success-fun!'); | |
| 73 | 71 | server.close(); | |
| 74 | - } | ||
| 75 | - | ||
| 76 | - makeRemainingRequests(); | ||
| 72 | + })().then(common.mustCall()); | ||
| 77 | 73 | })); | |
| 78 | 74 | ||
| 79 | - function makeRequest(port, id) { | ||
| 80 | - return new Promise((resolve, reject) => { | ||
| 81 | - const options = { | ||
| 82 | - rejectUnauthorized: true, | ||
| 83 | - ca: credentialOptions[0].ca, | ||
| 84 | - servername: 'agent1', | ||
| 85 | - headers: { id } | ||
| 86 | - }; | ||
| 87 | - | ||
| 88 | - let errored = false; | ||
| 89 | - https.get(`https://localhost:${port}`, options, (res) => { | ||
| 90 | - let response = ''; | ||
| 91 | - | ||
| 92 | - res.setEncoding('utf8'); | ||
| 93 | - | ||
| 94 | - res.on('data', (chunk) => { | ||
| 95 | - response += chunk; | ||
| 96 | - }); | ||
| 97 | - | ||
| 98 | - res.on('end', common.mustCall(() => { | ||
| 99 | - resolve(response); | ||
| 100 | - })); | ||
| 101 | - }).on('error', (err) => { | ||
| 102 | - errored = true; | ||
| 103 | - reject(err); | ||
| 104 | - }).on('finish', () => { | ||
| 105 | - assert.strictEqual(errored, false); | ||
| 106 | - }); | ||
| 107 | - }); | ||
| 75 | + async function makeRequest(port, id) { | ||
| 76 | + const options = { | ||
| 77 | + rejectUnauthorized: true, | ||
| 78 | + ca: credentialOptions[0].ca, | ||
| 79 | + servername: 'agent1', | ||
| 80 | + headers: { id }, | ||
| 81 | + agent: new https.Agent() | ||
| 82 | + }; | ||
| 83 | + | ||
| 84 | + const req = https.get(`https://localhost:${port}`, options); | ||
| 85 | + | ||
| 86 | + let errored = false; | ||
| 87 | + req.on('error', () => errored = true); | ||
| 88 | + req.on('finish', () => assert.strictEqual(errored, false)); | ||
| 89 | + | ||
| 90 | + const [res] = await events.once(req, 'response'); | ||
| 91 | + res.setEncoding('utf8'); | ||
| 92 | + let response = ''; | ||
| 93 | + for await (const chunk of res) response += chunk; | ||
| 94 | + return response; | ||
| 108 | 95 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments