diff --git a/src/load-child-mixin.js b/src/load-child-mixin.js new file mode 100644 index 0000000..e2dee68 --- /dev/null +++ b/src/load-child-mixin.js @@ -0,0 +1,7 @@ +var loadChild = require('./load-child.js'); + +module.exports = { + loadChild: function(childName, a, b, c, d, e, f) { + return loadChild.loadChild(this.children, childName, a, b, c, d, e, f); + } +}; diff --git a/src/load-child.js b/src/load-child.js index 6af50bf..151bb64 100644 --- a/src/load-child.js +++ b/src/load-child.js @@ -1,7 +1,7 @@ var _ = require('lodash'), React = require('react'); -module.exports = function(childTemplates, childName, a, b, c, d, e, f) { +exports.loadChild = function(childTemplates, childName, a, b, c, d, e, f) { /** * Create a React element for a specific child type. * diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..99ae9da --- /dev/null +++ b/src/main.js @@ -0,0 +1,3 @@ +module.exports = { + Mixin: require('./load-child-mixin.js') +}; diff --git a/tests/load-child-mixin.js b/tests/load-child-mixin.js new file mode 100644 index 0000000..384383d --- /dev/null +++ b/tests/load-child-mixin.js @@ -0,0 +1,34 @@ +var _ = require('lodash'), + loadChild = require('../src/load-child.js'), + Mixin = require('../src/load-child-mixin.js'); + +describe('Load child mixin', function() { + var fakeReactElement = {}, + fakeComponent; + + beforeEach(function() { + sinon.stub(loadChild, 'loadChild').returns(fakeReactElement); + + fakeComponent = _.clone(Mixin); + fakeComponent.children = {}; + }); + + afterEach(function() { + loadChild.loadChild.restore(); + }); + + it('should call loadChild lib with same args', function() { + fakeComponent.loadChild('myChild', 5, 10, true); + + var args = loadChild.loadChild.lastCall.args; + expect(args[0]).to.equal(fakeComponent.children); + expect(args[1]).to.equal('myChild'); + expect(args[2]).to.equal(5); + expect(args[3]).to.equal(10); + expect(args[4]).to.equal(true); + }); + + it('should return what loadChild lib returned', function() { + expect(fakeComponent.loadChild()).to.equal(fakeReactElement); + }); +}); diff --git a/tests/load-child.js b/tests/load-child.js index c9697ee..85676ee 100644 --- a/tests/load-child.js +++ b/tests/load-child.js @@ -1,7 +1,7 @@ var React = require('react'), - loadChild = require('../src/load-child.js'); + loadChild = require('../src/load-child.js').loadChild; -describe('Loading children', function() { +describe('Load child', function() { var FirstComponent = {}, SecondComponent = {}, childTemplates; diff --git a/tests/load-missing-child.js b/tests/load-missing-child.js index 9bc851d..8e2e58a 100644 --- a/tests/load-missing-child.js +++ b/tests/load-missing-child.js @@ -1,7 +1,7 @@ var React = require('react'), - loadChild = require('../src/load-child.js'); + loadChild = require('../src/load-child.js').loadChild; -describe('Loading missing child', function() { +describe('Load missing child', function() { var childTemplates; beforeEach(function() {