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.
This commit is contained in:
Ben Alpert 2016-02-18 17:21:54 -08:00
parent e8fb8c7870
commit 81e5dd0a29
3 changed files with 17 additions and 1 deletions

View File

@ -73,6 +73,11 @@ script:
else
./node_modules/.bin/grunt jest:normal
fi
echo 'Testing in server-render (HTML generation) mode...'
printf '\nmodule.exports.useCreateElement = false;\n' \
>> src/renderers/dom/shared/ReactDOMFeatureFlags.js
./node_modules/.bin/grunt jest:normal
git checkout -- src/renderers/dom/shared/ReactDOMFeatureFlags.js
else
./node_modules/.bin/grunt $TEST_TYPE
fi

View File

@ -18,6 +18,7 @@ describe('ReactDOMInput', function() {
var EventConstants;
var React;
var ReactDOM;
var ReactDOMFeatureFlags;
var ReactLink;
var ReactTestUtils;
@ -26,6 +27,7 @@ describe('ReactDOMInput', function() {
EventConstants = require('EventConstants');
React = require('React');
ReactDOM = require('ReactDOM');
ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
ReactLink = require('ReactLink');
ReactTestUtils = require('ReactTestUtils');
spyOn(console, 'error');
@ -578,6 +580,9 @@ describe('ReactDOMInput', function() {
});
it('sets type before value always', function() {
if (!ReactDOMFeatureFlags.useCreateElement) {
return;
}
var log = [];
var originalCreateElement = document.createElement;
spyOn(document, 'createElement').andCallFake(function(type) {

View File

@ -17,12 +17,14 @@ describe('ReactDOMComponent', function() {
var React;
var ReactDOM;
var ReactDOMFeatureFlags;
var ReactDOMServer;
beforeEach(function() {
jest.resetModuleRegistry();
React = require('React');
ReactDOM = require('ReactDOM');
ReactDOMFeatureFlags = require('ReactDOMFeatureFlags');
ReactDOMServer = require('ReactDOMServer');
});
@ -294,7 +296,11 @@ describe('ReactDOMComponent', function() {
var container = document.createElement('div');
ReactDOM.render(<svg theWord="theBird" />, container);
expect(container.firstChild.hasAttribute('theWord')).toBe(true);
if (ReactDOMFeatureFlags.useCreateElement) {
// jsdom's svg parsing makes attributes lowercase, so only assert this
// in createElement mode...
expect(container.firstChild.hasAttribute('theWord')).toBe(true);
}
ReactDOM.render(<svg />, container);
expect(container.firstChild.hasAttribute('theWord')).toBe(false);
});