1'use strict';
2
3const common = require('../common');
4const assert = require('assert');
5const domain = require('domain');
6
7{
8  const d = new domain.Domain();
9
10  const mustNotCall = common.mustNotCall();
11
12  d.on('error', common.mustCall((err) => {
13    assert.strictEqual(err.message, 'foobar');
14    assert.strictEqual(err.domain, d);
15    assert.strictEqual(err.domainEmitter, undefined);
16    assert.strictEqual(err.domainBound, mustNotCall);
17    assert.strictEqual(err.domainThrown, false);
18  }));
19
20  const bound = d.intercept(mustNotCall);
21  bound(new Error('foobar'));
22}
23
24{
25  const d = new domain.Domain();
26
27  const bound = d.intercept(common.mustCall((data) => {
28    assert.strictEqual(data, 'data');
29  }));
30
31  bound(null, 'data');
32}
33
34{
35  const d = new domain.Domain();
36
37  const bound = d.intercept(common.mustCall((data, data2) => {
38    assert.strictEqual(data, 'data');
39    assert.strictEqual(data2, 'data2');
40  }));
41
42  bound(null, 'data', 'data2');
43}
44