Skip to content

Commit

Permalink
fix bug when there are multiple children of variant
Browse files Browse the repository at this point in the history
  • Loading branch information
Ola Holmström committed Mar 5, 2015
1 parent e2de489 commit 83a2692
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 5 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,7 @@
### 0.3.1 (2015-01-23)

* Fix bug when there are multiple children och Variant.

### 0.3.0 (2015-01-23)

* Add random prop.
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Expand Up @@ -3,7 +3,7 @@
"main": [
"react-ab.js"
],
"version": "0.3.0",
"version": "0.3.1",
"homepage": "https://github.com/olahol/react-ab",
"description": "Simple isopmorphic A/B testing component for React.",
"keywords": [
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "react-ab",
"version": "0.3.0",
"version": "0.3.1",
"description": "Simple isopmorphic A/B testing component for React.",
"main": "react-ab.js",
"dependencies": {
Expand Down
6 changes: 5 additions & 1 deletion react-ab.js
Expand Up @@ -66,7 +66,11 @@
}

, render: function () {
return this.props.children;
if (React.Children.count(this.props.children) === 1) {
return this.props.children;
}

return React.createElement("span", null, this.props.children);
}
});

Expand Down
16 changes: 14 additions & 2 deletions test/index.js
Expand Up @@ -18,9 +18,13 @@ var Experiment = require("../react-ab").Experiment
, Variant = require("../react-ab").Variant;

describe("Experiment", function () {
var createExperiment = function (name, choice, variants) {
var createExperiment = function (name, choice, variants, factory) {
factory = factory || function (variant) {
return React.createElement("span", null, variant);
};

var variantNodes = variants.map(function (variant) {
return React.createElement(Variant, { key: variant, name: variant }, React.createElement("span", null, variant));
return React.createElement(Variant, { key: variant, name: variant }, factory(variant));
});

return TestUtils.renderIntoDocument(React.createElement(Experiment, { name: name, onChoice: choice }, variantNodes));
Expand Down Expand Up @@ -87,4 +91,12 @@ describe("Experiment", function () {

assert.equal(ex4.getVariant(), ex5.getVariant());
});

it("should work when variants have multiple children", function () {
var variant1 = React.createElement(Variant, { name: "one" }, React.createElement("span", null, ""), React.createElement("span", null, ""));
var variant2 = React.createElement(Variant, { name: "two" }, React.createElement("span", null, ""), React.createElement("span", null, ""));
var ex = TestUtils.renderIntoDocument(React.createElement(Experiment, { name: "test", onChoice: function () { }}, variant1, variant2));

assert.ok(ex);
});
});

0 comments on commit 83a2692

Please sign in to comment.