diff --git a/package.json b/package.json
index c8e6a8e..9aee655 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"jsdom": "^8.0.4",
"pragmatist": "^3.0.16",
"react": "^0.15.0-alpha.1",
+ "react-addons-shallow-compare": "^0.15.0-alpha.1",
"react-addons-test-utils": "^0.15.0-alpha.1",
"react-dom": "^0.15.0-alpha.1"
},
diff --git a/tests/extendReactClass.js b/tests/extendReactClass.js
index 2348bd5..e555f5c 100644
--- a/tests/extendReactClass.js
+++ b/tests/extendReactClass.js
@@ -6,6 +6,7 @@ import {
import React from 'react';
import TestUtils from 'react-addons-test-utils';
+import shallowCompare from 'react-addons-shallow-compare';
import jsdom from 'jsdom';
import extendReactClass from './../src/extendReactClass';
@@ -52,6 +53,36 @@ describe('extendReactClass', () => {
TestUtils.renderIntoDocument();
});
+ it('does not affect pure-render logic', (done) => {
+ let Component,
+ instance,
+ rendered = false;
+
+ const styles = {
+ foo: 'foo-1'
+ };
+
+ Component = class extends React.Component {
+ shouldComponentUpdate(newProps) {
+ if(rendered) {
+ expect(shallowCompare(this.props, newProps)).to.be.true;
+ done();
+ }
+ return true;
+ }
+
+ render () {
+ rendered = true;
+ }
+ };
+
+ Component = extendReactClass(Component, styles);
+
+ instance = TestUtils.renderIntoDocument();
+
+ // trigger shouldComponentUpdate
+ instance.setState({});
+ });
});
context('overwriting default styles using "styles" property of the extended component', () => {
it('overwrites default styles', (done) => {