@samitouri / QOS-React / commits / 81e5dd0a29

Fix build for useCreateElement: false, run Travis

It's important that we keep these code paths working because they're the only comprehensive test of adopting server-rendered HTML that we have right now. This is terrible and hacky but I am hopeful that it will at least catch stuff.

Ben Alpert committed Feb 18, 2016 at 17:21 UTC 81e5dd0a2901af340b0d12eec9a01df44566c3f9
3 files changed +17 -1
.travis.yml
+5
@@ -73,6 +73,11 @@ script:
73 else
74 ./node_modules/.bin/grunt jest:normal
75 fi
76 + echo 'Testing in server-render (HTML generation) mode...'
77 + printf '\nmodule.exports.useCreateElement = false;\n' \
78 + >> src/renderers/dom/shared/ReactDOMFeatureFlags.js
79 + ./node_modules/.bin/grunt jest:normal
80 + git checkout -- src/renderers/dom/shared/ReactDOMFeatureFlags.js
81 else
82 ./node_modules/.bin/grunt $TEST_TYPE
83 fi
src/renderers/dom/client/wrappers/__tests__/ReactDOMInput-test.js
+5
@@ -18,6 +18,7 @@ describe('ReactDOMInput', function() {
18 var EventConstants;
19 var React;
20 var ReactDOM;
21 + var ReactDOMFeatureFlags;
22 var ReactLink;
23 var ReactTestUtils;
24
@@ -26,6 +27,7 @@ describe('ReactDOMInput', function() {
27 EventConstants = require('EventConstants');
28 React = require('React');
29 ReactDOM = require('ReactDOM');
30 + ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
31 ReactLink = require('ReactLink');
32 ReactTestUtils = require('ReactTestUtils');
33 spyOn(console, 'error');
@@ -578,6 +580,9 @@ describe('ReactDOMInput', function() {
580 });
581
582 it('sets type before value always', function() {
583 + if (!ReactDOMFeatureFlags.useCreateElement) {
584 + return;
585 + }
586 var log = [];
587 var originalCreateElement = document.createElement;
588 spyOn(document, 'createElement').andCallFake(function(type) {
src/renderers/dom/shared/__tests__/ReactDOMComponent-test.js
+7 -1
@@ -17,12 +17,14 @@ describe('ReactDOMComponent', function() {
17 var React;
18
19 var ReactDOM;
20 + var ReactDOMFeatureFlags;
21 var ReactDOMServer;
22
23 beforeEach(function() {
24 jest.resetModuleRegistry();
25 React = require('React');
26 ReactDOM = require('ReactDOM');
27 + ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
28 ReactDOMServer = require('ReactDOMServer');
29 });
30
@@ -294,7 +296,11 @@ describe('ReactDOMComponent', function() {
296 var container = document.createElement('div');
297 ReactDOM.render(<svg theWord="theBird" />, container);
298
297 - expect(container.firstChild.hasAttribute('theWord')).toBe(true);
299 + if (ReactDOMFeatureFlags.useCreateElement) {
300 + // jsdom's svg parsing makes attributes lowercase, so only assert this
301 + // in createElement mode...
302 + expect(container.firstChild.hasAttribute('theWord')).toBe(true);
303 + }
304 ReactDOM.render(<svg />, container);
305 expect(container.firstChild.hasAttribute('theWord')).toBe(false);
306 });