diff --git a/test/js/runtests b/test/js/runtests index 27c810432..2d3b759a3 100755 --- a/test/js/runtests +++ b/test/js/runtests @@ -84,7 +84,8 @@ def main(): return 2 os.environ['NODE_PATH'] = os.environ.get('NODE_PATH', '') + \ ':/usr/local/lib/node_modules' \ - ':/usr/lib/node_modules' + ':/usr/local/share/npm/lib/node_modules' \ + ':/usr/lib/node_modules:./testlib' # Commandline preparation command_options, more_command_options = [], None diff --git a/test/js/testlib/requiremock.js b/test/js/testlib/requiremock.js new file mode 100644 index 000000000..5bda50d18 --- /dev/null +++ b/test/js/testlib/requiremock.js @@ -0,0 +1,124 @@ +/** +* {{LICENSE_HEADER}} +* {{LICENSE_HEADER}} +**/ + +/** +* This node module acts as a mock for requirejs and allows you to +* define your own dependencies in your tests. It also removes the +* asynchronous character of dependency loading, so you don't need +* to handle everthing in the callbacks. +* +* Per default it resolves the 'logging' dependency by routing it +* to console. +* +**/ +var registeredDependencies = {}; + +/** +* Mock for the requirejs(dependencyList, callback) function, loads +* all dependencies that have been registered under the given names +* in dependencies and calls fn with them as the parameter +* +**/ +var requireJsMock = function(dependencies, fn) { + var fnArgs = []; + for (var i=0;iobject map of dependencies +* for lookup with requirejs()/define() +**/ +function registerDependencies(obj) { + for(var name in obj) { + registeredDependencies[name] = obj[name]; + } +} + +/** +* The API for this module +**/ +module.exports = { + purgeDependencies: purgeDependencies, + registerDependencies: registerDependencies, + getDefine: function(name) { + if (typeof arg === "undefined") { + return registeredDependencies.__define__; + } else { + return registeredDependencies[name]; + } + } +};