blob: 284db7de4d2e04cad610a852e42f0bb78388b0ae [file] [log] [blame]
var _ = require('underscore'),
registry = {},
timeout = 120000,
now = function() {
return new Date().getTime();
},
loader = {
register: function(name) {
registry[name] = false;
},
completed: function(name){
registry[name] = true;
}
},
specLoader = {
defineLoader: function(requirejs) {
requirejs.define('jasmine-spec-loader', function() {
return loader;
});
},
executeWhenAllSpecsAreComplete: function(jasmineEnv) {
var allComplete = false,
wait = now(),
timeoutCallback = function() {
allComplete = _.all(registry, function(value) {
return value;
});
if(!allComplete && wait + timeout > now()) {
setTimeout(timeoutCallback, 100);
} else if (!allComplete) {
console.log('Failed to load all specs within timeout window.');
process.exit(-1);
} else {
jasmineEnv.execute();
}
};
setTimeout(timeoutCallback, 100);
},
setTimeoutInterval: function(value) {
timeout = value;
},
};
for(var key in specLoader) {
exports[key] = specLoader[key];
}