Moved all logic from karma config files to karma.common.conf.js.
The config files just declare lists of files.
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
/*jshint -W079 */
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: 'xmodule_js/common_static/coffee/src/ajax_prefix.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/src/utility.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/jquery.min.js', included: false},
|
||||
@@ -67,58 +67,36 @@ var libraryFiles = [
|
||||
{pattern: 'edx-ui-toolkit/js/**/*.js', included: false},
|
||||
|
||||
{pattern: 'common/js/utils/require-serial.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'coffee/src/**/!(*spec).js', included: false},
|
||||
{pattern: 'js/**/!(*spec).js', included: false},
|
||||
{pattern: 'common/js/**/!(*spec).js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'coffee/spec/**/*spec.js', included: false},
|
||||
{pattern: 'js/spec/**/*spec.js', included: false},
|
||||
{pattern: 'js/certificates/spec/**/*spec.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'coffee/fixtures/**/*.underscore', included: false},
|
||||
{pattern: 'templates/**/*.underscore', included: false},
|
||||
{pattern: 'common/templates/**/*.underscore', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// override fixture path and other config.
|
||||
var runAndConfigFiles = [
|
||||
runAndConfigFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
'coffee/spec/main.js'
|
||||
];
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = configModule.getPreprocessorObject(_.flatten([sourceFiles, specFiles]));
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles, runAndConfigFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
/*jshint -W079 */
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/requirejs/require.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/coffee/src/ajax_prefix.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/src/utility.js', included: false},
|
||||
@@ -52,59 +52,37 @@ var libraryFiles = [
|
||||
},
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/requirejs/text.js', included: false},
|
||||
{pattern: 'common/js/utils/require-serial.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'coffee/src/**/*.js', included: false},
|
||||
{pattern: 'js/collections/**/*.js', included: false},
|
||||
{pattern: 'js/models/**/*.js', included: false},
|
||||
{pattern: 'js/utils/**/*.js', included: false},
|
||||
{pattern: 'js/views/**/*.js', included: false},
|
||||
{pattern: 'common/js/**/*.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'coffee/spec/**/*.js', included: false},
|
||||
{pattern: 'js/spec/**/*.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'coffee/fixtures/**/*.*', included: false},
|
||||
{pattern: 'templates/**/*.*', included: false},
|
||||
{pattern: 'common/templates/**/*.*', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// override fixture path and other config.
|
||||
var runAndConfigFiles = [
|
||||
runAndConfigFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
'coffee/spec/main_squire.js'
|
||||
];
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = configModule.getPreprocessorObject(_.flatten([sourceFiles, specFiles]));
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles, runAndConfigFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files
|
||||
});
|
||||
};
|
||||
|
||||
@@ -6,11 +6,10 @@
|
||||
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, 'common_static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
// override fixture path and other config.
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
|
||||
{pattern: 'common_static/js/vendor/jquery.min.js', included: true},
|
||||
@@ -46,62 +45,32 @@ var libraryFiles = [
|
||||
{pattern: 'common_static/edx-pattern-library/js/modernizr-custom.js', included: false},
|
||||
{pattern: 'common_static/edx-pattern-library/js/afontgarde.js', included: false},
|
||||
{pattern: 'common_static/edx-pattern-library/js/edx-icons.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
{pattern: 'src/xmodule.js', included: true, skipInstrument: true},
|
||||
sourceFiles: [
|
||||
{pattern: 'src/xmodule.js', included: true, ignoreCoverage: true},
|
||||
{pattern: 'src/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
{pattern: 'spec/helper.js', included: true, skipInstrument: true},
|
||||
specFiles: [
|
||||
{pattern: 'spec/helper.js', included: true, ignoreCoverage: true},
|
||||
{pattern: 'spec/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'fixtures/*.*', included: false, served: true}
|
||||
];
|
||||
],
|
||||
|
||||
var runAndConfigFiles = [
|
||||
runAndConfigFiles: [
|
||||
{pattern: 'karma_runner.js', included: true}
|
||||
];
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = (function () {
|
||||
var preprocessFiles = {};
|
||||
_.flatten([sourceFiles, specFiles]).forEach(function (file) {
|
||||
var pattern = _.isObject(file) ? file.pattern : file;
|
||||
|
||||
if (!file.skipInstrument) {
|
||||
preprocessFiles[pattern] = ['coverage'];
|
||||
}
|
||||
});
|
||||
|
||||
return preprocessFiles;
|
||||
}());
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config, false),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles, runAndConfigFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
normalizePathsForCoverageFunc: function(appRoot, pattern) { return pattern; },
|
||||
useRequireJs: false
|
||||
});
|
||||
};
|
||||
|
||||
@@ -124,26 +124,60 @@ function junitSettings(config) {
|
||||
};
|
||||
}
|
||||
|
||||
var getPreprocessorObject = function (files) {
|
||||
var preprocessFiles = {};
|
||||
var normalizePathsForCoverage = function(files, normalize_func) {
|
||||
var filesForCoverage = {};
|
||||
|
||||
files.forEach(function (file) {
|
||||
if (_.isObject(file) && file.ignoreCoverage) { return; }
|
||||
|
||||
var pattern = _.isObject(file) ? file.pattern : file;
|
||||
|
||||
if (pattern.match(/^common\/js/)) {
|
||||
pattern = path.join(appRoot, '/common/static/' + pattern);
|
||||
} else if (pattern.match(/^xmodule_js\/common_static/)) {
|
||||
pattern = path.join(appRoot, '/common/static/' +
|
||||
pattern.replace(/^xmodule_js\/common_static\//, ''));
|
||||
if (normalize_func) {
|
||||
pattern = normalize_func(appRoot, pattern);
|
||||
} else {
|
||||
if (pattern.match(/^common\/js/)) {
|
||||
pattern = path.join(appRoot, '/common/static/' + pattern);
|
||||
} else if (pattern.match(/^xmodule_js\/common_static/)) {
|
||||
pattern = path.join(appRoot, '/common/static/' +
|
||||
pattern.replace(/^xmodule_js\/common_static\//, ''));
|
||||
}
|
||||
}
|
||||
|
||||
preprocessFiles[pattern] = ['coverage'];
|
||||
filesForCoverage[pattern] = ['coverage'];
|
||||
});
|
||||
|
||||
return preprocessFiles;
|
||||
return filesForCoverage;
|
||||
};
|
||||
|
||||
var getConfig = function (config, useRequireJs) {
|
||||
/**
|
||||
* Sets nocache on each file in the list.
|
||||
* @param {Object} files
|
||||
* @param {Bool} enable
|
||||
* @return {Object}
|
||||
*/
|
||||
var setNocache = function (files, enable) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = enable;
|
||||
}
|
||||
});
|
||||
return files;
|
||||
};
|
||||
|
||||
/**
|
||||
* Sets defaults for each file pattern.
|
||||
* @param {Object} files
|
||||
* @return {Object}
|
||||
*/
|
||||
var setDefaults = function (files) {
|
||||
return files.map(function (f) {
|
||||
var file = _.isObject(f) ? f : {pattern: f};
|
||||
if (!file.included) {
|
||||
f.included = false;
|
||||
}
|
||||
return file;
|
||||
});
|
||||
};
|
||||
|
||||
var getBaseConfig = function (config, useRequireJs) {
|
||||
useRequireJs = useRequireJs === undefined ? true : useRequireJs;
|
||||
|
||||
var getFrameworkFiles = function () {
|
||||
@@ -257,8 +291,43 @@ var getConfig = function (config, useRequireJs) {
|
||||
};
|
||||
};
|
||||
|
||||
var configure = function(data) {
|
||||
var baseConfig = getBaseConfig(data.config, data.useRequireJs);
|
||||
|
||||
var files = _.flatten(
|
||||
_.map(
|
||||
['libraryFiles', 'sourceFiles', 'specFiles', 'fixtureFiles', 'runAndConfigFiles'],
|
||||
function(item) { return data.files[item]; }
|
||||
)
|
||||
);
|
||||
|
||||
files = setDefaults(files);
|
||||
|
||||
// With nocache=true, Karma always serves the latest files from disk.
|
||||
// However, that prevents coverage tracking from working.
|
||||
// So we only set it if coverage tracking is off.
|
||||
setNocache(files, !data.config.coverage);
|
||||
|
||||
var filesForCoverage = _.flatten(
|
||||
_.map(
|
||||
['sourceFiles', 'specFiles'],
|
||||
function(item) { return data.files[item]; }
|
||||
)
|
||||
);
|
||||
|
||||
var preprocessors = _.extend(
|
||||
{},
|
||||
data.preprocessors,
|
||||
normalizePathsForCoverage(filesForCoverage, data.normalizePathsForCoverageFunc)
|
||||
);
|
||||
|
||||
data.config.set(_.extend(baseConfig, {
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
}));
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
getConfig: getConfig,
|
||||
getPreprocessorObject: getPreprocessorObject,
|
||||
configure: configure,
|
||||
appRoot: appRoot
|
||||
};
|
||||
|
||||
@@ -5,12 +5,10 @@
|
||||
/*jshint -W079 */
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
// Files to load by Karma
|
||||
var libraryFiles = [
|
||||
// override fixture path and other config.
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
|
||||
{pattern: 'js/vendor/jquery.min.js', included: true},
|
||||
@@ -34,62 +32,40 @@ var libraryFiles = [
|
||||
{pattern: 'edx-pattern-library/js/modernizr-custom.js', included: true},
|
||||
{pattern: 'edx-pattern-library/js/afontgarde.js', included: true},
|
||||
{pattern: 'edx-pattern-library/js/edx-icons.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'js/xblock/**/*.js', included: true},
|
||||
{pattern: 'coffee/src/**/*.js', included: true},
|
||||
{pattern: 'js/src/**/*.js', included: true},
|
||||
{pattern: 'js/capa/src/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'coffee/spec/**/*.js', included: true},
|
||||
{pattern: 'js/spec/**/*.js', included: true},
|
||||
{pattern: 'js/capa/spec/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'js/fixtures/**/*.html', included: false},
|
||||
{pattern: 'js/capa/fixtures/**/*.html', included: false},
|
||||
{pattern: 'common/templates/**/*.underscore', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = (function () {
|
||||
var preprocessFiles = {};
|
||||
runAndConfigFiles: [
|
||||
]
|
||||
};
|
||||
|
||||
_.flatten([sourceFiles, specFiles]).forEach(function (file) {
|
||||
var pattern = _.isObject(file) ? file.pattern : file;
|
||||
pattern = path.join(configModule.appRoot, '/common/static/' + pattern);
|
||||
preprocessFiles[pattern] = ['coverage'];
|
||||
});
|
||||
|
||||
return preprocessFiles;
|
||||
}());
|
||||
var normalizePathsForCoverageFunc = function (appRoot, pattern) {
|
||||
return path.join(appRoot, '/common/static/' + pattern);
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config, false),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
normalizePathsForCoverageFunc: normalizePathsForCoverageFunc,
|
||||
useRequireJs: false
|
||||
});
|
||||
};
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: 'js/vendor/jquery.min.js', included: false},
|
||||
{pattern: 'js/vendor/jasmine-imagediff.js', included: false},
|
||||
{pattern: 'js/libs/jasmine-stealth.js', included: false},
|
||||
@@ -30,61 +30,34 @@ var libraryFiles = [
|
||||
{pattern: 'js/vendor/requirejs/text.js', included: false},
|
||||
{pattern: 'js/vendor/sinon-1.17.0.js', included: false},
|
||||
{pattern: 'common/js/utils/require-serial.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'common/js/**/!(*spec).js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'common/js/spec/**/*spec.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'common/templates/**/*.*', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// override fixture path and other config.
|
||||
var runAndConfigFiles = [
|
||||
runAndConfigFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
'common/js/spec/main_requirejs.js'
|
||||
];
|
||||
]
|
||||
};
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = (function () {
|
||||
var preprocessFiles = {};
|
||||
|
||||
_.flatten([sourceFiles, specFiles]).forEach(function (file) {
|
||||
var pattern = _.isObject(file) ? file.pattern : file;
|
||||
pattern = path.join(configModule.appRoot, '/common/static/' + pattern);
|
||||
preprocessFiles[pattern] = ['coverage'];
|
||||
});
|
||||
|
||||
return preprocessFiles;
|
||||
}());
|
||||
var normalizePathsForCoverageFunc = function (appRoot, pattern) {
|
||||
return path.join(appRoot, '/common/static/' + pattern);
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles, runAndConfigFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
normalizePathsForCoverageFunc: normalizePathsForCoverageFunc
|
||||
});
|
||||
};
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
/*jshint -W079 */
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: 'xmodule_js/common_static/js/test/i18n.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/coffee/src/ajax_prefix.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/js/src/logger.js', included: false},
|
||||
@@ -57,10 +57,9 @@ var libraryFiles = [
|
||||
{pattern: 'xmodule_js/common_static/js/libs/jasmine-waituntil.js', included: true},
|
||||
{pattern: 'xmodule_js/common_static/js/libs/jasmine-extensions.js', included: true},
|
||||
{pattern: 'common/js/utils/require-serial.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to source JavaScript files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'js/**/!(*spec).js', included: false},
|
||||
{pattern: 'coffee/src/**/*.js', included: false},
|
||||
{pattern: 'common/js/**/*.js', included: false},
|
||||
@@ -69,17 +68,15 @@ var sourceFiles = [
|
||||
{pattern: 'support/js/**/!(*spec).js', included: false},
|
||||
{pattern: 'teams/js/**/!(*spec).js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/coffee/**/*.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to spec (test) JavaScript files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'js/spec/**/*spec.js', included: false},
|
||||
{pattern: 'teams/js/spec/**/*spec.js', included: false},
|
||||
{pattern: 'support/js/spec/**/*spec.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// Paths to fixture files
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'js/fixtures/**/*.html', included: false},
|
||||
{pattern: 'templates/instructor/instructor_dashboard_2/**/*.*', included: false},
|
||||
{pattern: 'templates/dashboard/**/*.*', included: false},
|
||||
@@ -103,36 +100,17 @@ var fixtureFiles = [
|
||||
{pattern: 'templates/ccx/**/*.*', included: false},
|
||||
{pattern: 'templates/commerce/receipt.underscore', included: false},
|
||||
{pattern: 'templates/api_admin/**/*.*', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// override fixture path and other config.
|
||||
var runAndConfigFiles = [
|
||||
runAndConfigFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
{pattern: 'js/spec/main.js', included: true}
|
||||
];
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = configModule.getPreprocessorObject(_.flatten([sourceFiles, specFiles]));
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles, runAndConfigFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files
|
||||
});
|
||||
};
|
||||
|
||||
@@ -6,14 +6,12 @@
|
||||
|
||||
'use strict';
|
||||
var path = require('path');
|
||||
var _ = require('underscore');
|
||||
var configModule = require(path.join(__dirname, '../../common/static/common/js/karma.common.conf.js'));
|
||||
|
||||
var libraryFiles = [
|
||||
// override fixture path and other config.
|
||||
var files = {
|
||||
libraryFiles: [
|
||||
{pattern: path.join(configModule.appRoot, 'common/static/common/js/jasmine.common.conf.js'), included: true},
|
||||
|
||||
// vendor files
|
||||
{pattern: 'xmodule_js/common_static/js/vendor/jquery.min.js', included: true},
|
||||
{pattern: 'xmodule_js/common_static/js/test/i18n.js', included: true},
|
||||
{pattern: 'xmodule_js/common_static/coffee/src/ajax_prefix.js', included: true},
|
||||
@@ -43,45 +41,28 @@ var libraryFiles = [
|
||||
{pattern: 'xmodule_js/common_static/edx-pattern-library/js/modernizr-custom.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/edx-pattern-library/js/afontgarde.js', included: false},
|
||||
{pattern: 'xmodule_js/common_static/edx-pattern-library/js/edx-icons.js', included: false}
|
||||
];
|
||||
],
|
||||
|
||||
// source files
|
||||
var sourceFiles = [
|
||||
sourceFiles: [
|
||||
{pattern: 'coffee/src/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// spec files
|
||||
var specFiles = [
|
||||
specFiles: [
|
||||
{pattern: 'coffee/spec/**/*.js', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// Fixtures
|
||||
var fixtureFiles = [
|
||||
fixtureFiles: [
|
||||
{pattern: 'coffee/fixtures/**/*.*', included: true}
|
||||
];
|
||||
],
|
||||
|
||||
// do not include tests or libraries
|
||||
// (these files will be instrumented by Istanbul)
|
||||
var preprocessors = configModule.getPreprocessorObject(_.flatten([sourceFiles, specFiles]));
|
||||
runAndConfigFiles: [
|
||||
]
|
||||
};
|
||||
|
||||
module.exports = function (config) {
|
||||
var commonConfig = configModule.getConfig(config, false),
|
||||
files = _.flatten([libraryFiles, sourceFiles, specFiles, fixtureFiles]),
|
||||
localConfig;
|
||||
|
||||
// add nocache in files if coverage is not set
|
||||
if (!config.coverage) {
|
||||
files.forEach(function (f) {
|
||||
if (_.isObject(f)) {
|
||||
f.nocache = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
localConfig = {
|
||||
configModule.configure({
|
||||
config: config,
|
||||
files: files,
|
||||
preprocessors: preprocessors
|
||||
};
|
||||
|
||||
config.set(_.extend(commonConfig, localConfig));
|
||||
useRequireJs: false
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user