mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
Some node tests used to pass as long as prior tests ran, but then they would fail if you ran them standalone. Now we are more aggressive about cleaning up node's require cache after each individual test runs.
46 lines
943 B
JavaScript
46 lines
943 B
JavaScript
var namespace = (function () {
|
|
|
|
var _ = require('third/underscore/underscore.js');
|
|
var exports = {};
|
|
|
|
var dependencies = [];
|
|
var requires = [];
|
|
var old_builtins = {};
|
|
|
|
exports.set_global = function (name, val) {
|
|
global[name] = val;
|
|
dependencies.push(name);
|
|
return val;
|
|
};
|
|
|
|
exports.patch_builtin = function (name, val) {
|
|
old_builtins[name] = global[name];
|
|
global[name] = val;
|
|
return val;
|
|
};
|
|
|
|
exports.add_dependencies = function (dct) {
|
|
_.each(dct, function (fn, name) {
|
|
var obj = require(fn);
|
|
requires.push(fn);
|
|
set_global(name, obj);
|
|
});
|
|
};
|
|
|
|
exports.restore = function () {
|
|
dependencies.forEach(function (name) {
|
|
delete global[name];
|
|
});
|
|
requires.forEach(function (fn) {
|
|
delete require.cache[require.resolve(fn)];
|
|
});
|
|
dependencies = [];
|
|
_.extend(global, old_builtins);
|
|
old_builtins = {};
|
|
};
|
|
|
|
return exports;
|
|
}());
|
|
module.exports = namespace;
|
|
|