node/test/parallel/test-domain-enter-exit.js
Rich Trott 02fe8215f0 test: load common.js to test for global leaks
common.js contains code that checks for variables leaking into the
global namespace. Load common.js in all tests that do not
intentionally leak variables.

PR-URL: https://github.com/nodejs/node/pull/3095
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
2015-10-01 20:16:35 -07:00

40 lines
952 B
JavaScript

'use strict';
// Make sure the domain stack is a stack
require('../common');
var assert = require('assert');
var domain = require('domain');
function names(array) {
return array.map(function(d) {
return d.name;
}).join(', ');
}
var a = domain.create();
a.name = 'a';
var b = domain.create();
b.name = 'b';
var c = domain.create();
c.name = 'c';
a.enter(); // push
assert.deepEqual(domain._stack, [a],
'a not pushed: ' + names(domain._stack));
b.enter(); // push
assert.deepEqual(domain._stack, [a, b],
'b not pushed: ' + names(domain._stack));
c.enter(); // push
assert.deepEqual(domain._stack, [a, b, c],
'c not pushed: ' + names(domain._stack));
b.exit(); // pop
assert.deepEqual(domain._stack, [a],
'b and c not popped: ' + names(domain._stack));
b.enter(); // push
assert.deepEqual(domain._stack, [a, b],
'b not pushed: ' + names(domain._stack));