The library for web and native user interfaces.
Expose test modules for requirement.
Ben Newman committed
May 28, 2013 at 14:45 UTC
009c0b92002fa1aeae985c1a5c8707119a945647
2 files changed
+17
-5
grunt/config/browserify.js
+3
-1
@@ -90,7 +90,9 @@ var jasmine = {
90
var test = {
91
entries: [
92
"./build/modules/test/all.js",
93
- "./build/modules/**/__tests__/*-test.js"
93
+ ],
94
+ requires: [
95
+ "**/__tests__/*-test.js"
96
],
97
outfile: './build/react-test.js',
98
debug: false,
grunt/tasks/browserify.js
+14
-4
@@ -12,7 +12,6 @@ module.exports = function() {
12
// More/better assertions
13
// grunt.config.requires('outfile');
14
// grunt.config.requires('entries');
15
- config.requires = config.requires || {};
15
config.transforms = config.transforms || [];
16
config.after = config.after || [];
17
if (typeof config.after === 'function') {
@@ -24,9 +23,20 @@ module.exports = function() {
23
var bundle = browserify(entries);
24
25
// Make sure the things that need to be exposed are.
27
- // TODO: support a blob pattern maybe?
28
- for (var name in config.requires) {
29
- bundle.require(config.requires[name], { expose: name });
26
+ var requires = config.requires || {};
27
+ if (requires instanceof Array) {
28
+ grunt.file.expand({
29
+ nonull: true, // Keep IDs that don't expand to anything.
30
+ cwd: "src"
31
+ }, requires).forEach(function(name) {
32
+ bundle.require("./build/modules/" + name, {
33
+ expose: name.replace(/\.js$/i, "")
34
+ });
35
+ });
36
+ } else if (typeof requires === "object") {
37
+ Object.keys(requires).forEach(function(name) {
38
+ bundle.require(requires[name], { expose: name });
39
+ });
40
}
41
42
// Extract other options