render
: handle Fiber strings and numbers (#2221)
shallow
: Share child context logic betweenshallow
anddive
(#2296)mount
:children
: include text nodes ($2269)mount
:invoke
: use adapter’swrapInvoke
if 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
funding
field - [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
shallow
addsuspenseFallback
option; 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
: addstub
argument tospyMethod
EnzymeAdapter
: addmatchesElementType
(#2146)RSTTraversal
: addgetHTMLFromHostNodes
selectors
: unwrapmemo
elements - in both directions (#2146)shallow
: properly determine "should render" forPureComponent
s (#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 forverbose
flag (#2104)- Add on the fly JSDOM include example (#2072)
reduce
/reduceRight
: fix example code (#2066, #2065, #2064)- update
simulateError
withgetDerivedStateFromError
(#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:focus
selector (#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
: ensurefindWhere
doesn‘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
setupTestFrameworkScriptFile
tosetupFilesAfterEnv
(#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 re
displayName` (#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
/hydrateIn
are inherited into wrapper options (#1836, @ljharb)shallow
/Utils
: call into adapter’sisCustomComponentElement
if present (#1832, @SinHouse)shallow
/mount
: throw an explicit error when state is null/undefined (commit)- freeze
ROOT_NODES
for child wrappers (#1811, @jgzuke) shallow
:.parents
: ensure that one.find
call 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
adapter
truthiness 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 isnull
orundefined
(#1785, @koba04)shallow
:setState
aftersetProps
callscomponentWillReceiveProps
(#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 outsetState
on 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
:state
andsetState
should 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:
debugNode
now returns[function]
for function children (commit) - @ljharb:
mount
: addhydrateIn
option (#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
:typeName
now calls the adapter’sdisplayNameOfNode
if 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
getAdapter
fromUtils
into its own file (#1732)
- @ljharb:
shallow
/mount
:matchesElement
/containsMatchingElement
: get adapter with options (commit) - @ljharb:
RSTTraversal
: removenodeHasProperty
export; 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
setState
callback 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
: UsespyMethod
to 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]([enzymejs#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
cheerio
to 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#reduce
when 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
: addignoreProps
option (#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
nvm
install 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 wrapperclass
call intothis.wrap
- update
uuid
from v2 to v3 (#998)
- Loosen react-compat implicit dependency logic for React 15.4 (#896)
- support [email protected] (#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
false
andlifecycleExperimental
is 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 whenwithDom
fails to find "jsdom" (#686)mount
: ensure thatreact-text
comment 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
shouldComponentUpdate
call (#491)
-
Support all Component Lifecycle methods in ShallowRenderer (behind an experimental flag) (#318)
-
Add an
isEmptyRender()
method to bothShallowWrapper
andReactWrapper
(#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 toShallowWrapper
andReactWrapper
(#299) -
add
.key()
method toShallowWrapper
andReactWrapper
(#327) -
add support for descendent selectors,
>
,~
and+
(#217) -
new
containsMatchingElement
,containsAllMatchingElements
, andcontainsAnyMatchingElements
APIs (#362) -
new
.name()
method (#335)
-
add
dblclick
to eventType map for simulate (#317) -
fix
pathToNode
bug with child-containing children (#296) -
prioritize
displayName
overname
for 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
options
param 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
.find
for 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
underscore
tolodash
(#189)
-
removed
describeWithDOM
utility (#159) -
removed
useSinon
,spyPrototype
andspyLifecycle
utilities (#159) -
removed
sinon
dependency (#159) -
removed
jsdom
dependency (#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
attachTo
option tomount
to 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 toReactWrapper
andShallowWrapper
(#152)
-
Fixed some behavior with
.contains()
matching on strings (#148) -
Fixed
.debug()
's output for numeric children (#149) -
Documentation fixes
-
Update versions of dependencies
-
describeWithDOM
enhancement (#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
/shallow
to merge props (#103) -
Exclude
_book
from published package (#85) -
Various documentation, tests, and style changes
- Support for context (#62)
nodeHasId
fix for some 0.14 corner cases (#65)
- Support for Stateless Functional Components (#53)
- Tweak
describeWithDOM
messaging (#48) - Documentation Fixes
- Official Release!