zulip/frontend_tests/zjsunit/namespace.js

58 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-07-30 17:00:12 +02:00
var namespace = (function () {
var _ = require('third/underscore/underscore.js');
var exports = {};
var dependencies = [];
var requires = [];
2016-07-30 17:00:12 +02:00
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);
2016-07-30 17:00:12 +02:00
set_global(name, obj);
});
};
exports.restore = function () {
dependencies.forEach(function (name) {
delete global[name];
});
requires.forEach(function (fn) {
delete require.cache[require.resolve(fn)];
});
2016-07-30 17:00:12 +02:00
dependencies = [];
_.extend(global, old_builtins);
old_builtins = {};
};
2016-07-30 20:01:15 +02:00
exports.stub_out_jquery = function () {
set_global('$', function () {
return {
on: function () {},
trigger: function () {},
hide: function () {}
};
});
$.fn = {};
$.now = function () {};
};
2016-07-30 17:00:12 +02:00
return exports;
}());
module.exports = namespace;