diff --git a/karma.conf.js b/karma.conf.js index bb1f22eb93..9da172e5ac 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -25,7 +25,7 @@ module.exports = function (config) { devtool: 'inline-source-map', module: { loaders: [ - { test: /\.js$/, loader: 'babel-loader' } + { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' } ] }, plugins: [ diff --git a/modules/PropTypes.js b/modules/PropTypes.js index 55486da01b..ead66621f6 100644 --- a/modules/PropTypes.js +++ b/modules/PropTypes.js @@ -1,4 +1,4 @@ -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var ReactPropTypes = require('react').PropTypes; var Route = require('./Route'); diff --git a/modules/Route.js b/modules/Route.js index 207336d685..9ce59e72f9 100644 --- a/modules/Route.js +++ b/modules/Route.js @@ -1,4 +1,4 @@ -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var invariant = require('invariant'); var warning = require('./warning'); var PathUtils = require('./PathUtils'); diff --git a/modules/__tests__/Router-test.js b/modules/__tests__/Router-test.js index a4982cd12b..56b483cf28 100644 --- a/modules/__tests__/Router-test.js +++ b/modules/__tests__/Router-test.js @@ -1,5 +1,7 @@ var expect = require('expect'); var React = require('react'); +var ReactDOM = require('react-dom'); +var ReactDOMServer = require('react-dom/server'); var Router = require('../index'); var Route = require('../components/Route'); var RouteHandler = require('../components/RouteHandler'); @@ -64,7 +66,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -100,7 +102,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -143,7 +145,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -181,7 +183,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -241,7 +243,7 @@ describe('Router', function () { }); router.run(function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -255,7 +257,7 @@ describe('Router', function () { var div = document.createElement('div'); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { expect(div.innerHTML).toMatch(/Foo/); done(); }); @@ -291,7 +293,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -327,7 +329,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -370,7 +372,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -408,7 +410,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -422,7 +424,7 @@ describe('Router', function () { var div = document.createElement('div'); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { location.push('/abort'); expect(div.innerHTML).toMatch(/Foo/); expect(location.getCurrentPath()).toEqual('/foo'); @@ -459,7 +461,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -495,7 +497,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -538,7 +540,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -576,7 +578,7 @@ describe('Router', function () { }); router.run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -630,7 +632,7 @@ describe('Router', function () { }); router.run(function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -642,7 +644,7 @@ describe('Router', function () { it('renders with query params', function (done) { var routes = ; Router.run(routes, '/?foo=bar', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/bar/); done(); }); @@ -651,7 +653,7 @@ describe('Router', function () { it('renders with empty query string', function (done) { var routes = ; Router.run(routes, '/?', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Foo/); done(); }); @@ -706,7 +708,7 @@ describe('Router', function () { var div = document.createElement('div'); Router.run(routes, location, function (Handler, state) { - React.render(, div); + ReactDOM.render(, div); }); location.push('/spoon?filter=second'); @@ -720,7 +722,7 @@ describe('Router', function () { var Bar = React.createClass({ statics: { willTransitionFrom: function (transition, component) { - expect(div.querySelector('#bar')).toBe(component.getDOMNode()); + expect(div.querySelector('#bar')).toBe(ReactDOM.findDOMNode(component)); done(); } }, @@ -740,7 +742,7 @@ describe('Router', function () { var location = new TestLocation([ '/bar' ]); Router.run(routes, location, function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { location.push('/baz'); }); }); @@ -802,9 +804,9 @@ describe('Router', function () { Router.run(routes, location, function (Handler, state) { // Calling render on the handler twice should be allowed - React.render(, div); + ReactDOM.render(, div); - React.render(, div, function () { + ReactDOM.render(, div, function () { setTimeout(function() { steps.shift()(); }, 1); @@ -854,7 +856,7 @@ describe('Router.run', function () { it('matches a root route', function (done) { var routes = ; Router.run(routes, '/', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/bar/); done(); }); @@ -866,7 +868,7 @@ describe('Router.run', function () { ]; Router.run(routes, '/foo', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Foo/); done(); }); @@ -879,7 +881,7 @@ describe('Router.run', function () { ); Router.run(routes, '/foo', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Foo/); done(); @@ -894,7 +896,7 @@ describe('Router.run', function () { ); Router.run(routes, '/Foo', function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { expect(div.querySelectorAll('.Nested').length).toEqual(1); done(); }); @@ -904,7 +906,7 @@ describe('Router.run', function () { it('supports dynamic segments', function (done) { var routes = ; Router.run(routes, '/d00d3tt3', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/d00d3tt3/); done(); }); @@ -917,7 +919,7 @@ describe('Router.run', function () { ); Router.run(routes, '/foo/bar', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/bar/); done(); }); @@ -947,7 +949,7 @@ describe('Router.run', function () { }); Router.run(routes, location, function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -989,7 +991,7 @@ describe('Router.run', function () { location: location, scrollBehavior: ScrollToTopBehavior }).run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { if (renderCount === 0) { position = { x: 20, y: 50 }; window.scrollTo(position.x, position.y); @@ -1054,7 +1056,7 @@ describe('Router.run', function () { renderCount = 0; Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { if (renderCount === 0) { position = { x: 20, y: 50 }; window.scrollTo(position.x, position.y); @@ -1129,7 +1131,7 @@ describe('Router.run', function () { location: location, scrollBehavior: MockScrollBehavior }).run(function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { if (!isDone) { isDone = true; done(); diff --git a/modules/__tests__/Routing-test.js b/modules/__tests__/Routing-test.js index 6058a74f45..f6ca8c78c6 100644 --- a/modules/__tests__/Routing-test.js +++ b/modules/__tests__/Routing-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOMServer = require('react-dom/server'); var Router = require('../index'); var Route = require('../components/Route'); var { Foo, Bar, Nested } = require('../TestUtils'); @@ -14,7 +15,7 @@ describe('creating routes from ReactChildren', function () { ]; Router.run(routes, '/foo', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Foo/); done(); }); @@ -29,7 +30,7 @@ describe('creating routes from ReactChildren', function () { ]; Router.run(routes, '/bar', function (Handler, state) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Bar/); done(); }); diff --git a/modules/__tests__/State-test.js b/modules/__tests__/State-test.js index dc3918760e..7eefc01d43 100644 --- a/modules/__tests__/State-test.js +++ b/modules/__tests__/State-test.js @@ -1,5 +1,6 @@ var assert = require('assert'); var React = require('react'); +var ReactDOM = require('react-dom'); var Router = require('../index'); var Route = require('../components/Route'); var TestLocation = require('../locations/TestLocation'); @@ -20,7 +21,7 @@ describe('State', function () { Router.run(routes, location, function (Handler) { router = this; - React.render(, div, function () { + ReactDOM.render(, div, function () { assert(router.isActive('foo')); done(); }); @@ -37,14 +38,14 @@ describe('State', function () { location = new TestLocation([ '/products/123/456?search=abc&limit=789' ]); Router.run(routes, location, function (Handler) { router = this; - React.render(, div, function () { + ReactDOM.render(, div, function () { done(); }); }); }); afterEach(function () { - React.unmountComponentAtNode(div); + ReactDOM.unmountComponentAtNode(div); }); describe('and no query is used', function () { diff --git a/modules/components/ActiveHandler.js b/modules/components/ActiveHandler.js index 6f952d72d5..bc959d5337 100644 --- a/modules/components/ActiveHandler.js +++ b/modules/components/ActiveHandler.js @@ -1,6 +1,6 @@ var React = require('react'); var ContextWrapper = require('./ContextWrapper') -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var PropTypes = require('../PropTypes'); var REF_NAME = '__routeHandler__'; diff --git a/modules/components/Link.js b/modules/components/Link.js index 5c49c0e477..89a8327862 100644 --- a/modules/components/Link.js +++ b/modules/components/Link.js @@ -1,5 +1,5 @@ var React = require('react'); -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var PropTypes = require('../PropTypes'); function isLeftClickEvent(event) { diff --git a/modules/components/RouteHandler.js b/modules/components/RouteHandler.js index 6f952d72d5..bc959d5337 100644 --- a/modules/components/RouteHandler.js +++ b/modules/components/RouteHandler.js @@ -1,6 +1,6 @@ var React = require('react'); var ContextWrapper = require('./ContextWrapper') -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var PropTypes = require('../PropTypes'); var REF_NAME = '__routeHandler__'; diff --git a/modules/components/__tests__/DefaultRoute-test.js b/modules/components/__tests__/DefaultRoute-test.js index 2ed0648575..40d46383d4 100644 --- a/modules/components/__tests__/DefaultRoute-test.js +++ b/modules/components/__tests__/DefaultRoute-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOMServer = require('react-dom/server'); var Router = require('../../index'); var DefaultRoute = require('../DefaultRoute'); var Route = require('../Route'); @@ -15,7 +16,7 @@ describe('DefaultRoute', function () { ); Router.run(routes, '/', function (App) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Foo/); }); @@ -31,7 +32,7 @@ describe('DefaultRoute', function () { ); Router.run(routes, '/foo', function (App) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Foo/); }); @@ -46,7 +47,7 @@ describe('DefaultRoute', function () { ); Router.run(routes, '/', function (App) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Foo/); }); diff --git a/modules/components/__tests__/Link-test.js b/modules/components/__tests__/Link-test.js index cd246d3fc0..f427fe701d 100644 --- a/modules/components/__tests__/Link-test.js +++ b/modules/components/__tests__/Link-test.js @@ -1,13 +1,15 @@ var assert = require('assert'); var expect = require('expect'); -var React = require('react/addons'); +var React = require('react'); +var ReactTestUtils = require('react-addons-test-utils') +var ReactDOM = require('react-dom'); var Router = require('../../index'); var Route = require('../Route'); var Link = require('../Link'); var RouteHandler = require('../RouteHandler'); var TestLocation = require('../../locations/TestLocation'); var { Foo, Bar } = require('../../TestUtils'); -var { click } = React.addons.TestUtils.Simulate; +var { click } = ReactTestUtils.Simulate; describe('A Link', function () { describe('with params and a query', function () { @@ -27,7 +29,7 @@ describe('A Link', function () { var location = new TestLocation([ '/link' ]); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { var a = div.querySelector('a'); expect(a.getAttribute('href')).toEqual('/foo/baz?qux=quux'); }); @@ -89,7 +91,7 @@ describe('A Link', function () { }); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -148,7 +150,7 @@ describe('A Link', function () { }); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); @@ -176,7 +178,7 @@ describe('A Link', function () { var location = new TestLocation([ '/link' ]); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { click(div.querySelector('a')); }); }); @@ -213,7 +215,7 @@ describe('A Link', function () { }); Router.run(routes, location, function (Handler) { - React.render(, div, function () { + ReactDOM.render(, div, function () { steps.shift()(); }); }); diff --git a/modules/components/__tests__/NotFoundRoute-test.js b/modules/components/__tests__/NotFoundRoute-test.js index 92cf97151d..9d2ac9b61d 100644 --- a/modules/components/__tests__/NotFoundRoute-test.js +++ b/modules/components/__tests__/NotFoundRoute-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOMServer = require('react-dom/server'); var Router = require('../../index'); var NotFoundRoute = require('../NotFoundRoute'); var Route = require('../Route'); @@ -11,7 +12,7 @@ describe('NotFoundRoute', function () { it('renders when no other routes match', function () { var routes = ; Router.run(routes, '/ryans-patience', function (Handler) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Bar/); }); }); @@ -27,7 +28,7 @@ describe('NotFoundRoute', function () { ); Router.run(routes, '/ryans-mind', function (Handler) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Bar/); }); }); @@ -46,7 +47,7 @@ describe('NotFoundRoute', function () { it('renders the matching parents and itself', function () { Router.run(routes, '/ryans/compassion', function (Handler) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Bar/); }); @@ -54,7 +55,7 @@ describe('NotFoundRoute', function () { it('does not match if a sibling matches', function () { Router.run(routes, '/ryans/happiness', function (Handler) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Nested/); expect(html).toMatch(/Foo/); }); @@ -71,7 +72,7 @@ describe('NotFoundRoute', function () { ); Router.run(routes, '/ryans-mind', function (Handler) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Bar/); }); }); diff --git a/modules/components/__tests__/Redirect-test.js b/modules/components/__tests__/Redirect-test.js index f284b3dceb..8a7ecf4887 100644 --- a/modules/components/__tests__/Redirect-test.js +++ b/modules/components/__tests__/Redirect-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOM = require('react-dom'); var Router = require('../../index'); var TestLocation = require('../../locations/TestLocation'); var { Nested, Bar } = require('../../TestUtils'); @@ -18,7 +19,7 @@ describe('Redirect', function () { ]; Router.run(routes, location, function (Handler) { - React.render(, div); + ReactDOM.render(, div); expect(div.innerHTML).toMatch(/Bar/); }); }); @@ -34,7 +35,7 @@ describe('Redirect', function () { ]; Router.run(routes, location, function (Handler) { - React.render(, div); + ReactDOM.render(, div); expect(div.innerHTML).toMatch(/Bar/); }); }); @@ -55,7 +56,7 @@ describe('Redirect', function () { ); Router.run(routes, location, function (Handler) { - React.render(, div); + ReactDOM.render(, div); expect(div.innerHTML).toMatch(/Bar/); }); }); @@ -74,7 +75,7 @@ describe('Redirect', function () { ); Router.run(routes, location, function (Handler) { - React.render(, div); + ReactDOM.render(, div); expect(div.innerHTML).toMatch(/Bar/); }); }); diff --git a/modules/components/__tests__/Route-test.js b/modules/components/__tests__/Route-test.js index 4972afbe2f..3c4e600c39 100644 --- a/modules/components/__tests__/Route-test.js +++ b/modules/components/__tests__/Route-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOMServer = require('react-dom/server'); var Router = require('../../index'); var DefaultRoute = require('../DefaultRoute'); var Route = require('../Route'); @@ -16,7 +17,7 @@ describe('Route', function () { ); Router.run(routes, '/', function (App) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Foo/); }); }); @@ -30,7 +31,7 @@ describe('Route', function () { ); Router.run(routes, '/bar', function (App) { - var html = React.renderToString(); + var html = ReactDOMServer.renderToString(); expect(html).toMatch(/Bar/); }); }); diff --git a/modules/components/__tests__/RouteHandler-test.js b/modules/components/__tests__/RouteHandler-test.js index 36867732f1..f1f5a0cd2d 100644 --- a/modules/components/__tests__/RouteHandler-test.js +++ b/modules/components/__tests__/RouteHandler-test.js @@ -1,5 +1,6 @@ var expect = require('expect'); var React = require('react'); +var ReactDOM = require('react-dom'); var Router = require('../../index'); var Route = require('../Route'); var RouteHandler = require('../RouteHandler'); @@ -40,7 +41,7 @@ describe('RouteHandler', function () { var steps = []; steps.push(function (Handler, state) { - React.render(, div, function () { + ReactDOM.render(, div, function () { expect(div.innerHTML).toMatch(/Foo/); location.push('/bar'); }); @@ -49,7 +50,7 @@ describe('RouteHandler', function () { steps.push(function (Handler, state) { updateComponentBeforeNextRender(function () { expect(div.innerHTML).toMatch(/Foo/); - React.render(, div, function () { + ReactDOM.render(, div, function () { expect(div.innerHTML).toMatch(/Bar/); done(); }); @@ -91,7 +92,7 @@ describe('RouteHandler', function () { var div = document.createElement('div'); Router.run(routes, '/foo', function (App) { - React.render(, div); + ReactDOM.render(, div); }); function finishTest() { diff --git a/modules/createRoutesFromReactChildren.js b/modules/createRoutesFromReactChildren.js index 5eaeca3e84..7e8ac5d957 100644 --- a/modules/createRoutesFromReactChildren.js +++ b/modules/createRoutesFromReactChildren.js @@ -1,6 +1,6 @@ /* jshint -W084 */ var React = require('react'); -var assign = require('react/lib/Object.assign'); +var assign = require('object-assign'); var warning = require('./warning'); var DefaultRoute = require('./components/DefaultRoute'); var NotFoundRoute = require('./components/NotFoundRoute'); diff --git a/package.json b/package.json index 3a0d7c696c..cf02003bbf 100644 --- a/package.json +++ b/package.json @@ -38,14 +38,16 @@ "marked": "0.3.3", "mocha": "^2.0.1", "pygmentize-bundled": "^2.3.0", - "react": "0.14.x", + "react": "^15.0.1", + "react-addons-test-utils": "^15.0.1", + "react-dom": "^15.0.1", "rf-changelog": "^0.4.0", "rx": "2.3.18", "webpack": "^1.4.13", "webpack-dev-server": "^1.6.6" }, "peerDependencies": { - "react": "0.13.x||0.14.x" + "react": "0.13.x || 0.14.x || ^15.0.1" }, "dependencies": { "can-use-dom": "0.1.0", diff --git a/webpack.config.js b/webpack.config.js index e9f67b8642..db01724691 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -36,7 +36,7 @@ module.exports = { module: { loaders: [ - { test: /\.js$/, loader: 'babel-loader' } + { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' } ] },