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!