(type)
| 1153 | socketFailWrite(consts.ASYNC_ITERATOR) |
| 1154 | |
| 1155 | function socketFailEndWrite (type) { |
| 1156 | test(`socket fail while ending ${type} request body`, async (t) => { |
| 1157 | const p = tspl(t, { plan: 3 }) |
| 1158 | |
| 1159 | const server = createServer({ joinDuplicateHeaders: true }) |
| 1160 | server.once('request', (req, res) => { |
| 1161 | res.end() |
| 1162 | }) |
| 1163 | t.after(closeServerAsPromise(server)) |
| 1164 | |
| 1165 | server.listen(0, () => { |
| 1166 | const client = new Client(`http://localhost:${server.address().port}`, { |
| 1167 | pipelining: 2 |
| 1168 | }) |
| 1169 | t.after(client.destroy.bind(client)) |
| 1170 | |
| 1171 | const _err = new Error('kaboom') |
| 1172 | client.on('connect', () => { |
| 1173 | process.nextTick(() => { |
| 1174 | client[kSocket].destroy(_err) |
| 1175 | }) |
| 1176 | }) |
| 1177 | const preBody = new Readable({ read () {} }) |
| 1178 | preBody.push(null) |
| 1179 | const body = maybeWrapStream(preBody, type) |
| 1180 | |
| 1181 | client.request({ |
| 1182 | path: '/', |
| 1183 | method: 'POST', |
| 1184 | body |
| 1185 | }, (err) => { |
| 1186 | p.strictEqual(err, _err) |
| 1187 | }) |
| 1188 | client.close((err) => { |
| 1189 | p.ifError(err) |
| 1190 | client.close((err) => { |
| 1191 | p.ok(err instanceof errors.ClientDestroyedError) |
| 1192 | }) |
| 1193 | }) |
| 1194 | }) |
| 1195 | |
| 1196 | await p.completed |
| 1197 | }) |
| 1198 | } |
| 1199 | |
| 1200 | socketFailEndWrite(consts.STREAM) |
| 1201 | socketFailEndWrite(consts.ASYNC_ITERATOR) |
no test coverage detected