rewire
rewire copied to clipboard
rewire() doesn't detect when source file tries to rewire itself - stack overflow
self-reference.js var rewire = require('rewire'); var lib = rewire('./self-reference.js');
When run (mocha 2.4.5, node v4.3.0) $ mocha ./self-reference.js
Expected Error: file "./self-reference.js" tries to rewire itself (self-reference.js:2)
Actual It crashes with "Maximum call stack size exceeded" - full trace below
Yes, this is user error. I managed to do this with insufficiently deep parent-directory-ing ../../../../lib/module/sub-module/source.js
fs.js:834
return binding.fstat(fd);
^
RangeError: Maximum call stack size exceeded
at Object.fs.fstatSync (fs.js:834:18)
at Object.fs.readFileSync (fs.js:403:13)
at Object.Module._extensions..js (module.js:416:20)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at Module.requireProxy (.../node_modules/rewire/lib/moduleEnv.js:46:24)
at require (internal/module.js:12:17)
at .../test/self-reference.js:1:1255
at Object.