summaryrefslogtreecommitdiff
path: root/test/parallel/test-cluster-worker-isconnected.js
blob: a0ada77bd023b1424ad6657166e2dc061d4441bf (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
'use strict';
const common = require('../common');
const cluster = require('cluster');
const assert = require('assert');

if (cluster.isMaster) {
  const worker = cluster.fork();

  assert.strictEqual(worker.isConnected(), true);

  worker.on('disconnect', common.mustCall(() => {
    assert.strictEqual(worker.isConnected(), false);
  }));

  worker.on('message', function(msg) {
    if (msg === 'readyToDisconnect') {
      worker.disconnect();
    }
  });
} else {
  function assertNotConnected() {
    assert.strictEqual(cluster.worker.isConnected(), false);
  }

  assert.strictEqual(cluster.worker.isConnected(), true);
  cluster.worker.on('disconnect', common.mustCall(assertNotConnected));
  cluster.worker.process.on('disconnect', common.mustCall(assertNotConnected));

  process.send('readyToDisconnect');
}