/* * jasmine.requirejs() returns a function that will load the file(s) required * and will wait until it's done before proceeding with running specs. * The function returned is intended to be passed to beforeEach() so the file(s) * is(are) loaded before running each spec. * * Syntax: * * jasmine.requirejs(options, files) * or * jasmine.requirejs(files) * * Where: * - options is a configuration object like the one you * can bass to RequireJS require() function (i.e.: baseUrl, paths, etc...) * and * - files is an array of files to require (i.e.: ['lib/common', 'views/main']) * * Example: * * beforeEach(jasmine.requirejs({ * baseUrl: '/public/javascripts' * }, [ * 'lib/app.help-mgr' * ])); */ jasmine.requirejs = function () { var params = Array.prototype.slice.call(arguments), isLoaded = false, files; files = arguments[0].length ? arguments[0] : arguments[1]; files = files.join(', '); return function () { require.apply(null, params.concat(function () { isLoaded = true; })); waitsFor(function () { return isLoaded; }, 'file(s) to be required/loaded: ' + files); }; };