{"action":"created","issue":{"url":"https://api.github.com/repos/gaearon/redux/issues/75","labels_url":"https://api.github.com/repos/gaearon/redux/issues/75/labels{/name}","comments_url":"https://api.github.com/repos/gaearon/redux/issues/75/comments","events_url":"https://api.github.com/repos/gaearon/redux/issues/75/events","html_url":"https://github.com/gaearon/redux/pull/75","id":87237990,"number":75,"title":"WIP: Component tests","user":{"login":"acdlite","id":3624098,"avatar_url":"https://avatars.githubusercontent.com/u/3624098?v=3","gravatar_id":"","url":"https://api.github.com/users/acdlite","html_url":"https://github.com/acdlite","followers_url":"https://api.github.com/users/acdlite/followers","following_url":"https://api.github.com/users/acdlite/following{/other_user}","gists_url":"https://api.github.com/users/acdlite/gists{/gist_id}","starred_url":"https://api.github.com/users/acdlite/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acdlite/subscriptions","organizations_url":"https://api.github.com/users/acdlite/orgs","repos_url":"https://api.github.com/users/acdlite/repos","events_url":"https://api.github.com/users/acdlite/events{/privacy}","received_events_url":"https://api.github.com/users/acdlite/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-06-11T07:08:14Z","updated_at":"2015-06-12T22:52:47Z","closed_at":"2015-06-12T22:26:33Z","pull_request":{"url":"https://api.github.com/repos/gaearon/redux/pulls/75","html_url":"https://github.com/gaearon/redux/pull/75","diff_url":"https://github.com/gaearon/redux/pull/75.diff","patch_url":"https://github.com/gaearon/redux/pull/75.patch"},"body":"I started writing some tests for the components, but ran into some issues with React's shallow renderer related to its non-support for context: https://github.com/facebook/react/issues/3696\r\n\r\nAnyone have any ideas? @gaearon would prefer not to use jsdom if we can avoid it, and I agree.\r\n\r\nEither way, I'll track progress here."},"comment":{"url":"https://api.github.com/repos/gaearon/redux/issues/comments/111635748","html_url":"https://github.com/gaearon/redux/pull/75#issuecomment-111635748","issue_url":"https://api.github.com/repos/gaearon/redux/issues/75","id":111635748,"user":{"login":"gaearon","id":810438,"avatar_url":"https://avatars.githubusercontent.com/u/810438?v=3","gravatar_id":"","url":"https://api.github.com/users/gaearon","html_url":"https://github.com/gaearon","followers_url":"https://api.github.com/users/gaearon/followers","following_url":"https://api.github.com/users/gaearon/following{/other_user}","gists_url":"https://api.github.com/users/gaearon/gists{/gist_id}","starred_url":"https://api.github.com/users/gaearon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaearon/subscriptions","organizations_url":"https://api.github.com/users/gaearon/orgs","repos_url":"https://api.github.com/users/gaearon/repos","events_url":"https://api.github.com/users/gaearon/events{/privacy}","received_events_url":"https://api.github.com/users/gaearon/received_events","type":"User","site_admin":false},"created_at":"2015-06-12T22:52:47Z","updated_at":"2015-06-12T22:52:47Z","body":">Could you explain to me how shallowEqualScalar is different from shallowEqual, and why you'd use one over the other? It's not clear to me from reading the source.\r\n\r\n`shallowEqualScalar` bails out and returns `false` if any of the values is an object.\r\n\r\n`shallowEqual` is not a safe default to use in our `shouldComponentUpdate` because it assumes the user never does deep mutations (which they might). On the other hand, `shallowEqualScalar` is safe. If your props are all scalar (no objects, just primitives, such as numbers, boolean, strings or functions), then you'll get some perf benefit for free."}}