render: handle Fiber strings and numbers (#2221)
shallow: Share child context logic betweenshallowanddive(#2296)mount:children: include text nodes ($2269)mount:invoke: use adapter’swrapInvokeif present (#2158)
mount/shallow:closest/parent: Add missing arguments description (#2264)mount/shallow: fix pluralization of “exist” (#2262)shallow/mount:simulate: added functional component example to simulate doc (#2248)mount:debug: add missing verbose option flag (#2184)mount/shallow:update: fix semantics description (#2194)- add missing backticks to linked method names (#2170)
invoke: Add missing backticks to end of codeblock (#2160)invoke: Fix typo (#2167)- Explicit React CSS selector syntax description (#2178)
- [meta] add
fundingfield - [meta] Update airbnb.io URLs to use https (#2222)
- [deps] update
is-boolean-object,is-callable,is-number-object,is-string,enzyme-shallow-equal,array.prototype.flat,function.prototype.name,html-element-map,is-regex,object-inspect,object-is,object.entries,object.vales,raf,string.prototype.trim - [dev deps] update
eslint,eslint-plugin-import,eslint-plugin-markdown,eslint-plugin-react,safe-publish-latest,eslint-config-airbnb,rimraf,safe-publish-latest,karma-firefox-launcher,babel-preset-airbnb,glob-gitignore,semver,eslint-plugin-jsx-a11y
shallowaddsuspenseFallbackoption; supportSuspense/Lazy(#1975)shallow/mount: addinvoke(propName)(...args)(#1856, #945)shallow: Support rendering anddive()ingcreateContext()providers and consumers (#1966)mount/shallow: addgetWrappingComponent(#1960)Utils: addisCustomComponent(#1960)Utils: addstubargument tospyMethodEnzymeAdapter: addmatchesElementType(#2146)RSTTraversal: addgetHTMLFromHostNodes
selectors: unwrapmemoelements - in both directions (#2146)shallow: properly determine "should render" forPureComponents (#2096)mount/shallow:renderProp: improve error messages (#2070)mount:setContext: use proper wrapper name in error messageshallow:.contains(): clean up error messageshallow/mount:hasClass: avoid a crash with a non-string argument (#2057)mount: properly handle HTML of multiple nodes (#2052)shallow: ensure that if gDSFP exists, cDU is called. (#2027)shallow: Mock sCU if gDSFP defined in shallow renderer rerender (#1981)mount:.state(): allow getting state from stateful children of a stateless root (#2043)mount:.text(): properly recurse through fragments and arrays (#2028)
ReactWrapper/ShallowWrapper: ensure calling an adapter‘s nodeToElement preserves the receivermount: usegetHTMLFromHostNodes
- explain why need to re-call .find() after update (#2140)
shallow: fix childAt (#2134)- Update v2 -> v3 migration guide re props after a stage change (#1300)
debug: Added documentation forverboseflag (#2104)- Add on the fly JSDOM include example (#2072)
reduce/reduceRight: fix example code (#2066, #2065, #2064)- update
simulateErrorwithgetDerivedStateFromError(#2036) shallow:.hasClass: fix use ofmount- add link to Cheerio API and another example (#756)
jest: Update deprecated jest config key (#2024)
shallow:isEmptyRender: allow on multiple elements (#1924)mount: support:focusselector (#1965)shallow: SupportgetChildContext()(#1971)shallow/mount:.find: find HTML elements by their constructor (#1933)shallow/mount:selectors: support universal selector (#1945)mount/shallow: add regex support to.hasClass(#1987)
mount/shallow:.text/.html: handle an array of nodes properly (#2001)shallow:.setProps(): only call cDU once (#2007)mount: ensurefindWheredoesn‘t abort early on an empty string (#1995)mount:findWhere: avoid passing empty wrappers to predicatemount:text()viafindWhere: return the string for a wrapper around a stringmount/shallow: Fix .exists not accepting any EnzymeSelector (#1934)mount: RecursiveisEmptyRender(#1924)mount:setState: allow setting state on a class child of an SFC root
- [jest] update Jest to setupFilesAfterEnv (#2015)
- [jest] Change deprecated
setupTestFrameworkScriptFiletosetupFilesAfterEnv(#2013) mount:setState: note that you can now call it on "not the root" (#2010)- general improvements (#1947)
- Fix typos (#1992)
- Added missing pages:
isEmptyRender,renderProp,equals, SystemJS guide (#1984, #1985) - Fix link to .shallow() (#1951)
- update jsdoc to use "EnzymeSelector" where applicable
- add "directory" field to package.json
shallow/mount: addrenderProp(#1863, #1891)
shallow/mount: improve error message for "single node" assertion (#1904)shallow: shallow compare, not deep compare, state and props to determine rerendering (#1915)
shallow:dive: add a note about throwing an error (#1905)selectors: update redisplayName` (#1932)shallow:get: fixed wrongprops()usage (#1921)shallow:html: shallow renders full tree (#1912)- Updated broken link for “.hostNodes()” in migration guide from enzyme 2 to 3 (#1909)
- Add tape example project link (#1898)
prop: fix typo (#1883)- Document full support for attribute selectors (#1881)
- Documentation update for testing React Native with jsdom (#1873)
- Update JSDOM docs to include {request|cancel}AnimationFrame polyfills (#1867)
mount:ref: use correct type (#1865)
mount:.state()/.setState(): allow calling on children (#1802, @ljharb)configuration: addreset(commit)
makeOptions: ensure that config-levelattachTo/hydrateInare inherited into wrapper options (#1836, @ljharb)shallow/Utils: call into adapter’sisCustomComponentElementif present (#1832, @SinHouse)shallow/mount: throw an explicit error when state is null/undefined (commit)- freeze
ROOT_NODESfor child wrappers (#1811, @jgzuke) shallow:.parents: ensure that one.findcall does not affect another (#1781, @ljharb)mount: update aftersimulateError(#1812, @jgzuke)
mount/shallow:getElement: usethis.single(commit)
shallow/mount: addsimulateError(#1797, @ljharb)
shallow/mount:containsMatchingElement: trim whitespace (commit, #636)debug: inspect objects instead of showing them as<Component />(commit)
mount:ref: Update docs to be consistent with v3 (#1242, @adam-golab)
shallow/mount: make tests and method ordering more consistent (commit)- RSTTraversal: remove unnecessary
adaptertruthiness check (commit)
- Add forwardRef support (#1592, @jquense)
- Add Portal support (#1760, #1761, #1772, #1774, @jgzuke)
- Add pointer events support (#1753, @ljharb)
- preemptively fix compat with React v16.4.3 (#1790, #1778, @gaearon, @aweary)
shallow: prevent rerenders with PureComponents (#1786, @koba04)shallow: skip updates when nextState isnullorundefined(#1785, @koba04)shallow:setStateaftersetPropscallscomponentWillReceiveProps(#1779, @peanutenthusiast)mount/shallow: be stricter on the wrapper’s setState/setProps callback (commit)shallow/mount: improve error message when wrapping invalid elements (#1759, @jgzuke)
- remove most uses of lodash (commit)
- ensure a license and readme is present in all packages when published
- @koba04:
shallow: fix unexpected call to componentDidMount (#1768)
- @ljharb/@koba04:
shallow:.setState(): stub outsetStateon non-root code paths as well (#1763) - @ljharb:
shallow/mount: restore fallback when adapter lacksinvokeSetStateCallback(commit) - @ljharb:
mount:setState: invoke callback with the proper receiver (commit) - @ljharb:
mount:stateandsetStateshould throw an explicit error message when called on an SFC (commit)
- @koba04:
shallow: call cDU when an instance calls setState (#1742) - @ReactiveRaven:
selectors: fix descendant selector (#1680)
- @ljharb:
shallow:setProps: merge instead of replace props (commit)
- @koba04: Fix an adapter table style in README.md and a migration guide (#1734)
- @madicap:
shallow/mount: account for React.Fragment nodes (#1733) - @jquense: Debug:
debugNodenow returns[function]for function children (commit) - @ljharb:
mount: addhydrateInoption (#1707) - @ljharb:
shallow: add “lifecycles” adapter option (#1696) - @krawaller:
shallow/mount: allow.exists()to take an optional selector (#1695) - @koba04:
shallow: Add getSnapshotBeforeUpdate support (#1657) - @jquense:
shallow/mount: Add support for some pseudo selectors (#1537) - @blainekasten:
debug: Implement verbose debug output (#1547) - @jquense/@ljharb:
Debug:typeNamenow calls the adapter’sdisplayNameOfNodeif available (#1701) - @jquense/@ljharb:
mount/shallow:.name(): call into adapter’sdisplayNameOfNode, if present (#1701) - @jquense/@ljharb:
Utils:nodeHasType: call into adapter’sdisplayNameOfNode, if present (#1701) - @jquense/@ljharb:
selectors:buildPredicate: call into adapter’sisValidElementType, if present (#1701) - @emuraton/@ljharb:
shallow:setProps(): Add callback argument (#1721) - @ljharb:
mount: add.equals()(commit) - @madicap: Extract
getAdapterfromUtilsinto its own file (#1732)
- @ljharb:
shallow/mount:matchesElement/containsMatchingElement: get adapter with options (commit) - @ljharb:
RSTTraversal: removenodeHasPropertyexport; broken since #1157 (commit) - @ljharb/@KordonDev:
shallow:.at(): return an empty wrapper when an index does not exist (#1478) - @ljharb:
shallow:.equals(): flatten children when comparing (commit) - @ljharb:
mount/shallow: do not dedupe in flatMap (commit) - @ljharb:
shallow:.closest(): ensure an empty wrapper is returned for no match (commit) - @krawaller:
selectors: make general sibling not throw on root (#1698) - @ljharb/@angelikatyborska :
mount:text(): null nodes return null (#1582) - @ljharb:
shallow:simulate: ensure it returns itself (commit) - @koba04:
shallow: ShallowWrapper calls update() automatically (#1499) - @bdwain:
mount/shallow: return null for missing keys (#1536) - @vsiao: Fix ShallowWrapper for array-rendering components (#1498)
- @koba04: Call
setStatecallback after finishing the render (#1453) - @eddyerburgh: Convert nodes to RST nodes before comparing (#1423)
- @ljharb: improve "bad adapter" error message (#1477)
- @ljharb:
shallow/mount: default iterator should be iterable (commit)
- @ReactiveRaven:
selectors: fix typos; avoid reusing variable unnecessarily (#1681) - @koba04/@ljharb:
shallow: UsespyMethodto inspect the result ofshouldComponentUpdate/getSnapshotBeforeUpdate(#1192) - @ljharb:
Utils:configuration: change to named exports. (commit) - @ljharb: use
array.prototype.flat(commit)
- @jack-lewin: Clarify dev workflow in CONTRIBUTING.md (#1207)
- @robrichard: Provide migration instructions for
ref(refName)(#1470) - @DannyDelott:
shallow/mount: Add callback arg to setProps header (#1361) - @conor-cafferkey-sociomantic:
mount: Updated docs for ReactWrapper.instance(); remove docs for v2'sgetNode()/getNodes()(#1714) - @koba04: Make clearer the docs for .mount() (#1540)
- @ialexryan: Update signature of .type() in shallow.md (#1492]([#1492))
- @ljharb: ensure a license and readme is present in all packages when published
- @ljharb: [meta] fix package.json scripts
- @ljharb/@joeldenning:
debug: handle boxed primitives (#1450)
- @eddyerburgh: Use RSTTraversal childrenOfNode in Utils (#1381)
- @nicoder: Fix typo in error message (#1379)
- @aweary: Support all attribute selector operators (#1157)
- @idanilt: Change ShallowWrapper.text() trim spaces with same behavior as ReactWrapper.text() (#1350)
- @koba04: Fix to call componentDidUpdate on setState of React v16 (#1261)
- @FezVrasta: Added hostNodes method to ReactWrapper (#1179)
-
@lelandrichardson: Add an npmignore file to all packages (#1204)
-
@neoziro: Fix node resolving in React 16 adapter (#100)
-
@graingert: upgrade to rst-selector-parser@^2.2.2 (#1146)
-
@lelandrichardson: Symlink readme to all packages (#1205)
-
@AndersDJohnson: fix some typos (#1165)
-
@dubbha: ES5 setup file correction (#1194)
-
@morrowr08: updated component name being used in example (#1180)
-
@apandichi: Fixing a few typos... (#1171)
-
@nuc: Fix typo (#1142)
Enzyme has several breaking changes from v2 to v3. Please check out our migration guide for more info. Since there was a rewrite of the core library from v2 to v3, it is hard to categorize changes in terms of sem
-
@lelandrichardson: Refactor enzyme to use Adapters, initial React 16 support (#1007)
-
@lelandrichardson: Make private properties more private and harder to use (#1083)
-
@ljharb: [breaking] update
cheerioto v1 (#1093) -
@aweary: Integrate with a CSS parser for selector parsing (#1086)
-
@vadimdemedes: Skip undefined props when comparing nodes (#662)
-
@koba04: Breaking: lifecycleExperimental by default (#1140)
-
@lelandrichardson: Move to lerna repo structure, multiple modules (#1074)
-
@lelandrichardson: Remove all React dependencies from enzyme (#1084)
-
@lelandrichardson: Add public root method (#1127)
-
@aweary: Remove isFunctionalComponent, use nodeType instead (#1076)
-
@LarsHassler: props not merged when shallow rendering in lifecycleExperimental (#1088)
-
@ljharb: [Fix]
mount: do not mutateComponent.contextTypes(#1099) -
@ljharb: [Fix]
reduce/reduceRight: followArray#reducewhen omitting initialValue (#673) -
@koba04: Fix componentDidUpdate when updating by setState on v16 (#1133)
-
@koba04: Fix componentDidUpdate no longer receives prevContext on React v16 (#1139)
-
@ghost: added sinon to mocha guide (#1075)
-
@samit4me: Update to GitBook 3 (#1039)
-
@therewillbecode: Removed extraneous brackets from example in readme (#1117)
-
@silvenon: Add note that mount() requires cleanup (#1043)
-
@lelandrichardson: Add docs reflecting v3 (#1121)
- [Deps] Require uuid at least 3.0.1 (#1001)
mount/shallow:debug: addignorePropsoption (#960)
shallow: debug: fix indentation (#926)- react-compat: Make sure dependency error reporting always work (#929)
- react-compat: correct error message (#904)
- lint our markdown (#988)
- correct
nvminstall instructions (never install it with homebrew) (#988) - fix typos (#979), (#983)
- Added missing isEmptyRender() docs
- update jsdom guides for v10 and later (#921)
shallow/mount: Make all references to the wrapperclasscall intothis.wrap- update
uuidfrom v2 to v3 (#998)
- Loosen react-compat implicit dependency logic for React 15.4 (#896)
- support React@15.5 (#876)
- no longer depend on
React.createClass(#877) - Throw for malformed compound selectors (#868)
- add disableLifecycleMethods for shallow (#789)
- Match children before and after interpolation (#512)
- Supporting passing context to static rendering (#429)
- Fix an issue w/ cleaning up global.document (#855)
- Update props when shouldComponentUpdate returns
falseandlifecycleExperimentalis on (#807) - Properly pass along options in
dive(#771)
- Update Docs for .getNode and .getNodes (#743)
- Add a link for
ShallowWrapper#dive()(#759 - Fix alphabetical order of API lists (#761)
shallow/mount: Add.slice()method (#661)mount: implement ReactWrapper#getDOMNode (#679)shallow/mount: Addexists; deprecate isEmpty() (#722)
mount: extract MountedTraversal.hasClassName from MountedTraversal.instHasClassName, which allows ReactWrapper.hasClass to bypass the !isDOMComponent(inst) call (#677)withDom: Display a useful error whenwithDomfails to find "jsdom" (#686)mount: ensure thatreact-textcomment nodes don’t break.find(#691)mount:.parents()now filters out sibling path trees (#713)
- ensure ShallowWrapper render output can't get stale (#490)
- continue to support one-argument
single(#632)
-
pass callback on setState and setProps (#617)
-
Make ReactWrapper and ShallowWrapper iterable (#594)
-
add
.dive()method toshallow(#618)
-
Warn if selector contains a pseudo-class (#591)
-
change isCompoundSelector to not match prop selector (#595)
-
fixed hasClassName in case className is not a string and has toString method (#518)
-
Throw if some() is called on a root wrapper (#523)
-
Fix valid + falsy propvalues (#563)
- Fix backwards incompatible
shouldComponentUpdatecall (#491)
-
Support all Component Lifecycle methods in ShallowRenderer (behind an experimental flag) (#318)
-
Add an
isEmptyRender()method to bothShallowWrapperandReactWrapper(#339) -
Add support for batched updates with
ShallowRender.simulate(#342)
-
Switch to using classList instead of className (#448)
-
fixes mount().debug() output with mixed children (#476)
-
Support additional characters in attribute selectors (#412)
-
fix id selector not working when combined with a tag selector (#387)
-
Support spaces in attribute selector values (#427)
-
add
.tap()method toShallowWrapperandReactWrapper(#299) -
add
.key()method toShallowWrapperandReactWrapper(#327) -
add support for descendent selectors,
>,~and+(#217) -
new
containsMatchingElement,containsAllMatchingElements, andcontainsAnyMatchingElementsAPIs (#362) -
new
.name()method (#335)
-
add
dblclickto eventType map for simulate (#317) -
fix
pathToNodebug with child-containing children (#296) -
prioritize
displayNameovernamefor consistency in.debug()(#332) -
handle insignificant whitespace in className (#348)
-
fix handling of SFC components and
.instance()(#359) -
reduce false positives by using argument validation for
.contains(#259) -
fix equality algorithm so that non-renderable nodes are equivalent (#192)
-
add better error handling for
state,setState, andcontext(#373)
- add
optionsparam toShallowWrapper::shallow(#275)
-
make enzyme compatible with all React 15 RCs (#272)
-
increase coverage for Stateless Functional Components (#267)
-
improve context support for Stateless Functional Components (#256)
-
fix tree traversal for Stateless Functional Components (#257)
-
fix
.findfor nested Stateless Functional Components (#274) -
fix
.props()and.debug()methods for Stateless Functional Components (#255) -
prevent falsy nodes from being counted as children (#251)
-
add support for React 15.0.0-rc.1 (#240)
-
add
.unmount()method for ShallowWrapper (#215) -
add direct imports for
mount,shallow, andrender(#198) -
add a
.childAt(n)shorthand method (#187)
-
fix bug in .contains() for matching sub-arrays (#226)
-
fix bug in matching by type displayName (#230)
-
add more useful warnings for missing implicit dependencies (#228)
-
improve SFC support for
.type()(#196) -
fix null handling for
.html()and.render()(#196) -
moved from
underscoretolodash(#189)
-
removed
describeWithDOMutility (#159) -
removed
useSinon,spyPrototypeandspyLifecycleutilities (#159) -
removed
sinondependency (#159) -
removed
jsdomdependency (#159)
- add option for childContextTypes of
ReactWrapper(#171)
-
Prevent null or false nodes from being passed into tree traversal (#174)
-
setProps no longer swallows exceptions (#170)
-
.type()and.props()should not fail on null now (#162)
-
Add
attachTooption tomountto mount to a specific element (#160) -
Add
.debug()method toReactWrapper(#158) -
Add
.mount()and.unmount()APIs toReactWrapper(#155) -
Add
.render()method toReactWrapper(#156) -
Allow
.contains()to accept an array of nodes (#154) -
Add
.context()method toReactWrapperandShallowWrapper(#152)
-
Fixed some behavior with
.contains()matching on strings (#148) -
Fixed
.debug()'s output for numeric children (#149) -
Documentation fixes
-
Update versions of dependencies
-
describeWithDOMenhancement (#126) -
add
.equals()method toShallowWrapper(#124) -
add object selector syntax (#110)
-
Fixed confusing behavior of prop selector syntax (#130)
-
Documentation fixes
-
Added
.html()method toReactWrapper(#71) -
Support property selector (i.e.
[prop="foo"]) (#70) -
jsdom dependency now allows a range of supported versions (#95)
-
Normalized
setProps()behavior betweenmount/shallowto merge props (#103) -
Exclude
_bookfrom published package (#85) -
Various documentation, tests, and style changes
- Support for context (#62)
nodeHasIdfix for some 0.14 corner cases (#65)
- Support for Stateless Functional Components (#53)
- Tweak
describeWithDOMmessaging (#48) - Documentation Fixes
- Official Release!