diff --git a/src/browser/server/ReactServerRendering.js b/src/browser/server/ReactServerRendering.js index 056eca4eac..43f7786d1f 100644 --- a/src/browser/server/ReactServerRendering.js +++ b/src/browser/server/ReactServerRendering.js @@ -75,7 +75,8 @@ function renderComponentToStaticMarkup(component) { transaction = ReactServerRenderingTransaction.getPooled(true); return transaction.perform(function() { - return component.mountComponent(id, transaction, 0); + var componentInstance = instantiateReactComponent(component); + return componentInstance.mountComponent(id, transaction, 0); }, null); } finally { ReactServerRenderingTransaction.release(transaction); diff --git a/src/browser/ui/dom/components/__tests__/ReactDOMInput-test.js b/src/browser/ui/dom/components/__tests__/ReactDOMInput-test.js index d2049a6d51..e5405cf21c 100644 --- a/src/browser/ui/dom/components/__tests__/ReactDOMInput-test.js +++ b/src/browser/ui/dom/components/__tests__/ReactDOMInput-test.js @@ -29,37 +29,32 @@ describe('ReactDOMInput', function() { var ReactLink; var ReactTestUtils; - var renderTextInput; - beforeEach(function() { React = require('React'); ReactLink = require('ReactLink'); ReactTestUtils = require('ReactTestUtils'); - - renderTextInput = function(component) { - var stub = ReactTestUtils.renderIntoDocument(component); - var node = stub.getDOMNode(); - return node; - }; }); it('should display `defaultValue` of number 0', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('0'); }); it('should display "true" for `defaultValue` of `true`', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('true'); }); it('should display "false" for `defaultValue` of `false`', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('false'); }); @@ -72,21 +67,24 @@ describe('ReactDOMInput', function() { }; var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('foobar'); }); it('should display `value` of number 0', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('0'); }); it('should allow setting `value` to `true`', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('yolo'); @@ -96,7 +94,8 @@ describe('ReactDOMInput', function() { it("should allow setting `value` to `false`", function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('yolo'); @@ -106,7 +105,8 @@ describe('ReactDOMInput', function() { it('should allow setting `value` to `objToString`', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('foo'); @@ -122,7 +122,8 @@ describe('ReactDOMInput', function() { it('should properly control a value of number `0`', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); node.value = 'giraffe'; ReactTestUtils.Simulate.change(node); @@ -131,7 +132,8 @@ describe('ReactDOMInput', function() { it('should not set a value for submit buttons unnecessarily', function() { var stub = ; - var node = renderTextInput(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); // The value shouldn't be '', or else the button will have no text; it // should have the default "Submit" or "Submit Query" label @@ -184,7 +186,7 @@ describe('ReactDOMInput', function() { var link = new ReactLink('yolo', mocks.getMockFunction()); var instance = ; - React.renderComponent(instance, container); + instance = React.renderComponent(instance, container); expect(instance.getDOMNode().value).toBe('yolo'); expect(link.value).toBe('yolo'); @@ -257,7 +259,7 @@ describe('ReactDOMInput', function() { var link = new ReactLink(true, mocks.getMockFunction()); var instance = ; - React.renderComponent(instance, container); + instance = React.renderComponent(instance, container); expect(instance.getDOMNode().checked).toBe(true); expect(link.value).toBe(true); diff --git a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js index acff91011a..c3f4781c57 100644 --- a/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js +++ b/src/browser/ui/dom/components/__tests__/ReactDOMSelect-test.js @@ -28,18 +28,10 @@ describe('ReactDOMSelect', function() { var ReactLink; var ReactTestUtils; - var renderSelect; - beforeEach(function() { React = require('React'); ReactLink = require('ReactLink'); ReactTestUtils = require('ReactTestUtils'); - - renderSelect = function(component) { - var stub = ReactTestUtils.renderIntoDocument(component); - var node = stub.getDOMNode(); - return node; - }; }); it('should allow setting `defaultValue`', function() { @@ -49,7 +41,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('giraffe'); @@ -65,7 +58,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('giraffe'); @@ -82,7 +76,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe @@ -103,7 +98,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.value).toBe('giraffe'); @@ -119,7 +115,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe @@ -140,7 +137,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // one expect(node.options[1].selected).toBe(false); // two @@ -161,7 +159,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe @@ -183,7 +182,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe @@ -204,7 +204,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe @@ -227,7 +228,8 @@ describe('ReactDOMSelect', function() { ; - var node = renderSelect(stub); + stub = ReactTestUtils.renderIntoDocument(stub); + var node = stub.getDOMNode(); expect(node.options[0].selected).toBe(false); // monkey expect(node.options[1].selected).toBe(true); // giraffe diff --git a/src/browser/ui/dom/components/__tests__/ReactDOMTextarea-test.js b/src/browser/ui/dom/components/__tests__/ReactDOMTextarea-test.js index 576f21997c..41122d14c0 100644 --- a/src/browser/ui/dom/components/__tests__/ReactDOMTextarea-test.js +++ b/src/browser/ui/dom/components/__tests__/ReactDOMTextarea-test.js @@ -40,13 +40,14 @@ describe('ReactDOMTextarea', function() { var node = stub.getDOMNode(); // Polyfilling the browser's quirky behavior. node.value = node.innerHTML; - return node; + return stub; }; }); it('should allow setting `defaultValue`', function() { var stub = ; - var node = renderTextarea(stub); + stub = renderTextarea(stub); + var node = stub.getDOMNode(); expect(console.warn.argsForCall.length).toBe(1); expect(node.value).toBe('giraffe'); @@ -159,14 +170,14 @@ describe('ReactDOMTextarea', function() { it('should allow numbers as children', function() { spyOn(console, 'warn'); - var node = renderTextarea(); + var node = renderTextarea().getDOMNode(); expect(console.warn.argsForCall.length).toBe(1); expect(node.value).toBe('17'); }); it('should allow booleans as children', function() { spyOn(console, 'warn'); - var node = renderTextarea(); + var node = renderTextarea().getDOMNode(); expect(console.warn.argsForCall.length).toBe(1); expect(node.value).toBe('false'); }); @@ -178,7 +189,7 @@ describe('ReactDOMTextarea', function() { return "sharkswithlasers"; } }; - var node = renderTextarea(); + var node = renderTextarea().getDOMNode(); expect(console.warn.argsForCall.length).toBe(1); expect(node.value).toBe('sharkswithlasers'); }); @@ -194,12 +205,12 @@ describe('ReactDOMTextarea', function() { expect(console.warn.argsForCall.length).toBe(1); - var stub; + var node; expect(function() { - stub = renderTextarea(); + node = renderTextarea().getDOMNode(); }).not.toThrow(); - expect(stub.value).toBe('[object Object]'); + expect(node.value).toBe('[object Object]'); expect(console.warn.argsForCall.length).toBe(2); }); @@ -209,7 +220,7 @@ describe('ReactDOMTextarea', function() { var link = new ReactLink('yolo', mocks.getMockFunction()); var instance =