• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4if (!common.hasCrypto)
5  common.skip('missing crypto');
6const h2 = require('http2');
7
8// Errors should not be reported both in Http2ServerRequest
9// and Http2ServerResponse
10
11let expected = null;
12
13const server = h2.createServer(common.mustCall(function(req, res) {
14  res.stream.on('error', common.mustCall());
15  req.on('error', common.mustNotCall());
16  res.on('error', common.mustNotCall());
17  req.on('aborted', common.mustCall());
18  res.on('aborted', common.mustNotCall());
19
20  res.write('hello');
21
22  expected = new Error('kaboom');
23  res.stream.destroy(expected);
24  server.close();
25}));
26
27server.listen(0, common.mustCall(function() {
28  const url = `http://localhost:${server.address().port}`;
29  const client = h2.connect(url, common.mustCall(() => {
30    const request = client.request();
31    request.on('data', common.mustCall((chunk) => {
32      client.destroy();
33    }));
34  }));
35}));
36