7721aa02 by Adam Heath

Update to support latest grunt-monty-python.

1 parent 56db38ec
......@@ -54,103 +54,10 @@ module.exports = function(grunt) {
beautify: false,
compress: true,
};
config.jasmine = {
withCoverage: true,
};
var montyPython = require('grunt-monty-python')(grunt);
montyPython.createConfig(config);
var _ = require('lodash');
function genJasmineConfig(withCoverage, options) {
var src = [
'src/scripts/{,**/}*.js',
'!src/scripts/main.js',
];
var specs = [
'src/scripts/**/*.spec.js',
];
var template = require('grunt-template-jasmine-requirejs');
var templateOptions = {
requireConfigFile: 'src/scripts/config.js',
requireConfig: {
baseUrl: 'src/scripts',
},
};
if (withCoverage) {
/* global requirejs */
templateOptions.requireConfig.callback = function() {
var oldLoad = requirejs.load;
requirejs.load = function (context, moduleName, url) {
var origUrl = url;
//console.log('context=' + JSON.stringify(arguments), 'moduleName=' + moduleName, 'url=' + url);
var parts = url.split('/');
for (var i = 0; i < parts.length; ) {
var part = parts[i];
if (part === '.') {
parts.splice(i, 1);
} else if (part === '') {
parts.splice(i, 1);
} else if (part === '..') {
if (i > 0) {
i--;
parts.splice(i, 2);
} else {
parts.splice(i, 1);
}
} else {
i++;
}
}
url = parts.join('/');
if (1) if (url.match(/^src\/scripts\/(.*?\/)?[^\/]+\.spec\.js$/)) {
url = './.grunt/grunt-contrib-jasmine/' + url;
} else if (url.match(/^src\/scripts\/(.*?\/)?[^\/]+\.js$/)) {
url = './.grunt/grunt-contrib-jasmine/' + url;
}
if (url.indexOf('test/specs/') === 0) {
url = './.grunt/grunt-contrib-jasmine/' + url;
}
//console.log('url[' + origUrl + ']=' + url);
return oldLoad.apply(this, [context, moduleName, url]);
};
};
var foo = _.extend({}, template);
var bar = template.process;
foo.process = function process(grunt, task, context) {
var src = [];
context.scripts.src.forEach(function(file) {
if (!grunt.file.isMatch(specs, file)) {
src.push(file);
}
});
context.scripts.src = src;
return bar.apply(this, arguments);
};
templateOptions = {
coverage: 'dist/coverage/coverage.json',
report: 'dist/coverage',
replace: false,
template: foo,
templateOptions: templateOptions,
files: _.concat([], src, specs),
};
template = require('grunt-template-jasmine-istanbul');
}
var jasmineConfig = {
src: _.concat([],
src,
specs
),
options: {
specs: specs,
template: template,
templateOptions: templateOptions,
},
};
return jasmineConfig;
}
grunt.config.set(['jasmine', 'all'], genJasmineConfig(true));
};
......