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