Change Log
3.11.0
New Stuff
render: handle Fiber strings and numbers (#2221)
Fixes
shallow: Share child context logic betweenshallowanddive(#2296)mount:children: include text nodes ($2269)mount:invoke: use adapter’swrapInvokeif present (#2158)
Docs
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 Stuff
- [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
3.10.0
New Stuff
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
Fixes
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)
Refactors
ReactWrapper/ShallowWrapper: ensure calling an adapter‘s nodeToElement preserves the receivermount: usegetHTMLFromHostNodes
Docs
- 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)
3.9.0
New Stuff
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)
Fixes
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
Documentation
- [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
Meta Stuff
- add "directory" field to package.json
3.8.0
New Stuff
shallow/mount: addrenderProp(#1863, #1891)
Fixes
shallow/mount: improve error message for "single node" assertion (#1904)shallow: shallow compare, not deep compare, state and props to determine rerendering (#1915)
Documentation
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)
3.7.0
New Stuff
mount:.state()/.setState(): allow calling on children (#1802, @ljharb)configuration: addreset(commit)
Fixes
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)
Refactors
mount/shallow:getElement: usethis.single(commit)
3.6.0
New Stuff
shallow/mount: addsimulateError(#1797, @ljharb)
3.5.1
Fixes
shallow/mount:containsMatchingElement: trim whitespace (commit, #636)debug: inspect objects instead of showing them as<Component />(commit)
Documentation
mount:ref: Update docs to be consistent with v3 (#1242, @adam-golab)
Refactors
shallow/mount: make tests and method ordering more consistent (commit)- RSTTraversal: remove unnecessary
adaptertruthiness check (commit)
3.5.0
New Stuff
- Add forwardRef support (#1592, @jquense)
- Add Portal support (#1760, #1761, #1772, #1774, @jgzuke)
- Add pointer events support (#1753, @ljharb)
Fixes
- 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)
Refactors
- remove most uses of lodash (commit)
Meta Stuff
- ensure a license and readme is present in all packages when published
3.4.4
Fixes
- @koba04:
shallow: fix unexpected call to componentDidMount (#1768)
3.4.3
Fixes
- @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)
3.4.2
Fixes
- @koba04:
shallow: call cDU when an instance calls setState (#1742) - @ReactiveRaven:
selectors: fix descendant selector (#1680)
3.4.1
Fixes
- @ljharb:
shallow:setProps: merge instead of replace props (commit)
Documentation
- @koba04: Fix an adapter table style in README.md and a migration guide (#1734)
3.4.0
New Stuff
- @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)
Fixes
- @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)
Refactors
- @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)
Documentation
- @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]([https://github.com/enzymejs/enzyme/pull/1492))
Meta Stuff
- @ljharb: ensure a license and readme is present in all packages when published
- @ljharb: [meta] fix package.json scripts
3.3.0
New Stuff
- @ljharb/@joeldenning:
debug: handle boxed primitives (#1450)
Refactors
- @eddyerburgh: Use RSTTraversal childrenOfNode in Utils (#1381)
Fixes
- @nicoder: Fix typo in error message (#1379)
3.2.0
New Stuff
- @aweary: Support all attribute selector operators (#1157)
Fixes
- @idanilt: Change ShallowWrapper.text() trim spaces with same behavior as ReactWrapper.text() (#1350)
3.1.1
Fixes
- @koba04: Fix to call componentDidUpdate on setState of React v16 (#1261)
3.1.0
New Stuff
- @FezVrasta: Added hostNodes method to ReactWrapper (#1179)
Fixes
@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)
Documentation
@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)
3.0.0
Breaking Changes
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)
New Stuff
@lelandrichardson: Move to lerna repo structure, multiple modules (#1074)
@lelandrichardson: Remove all React dependencies from enzyme (#1084)
@lelandrichardson: Add public root method (#1127)
Fixes
@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)
Documentation
@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)
2.9.1
Fixes
- [Deps] Require uuid at least 3.0.1 (#1001)
2.9.0
New Stuff
mount/shallow:debug: addignorePropsoption (#960)
Fixes
shallow: debug: fix indentation (#926)- react-compat: Make sure dependency error reporting always work (#929)
- react-compat: correct error message (#904)
Documentation
- 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)
Refactors
shallow/mount: Make all references to the wrapperclasscall intothis.wrap- update
uuidfrom v2 to v3 (#998)
2.8.2
Fixes
- Loosen react-compat implicit dependency logic for React 15.4 (#896)
Documentation
2.8.1
Fixes
- support React@15.5 (#876)
- no longer depend on
React.createClass(#877) - Throw for malformed compound selectors (#868)
2.8.0
New Stuff
- add disableLifecycleMethods for shallow (#789)
- Match children before and after interpolation (#512)
- Supporting passing context to static rendering (#429)
Fixes
- Fix an issue w/ cleaning up global.document (#855)
- Update props when shouldComponentUpdate returns
falseandlifecycleExperimentalis on (#807) - Properly pass along options in
dive(#771)
2.7.1 (January 22, 2017)
Fixes
Documentation
- Update Docs for .getNode and .getNodes (#743)
- Add a link for
ShallowWrapper#dive()(#759 - Fix alphabetical order of API lists (#761)
2.7.0 (December 21, 2016)
New Stuff
shallow/mount: Add.slice()method (#661)mount: implement ReactWrapper#getDOMNode (#679)shallow/mount: Addexists; deprecate isEmpty() (#722)
Fixes
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)
2.6.0 (November 9, 2016)
New Stuff
- ensure ShallowWrapper render output can't get stale (#490)
Fixes
2.5.2 (November 9, 2016)
Fixes
2.5.1 (October 17, 2016)
Patches
- continue to support one-argument
single(#632)
2.5.0 (October 17, 2016)
Minor Changes
pass callback on setState and setProps (#617)
Make ReactWrapper and ShallowWrapper iterable (#594)
add
.dive()method toshallow(#618)
Patches
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)
2.4.2 (November 9, 2016)
Fixes
2.4.1 (July 8, 2016)
Patches
- Fix backwards incompatible
shouldComponentUpdatecall (#491)
2.4.0 (July 7, 2016)
Minor Changes
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)
Patches
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)
2.3.0 (May 9, 2016)
Minor Changes
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)
Patches
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)
2.2.0 (March 21, 2016)
Minor Changes
- add
optionsparam toShallowWrapper::shallow(#275)
Patches
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)
2.1.0 (March 10, 2016)
Minor Changes
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)
Patches
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)
2.0.0 (February 10, 2016)
Major Changes (breaking)
removed
describeWithDOMutility (#159)removed
useSinon,spyPrototypeandspyLifecycleutilities (#159)removed
sinondependency (#159)removed
jsdomdependency (#159)
1.6.0 (February 10, 2016)
Minor Changes
- add option for childContextTypes of
ReactWrapper(#171)
Patches
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)
1.5.0 (February 2, 2016)
Minor Changes
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)
Patches
Fixed some behavior with
.contains()matching on strings (#148)Fixed
.debug()'s output for numeric children (#149)Documentation fixes
Update versions of dependencies
1.4.1 (January 24, 2016)
Patches
1.4.0 (January 21, 2016)
Minor Changes
describeWithDOMenhancement (#126)add
.equals()method toShallowWrapper(#124)add object selector syntax (#110)
Patches
Fixed confusing behavior of prop selector syntax (#130)
Documentation fixes
1.3.1 (January 15, 2016)
Patches
1.3.0 (January 13, 2016)
Minor Changes
Added
.html()method toReactWrapper(#71)Support property selector (i.e.
[prop="foo"]) (#70)jsdom dependency now allows a range of supported versions (#95)
Patches
Normalized
setProps()behavior betweenmount/shallowto merge props (#103)Exclude
_bookfrom published package (#85)Various documentation, tests, and style changes
1.2.0 (December 10, 2015)
Minor Changes
- Support for context (#62)
Patches
nodeHasIdfix for some 0.14 corner cases (#65)
1.1.0 (December 7, 2015)
Minor Changes
- Support for Stateless Functional Components (#53)
Patches
- Tweak
describeWithDOMmessaging (#48) - Documentation Fixes
1.0.0 (December 3, 2015)
- Official Release!