diff --git a/packages/enzyme-test-suite/test/RSTTraversal-spec.jsx b/packages/enzyme-test-suite/test/RSTTraversal-spec.jsx index 1d37dcc14..5246ee3d2 100644 --- a/packages/enzyme-test-suite/test/RSTTraversal-spec.jsx +++ b/packages/enzyme-test-suite/test/RSTTraversal-spec.jsx @@ -4,7 +4,6 @@ import { expect } from 'chai'; import { elementToTree } from 'enzyme-adapter-utils'; import { hasClassName, - nodeHasProperty, treeForEach, treeFilter, pathToNode, @@ -46,96 +45,6 @@ describe('RSTTraversal', () => { }); }); - describe('nodeHasProperty', () => { - it('should find properties', () => { - function noop() {} - const node = $(
); - - expect(nodeHasProperty(node, 'onChange')).to.equal(true); - expect(nodeHasProperty(node, 'title', 'foo')).to.equal(true); - }); - - it('should not match on html attributes', () => { - const node = $(
); - - expect(nodeHasProperty(node, 'for', 'foo')).to.equal(false); - }); - - it('should not find undefined properties', () => { - const node = $(
); - - expect(nodeHasProperty(node, 'title')).to.equal(false); - }); - - it('should parse booleans', () => { - expect(nodeHasProperty(
, 'foo', true)).to.equal(true); - expect(nodeHasProperty(
, 'foo', false)).to.equal(false); - expect(nodeHasProperty(
, 'foo', 'true')).to.equal(false); - expect(nodeHasProperty(
, 'foo', false)).to.equal(true); - expect(nodeHasProperty(
, 'foo', true)).to.equal(false); - expect(nodeHasProperty(
, 'foo', 'false')).to.equal(false); - }); - - it('should parse numeric literals', () => { - expect(nodeHasProperty(
, 'foo', 2.3)).to.equal(true); - expect(nodeHasProperty(
, 'foo', 2)).to.equal(true); - expect(nodeHasProperty(
, 'foo', '2abc')).to.equal(false); - expect(nodeHasProperty(
, 'foo', 'abc2')).to.equal(false); - expect(nodeHasProperty(
, 'foo', -2)).to.equal(true); - expect(nodeHasProperty(
, 'foo', 2e8)).to.equal(true); - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(true); - expect(nodeHasProperty(
, 'foo', -Infinity)).to.equal(true); - }); - - it('should parse zeroes properly', () => { - expect(nodeHasProperty(
, 'foo', 0)).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); - expect(nodeHasProperty(
, 'foo', 0)).to.equal(false); - expect(nodeHasProperty(
, 'foo', -0)).to.equal(false); - }); - - it('should work with empty strings', () => { - expect(nodeHasProperty(
, 'foo', '')).to.equal(true); - expect(nodeHasProperty(
, 'foo', '')).to.equal(true); - expect(nodeHasProperty(
, 'foo', '')).to.equal(false); - }); - - it('should work with NaN', () => { - expect(nodeHasProperty(
, 'foo', NaN)).to.equal(true); - expect(nodeHasProperty(
, 'foo', NaN)).to.equal(false); - }); - - it('should work with null', () => { - expect(nodeHasProperty(
, 'foo', null)).to.equal(true); - expect(nodeHasProperty(
, 'foo', null)).to.equal(false); - }); - - it('should work with false', () => { - expect(nodeHasProperty(
, 'foo', false)).to.equal(true); - expect(nodeHasProperty(
, 'foo', false)).to.equal(false); - }); - - it('should work with ±Infinity', () => { - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(true); - expect(nodeHasProperty(
, 'foo', +Infinity)).to.equal(true); - expect(nodeHasProperty(
, 'foo', -Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', 'Infinity')).to.equal(false); - expect(nodeHasProperty(
, 'foo', NaN)).to.equal(false); - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', -Infinity)).to.equal(true); - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', '-Infinity')).to.equal(false); - expect(nodeHasProperty(
, 'foo', NaN)).to.equal(false); - expect(nodeHasProperty(
, 'foo', Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', -Infinity)).to.equal(false); - expect(nodeHasProperty(
, 'foo', -Infinity)).to.equal(false); - }); - }); - describe('treeForEach', () => { it('should be called once for a leaf node', () => { const spy = sinon.spy(); diff --git a/packages/enzyme-test-suite/test/selector-spec.jsx b/packages/enzyme-test-suite/test/selector-spec.jsx index 25b31f7ef..6b7649da3 100644 --- a/packages/enzyme-test-suite/test/selector-spec.jsx +++ b/packages/enzyme-test-suite/test/selector-spec.jsx @@ -21,8 +21,16 @@ const tests = [ }, ]; +let expectAttributeMatch; + describe('selectors', () => { tests.forEach(({ describeMethod, name, renderMethod }) => { + before(() => { + expectAttributeMatch = (element, selector, expected) => { + const wrapper = renderMethod(element); + expect(wrapper.is(selector)).to.equal(expected); + }; + }); describeMethod(name, () => { it('simple descendent', () => { const wrapper = renderMethod(( @@ -350,6 +358,124 @@ describe('selectors', () => { expect(wrapper.find('Wrapped(Foo)')).to.have.lengthOf(1); expect(wrapper.find('Wrapped(Twice(Bar))')).to.have.lengthOf(1); }); + + it('should parse booleans', () => { + expectAttributeMatch(