Expose test modules for requirement.

This commit is contained in:
Ben Newman
2013-05-28 14:45:12 -04:00
parent c740373b31
commit 009c0b9200
2 changed files with 17 additions and 5 deletions

View File

@@ -90,7 +90,9 @@ var jasmine = {
var test = {
entries: [
"./build/modules/test/all.js",
"./build/modules/**/__tests__/*-test.js"
],
requires: [
"**/__tests__/*-test.js"
],
outfile: './build/react-test.js',
debug: false,

View File

@@ -12,7 +12,6 @@ module.exports = function() {
// More/better assertions
// grunt.config.requires('outfile');
// grunt.config.requires('entries');
config.requires = config.requires || {};
config.transforms = config.transforms || [];
config.after = config.after || [];
if (typeof config.after === 'function') {
@@ -24,9 +23,20 @@ module.exports = function() {
var bundle = browserify(entries);
// Make sure the things that need to be exposed are.
// TODO: support a blob pattern maybe?
for (var name in config.requires) {
bundle.require(config.requires[name], { expose: name });
var requires = config.requires || {};
if (requires instanceof Array) {
grunt.file.expand({
nonull: true, // Keep IDs that don't expand to anything.
cwd: "src"
}, requires).forEach(function(name) {
bundle.require("./build/modules/" + name, {
expose: name.replace(/\.js$/i, "")
});
});
} else if (typeof requires === "object") {
Object.keys(requires).forEach(function(name) {
bundle.require(requires[name], { expose: name });
});
}
// Extract other options