@samitouri / QOS-React-2 / commits / 009c0b9200
Fork 0

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