From f76bc53fb7236bd218037b51c22f1a8b494ba17a Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 26 Aug 2016 15:45:20 -0700 Subject: [PATCH] [Fix] zero is a falsy but valid propValue. Fixes #562. --- src/MountedTraversal.js | 2 +- src/ShallowTraversal.js | 2 +- test/ShallowTraversal-spec.jsx | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/MountedTraversal.js b/src/MountedTraversal.js index 7b1f9da95..649cec776 100644 --- a/src/MountedTraversal.js +++ b/src/MountedTraversal.js @@ -100,7 +100,7 @@ export function instHasProperty(inst, propKey, stringifiedPropValue) { return false; } - if (propValue) { + if (propValue || propValue === 0) { return nodePropValue === propValue; } diff --git a/src/ShallowTraversal.js b/src/ShallowTraversal.js index e12608428..3975af8e3 100644 --- a/src/ShallowTraversal.js +++ b/src/ShallowTraversal.js @@ -97,7 +97,7 @@ export function nodeHasProperty(node, propKey, stringifiedPropValue) { return false; } - if (propValue) { + if (propValue || propValue === 0) { return nodePropValue === propValue; } diff --git a/test/ShallowTraversal-spec.jsx b/test/ShallowTraversal-spec.jsx index f31eed347..c7e95cc4f 100644 --- a/test/ShallowTraversal-spec.jsx +++ b/test/ShallowTraversal-spec.jsx @@ -110,6 +110,10 @@ describe('ShallowTraversal', () => { expect(nodeHasProperty(
, 'foo', '2e8')).to.equal(true); expect(nodeHasProperty(
, 'foo', 'Infinity')).to.equal(true); expect(nodeHasProperty(
, 'foo', '-Infinity')).to.equal(true); + expect(nodeHasProperty(
, 'foo', '0')).to.equal(true); + expect(nodeHasProperty(
, 'foo', '-0')).to.equal(true); + expect(nodeHasProperty(
, 'foo', '0')).to.equal(false); + expect(nodeHasProperty(
, 'foo', '-0')).to.equal(false); }); it('should throw when un unquoted string is passed in', () => {