summaryrefslogtreecommitdiff
path: root/test/parallel/test-http2-onping.js
blob: 134a94ddb8f5824d0951d44d7e11adfca5d2ec99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
'use strict';

const {
  hasCrypto,
  mustCall,
  skip
} = require('../common');
if (!hasCrypto)
  skip('missing crypto');

const {
  deepStrictEqual
} = require('assert');
const {
  createServer,
  connect
} = require('http2');

const check = Buffer.from([ 1, 2, 3, 4, 5, 6, 7, 8 ]);

const server = createServer();
server.on('stream', mustCall((stream) => {
  stream.respond();
  stream.end('ok');
}));
server.on('session', mustCall((session) => {
  session.on('ping', mustCall((payload) => {
    deepStrictEqual(check, payload);
  }));
  session.ping(check, mustCall());
}));
server.listen(0, mustCall(() => {
  const client = connect(`http://localhost:${server.address().port}`);

  client.on('ping', mustCall((payload) => {
    deepStrictEqual(check, payload);
  }));
  client.on('connect', mustCall(() => {
    client.ping(check, mustCall());
  }));

  const req = client.request();
  req.resume();
  req.on('close', mustCall(() => {
    client.close();
    server.close();
  }));
}));