Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: enzymejs/enzyme
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: enzyme@3.3.0
Choose a base ref
...
head repository: enzymejs/enzyme
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: enzyme@3.4.0
Choose a head ref
Loading
Showing with 7,645 additions and 2,308 deletions.
  1. +4 −1 .babelrc
  2. +1 −0 .eslintrc
  3. +31 −0 .github/ISSUE_TEMPLATE.md
  4. +35 −0 .github/ISSUE_TEMPLATE/Bug_report.md
  5. +17 −0 .github/ISSUE_TEMPLATE/Feature_request.md
  6. +9 −0 .gitignore
  7. +8 −4 .travis.yml
  8. +60 −0 CHANGELOG.md
  9. +18 −1 CONTRIBUTING.md
  10. +2 −0 INTHEWILD.md
  11. +6 −3 README.md
  12. +4 −2 SUMMARY.md
  13. +1 −0 docs/api/ReactWrapper/contains.md
  14. +21 −1 docs/api/ReactWrapper/debug.md
  15. +8 −2 docs/api/ReactWrapper/detach.md
  16. +11 −3 docs/api/ReactWrapper/exists.md
  17. +0 −32 docs/api/ReactWrapper/getNode.md
  18. +0 −32 docs/api/ReactWrapper/getNodes.md
  19. +2 −4 docs/api/ReactWrapper/instance.md
  20. +2 −0 docs/api/ReactWrapper/matchesElement.md
  21. +11 −10 docs/api/ReactWrapper/mount.md
  22. +1 −1 docs/api/ReactWrapper/name.md
  23. +2 −1 docs/api/ReactWrapper/setContext.md
  24. +4 −3 docs/api/ReactWrapper/setProps.md
  25. +3 −1 docs/api/ReactWrapper/setState.md
  26. +1 −0 docs/api/ReactWrapper/simulate.md
  27. +31 −5 docs/api/ReactWrapper/type.md
  28. +7 −6 docs/api/ReactWrapper/unmount.md
  29. +1 −0 docs/api/ReactWrapper/update.md
  30. +23 −1 docs/api/ShallowWrapper/debug.md
  31. +12 −4 docs/api/ShallowWrapper/exists.md
  32. +1 −1 docs/api/ShallowWrapper/get.md
  33. +2 −1 docs/api/ShallowWrapper/html.md
  34. +5 −0 docs/api/ShallowWrapper/last.md
  35. +2 −0 docs/api/ShallowWrapper/matchesElement.md
  36. +1 −1 docs/api/ShallowWrapper/name.md
  37. +36 −5 docs/api/ShallowWrapper/prop.md
  38. +1 −1 docs/api/ShallowWrapper/reduceRight.md
  39. +1 −0 docs/api/ShallowWrapper/setContext.md
  40. +3 −10 docs/api/ShallowWrapper/setProps.md
  41. +1 −0 docs/api/ShallowWrapper/setState.md
  42. +4 −1 docs/api/ShallowWrapper/shallow.md
  43. +1 −0 docs/api/ShallowWrapper/simulate.md
  44. +2 −2 docs/api/ShallowWrapper/type.md
  45. +2 −2 docs/api/ShallowWrapper/unmount.md
  46. +1 −0 docs/api/ShallowWrapper/update.md
  47. +7 −13 docs/api/mount.md
  48. +6 −5 docs/api/shallow.md
  49. +1 −1 docs/common-issues.md
  50. +1 −1 docs/future.md
  51. +1 −1 docs/guides/jest.md
  52. +1 −1 docs/guides/lab.md
  53. +52 −13 docs/guides/migration-from-2-to-3.md
  54. +1 −1 docs/guides/mocha.md
  55. +1 −3 env.js
  56. +12 −0 install-relevant-react.sh
  57. +10 −1 karma.conf.js
  58. +23 −20 package.json
  59. +1 −1 packages/enzyme-adapter-react-13/.babelrc
  60. +0 −2 packages/enzyme-adapter-react-13/.eslintignore
  61. +1 −0 packages/enzyme-adapter-react-13/.eslintignore
  62. +0 −1 packages/enzyme-adapter-react-13/.npmrc
  63. +1 −0 packages/enzyme-adapter-react-13/.npmrc
  64. +0 −1 packages/enzyme-adapter-react-13/README.md
  65. +17 −12 packages/enzyme-adapter-react-13/package.json
  66. +31 −9 packages/enzyme-adapter-react-13/src/ReactThirteenAdapter.js
  67. +4 −8 packages/enzyme-adapter-react-13/src/ReactThirteenElementToTree.js
  68. +1 −1 packages/enzyme-adapter-react-14/.babelrc
  69. +0 −2 packages/enzyme-adapter-react-14/.eslintignore
  70. +1 −0 packages/enzyme-adapter-react-14/.eslintignore
  71. +0 −1 packages/enzyme-adapter-react-14/.npmrc
  72. +1 −0 packages/enzyme-adapter-react-14/.npmrc
  73. +0 −1 packages/enzyme-adapter-react-14/README.md
  74. +13 −11 packages/enzyme-adapter-react-14/package.json
  75. +36 −13 packages/enzyme-adapter-react-14/src/ReactFourteenAdapter.js
  76. +1 −1 packages/enzyme-adapter-react-15.4/.babelrc
  77. +0 −2 packages/enzyme-adapter-react-15.4/.eslintignore
  78. +1 −0 packages/enzyme-adapter-react-15.4/.eslintignore
  79. +0 −1 packages/enzyme-adapter-react-15.4/.npmrc
  80. +1 −0 packages/enzyme-adapter-react-15.4/.npmrc
  81. +0 −1 packages/enzyme-adapter-react-15.4/README.md
  82. +14 −11 packages/enzyme-adapter-react-15.4/package.json
  83. +51 −15 packages/enzyme-adapter-react-15.4/src/ReactFifteenFourAdapter.js
  84. +1 −1 packages/enzyme-adapter-react-15/.babelrc
  85. +0 −2 packages/enzyme-adapter-react-15/.eslintignore
  86. +1 −0 packages/enzyme-adapter-react-15/.eslintignore
  87. +0 −1 packages/enzyme-adapter-react-15/.npmrc
  88. +1 −0 packages/enzyme-adapter-react-15/.npmrc
  89. +0 −1 packages/enzyme-adapter-react-15/README.md
  90. +13 −12 packages/enzyme-adapter-react-15/package.json
  91. +45 −15 packages/enzyme-adapter-react-15/src/ReactFifteenAdapter.js
  92. +6 −0 packages/enzyme-adapter-react-16.1/.babelrc
  93. +4 −0 packages/enzyme-adapter-react-16.1/.eslintignore
  94. +12 −0 packages/enzyme-adapter-react-16.1/.eslintrc
  95. +36 −0 packages/enzyme-adapter-react-16.1/.npmignore
  96. +1 −0 packages/enzyme-adapter-react-16.1/.npmrc
  97. +63 −0 packages/enzyme-adapter-react-16.1/package.json
  98. +369 −0 packages/enzyme-adapter-react-16.1/src/ReactSixteenOneAdapter.js
  99. +1 −0 packages/enzyme-adapter-react-16.1/src/index.js
  100. +6 −0 packages/enzyme-adapter-react-16.2/.babelrc
  101. +4 −0 packages/enzyme-adapter-react-16.2/.eslintignore
  102. +12 −0 packages/enzyme-adapter-react-16.2/.eslintrc
  103. +36 −0 packages/enzyme-adapter-react-16.2/.npmignore
  104. +1 −0 packages/enzyme-adapter-react-16.2/.npmrc
  105. +64 −0 packages/enzyme-adapter-react-16.2/package.json
  106. +375 −0 packages/enzyme-adapter-react-16.2/src/ReactSixteenTwoAdapter.js
  107. +1 −0 packages/enzyme-adapter-react-16.2/src/index.js
  108. +6 −0 packages/enzyme-adapter-react-16.3/.babelrc
  109. +4 −0 packages/enzyme-adapter-react-16.3/.eslintignore
  110. +12 −0 packages/enzyme-adapter-react-16.3/.eslintrc
  111. +36 −0 packages/enzyme-adapter-react-16.3/.npmignore
  112. +1 −0 packages/enzyme-adapter-react-16.3/.npmrc
  113. +65 −0 packages/enzyme-adapter-react-16.3/package.json
  114. +401 −0 packages/enzyme-adapter-react-16.3/src/ReactSixteenThreeAdapter.js
  115. +1 −0 packages/enzyme-adapter-react-16.3/src/index.js
  116. +1 −1 packages/enzyme-adapter-react-16/.babelrc
  117. +0 −2 packages/enzyme-adapter-react-16/.eslintignore
  118. +1 −0 packages/enzyme-adapter-react-16/.eslintignore
  119. +0 −1 packages/enzyme-adapter-react-16/.npmrc
  120. +1 −0 packages/enzyme-adapter-react-16/.npmrc
  121. +0 −1 packages/enzyme-adapter-react-16/README.md
  122. +14 −11 packages/enzyme-adapter-react-16/package.json
  123. +115 −25 packages/enzyme-adapter-react-16/src/ReactSixteenAdapter.js
  124. +1 −1 packages/enzyme-adapter-react-helper/.babelrc
  125. +22 −19 packages/enzyme-adapter-react-helper/package.json
  126. +27 −1 packages/enzyme-adapter-react-helper/src/enzyme-adapter-react-install.js
  127. +25 −10 packages/enzyme-adapter-react-helper/src/index.js
  128. +1 −1 packages/enzyme-adapter-utils/.babelrc
  129. +0 −2 packages/enzyme-adapter-utils/.eslintignore
  130. +1 −0 packages/enzyme-adapter-utils/.eslintignore
  131. +0 −1 packages/enzyme-adapter-utils/.npmrc
  132. +1 −0 packages/enzyme-adapter-utils/.npmrc
  133. +0 −1 packages/enzyme-adapter-utils/README.md
  134. +12 −11 packages/enzyme-adapter-utils/package.json
  135. +27 −13 packages/enzyme-adapter-utils/src/Utils.js
  136. +11 −4 packages/enzyme-adapter-utils/src/createMountWrapper.jsx
  137. +1 −0 packages/enzyme-adapter-utils/src/createRenderWrapper.jsx
  138. +1 −1 packages/enzyme-example-mocha/.babelrc
  139. +1 −0 packages/enzyme-example-mocha/.eslintignore
  140. +1 −0 packages/enzyme-example-mocha/.npmignore
  141. +13 −9 packages/enzyme-example-mocha/package.json
  142. +1 −1 packages/enzyme-example-mocha/src/Foo.spec.jsx
  143. +1 −1 packages/enzyme-example-mocha/test/.setup.js
  144. +6 −0 packages/enzyme-test-suite/.eslintrc
  145. +15 −13 packages/enzyme-test-suite/package.json
  146. +188 −36 packages/enzyme-test-suite/test/Adapter-spec.jsx
  147. +162 −10 packages/enzyme-test-suite/test/Debug-spec.jsx
  148. +33 −33 packages/enzyme-test-suite/test/RSTTraversal-spec.jsx
  149. +1,897 −741 packages/enzyme-test-suite/test/ReactWrapper-spec.jsx
  150. +1,787 −667 packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx
  151. +151 −3 packages/enzyme-test-suite/test/Utils-spec.jsx
  152. +29 −0 packages/enzyme-test-suite/test/_helpers/adapter.js
  153. +32 −0 packages/enzyme-test-suite/test/_helpers/index.jsx
  154. +42 −2 packages/enzyme-test-suite/test/_helpers/react-compat.js
  155. +6 −0 packages/enzyme-test-suite/test/_helpers/realArrowFunction.js
  156. +1 −22 packages/enzyme-test-suite/test/_helpers/setupAdapters.js
  157. +3 −0 packages/enzyme-test-suite/test/_helpers/untranspiledArrowFunction.js
  158. +10 −0 packages/enzyme-test-suite/test/_helpers/untranspiledSloppyReturnThis.js
  159. +8 −11 packages/enzyme-test-suite/test/_helpers/version.js
  160. +85 −0 packages/enzyme-test-suite/test/adapter-utils-spec.jsx
  161. +58 −4 packages/enzyme-test-suite/test/selector-spec.jsx
  162. +2 −2 packages/enzyme-test-suite/test/staticRender-spec.jsx
  163. +1 −1 packages/enzyme/.babelrc
  164. +0 −2 packages/enzyme/.eslintignore
  165. +1 −0 packages/enzyme/.eslintignore
  166. +1 −0 packages/enzyme/.eslintrc
  167. +0 −35 packages/enzyme/.npmignore
  168. +1 −0 packages/enzyme/.npmignore
  169. +0 −1 packages/enzyme/.npmrc
  170. +1 −0 packages/enzyme/.npmrc
  171. +0 −1 packages/enzyme/README.md
  172. +15 −12 packages/enzyme/package.json
  173. +17 −4 packages/enzyme/src/Debug.js
  174. +6 −0 packages/enzyme/src/EnzymeAdapter.js
  175. +23 −9 packages/enzyme/src/RSTTraversal.js
  176. +94 −54 packages/enzyme/src/ReactWrapper.js
  177. +219 −123 packages/enzyme/src/ShallowWrapper.js
  178. +79 −17 packages/enzyme/src/Utils.js
  179. +10 −9 packages/enzyme/src/configuration.js
  180. +12 −0 packages/enzyme/src/getAdapter.js
  181. +1 −1 packages/enzyme/src/render.js
  182. +74 −49 packages/enzyme/src/selectors.js
  183. +28 −2 packages/enzyme/src/validateAdapter.js
5 changes: 4 additions & 1 deletion .babelrc
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"presets": ["airbnb"],
"plugins": [
["transform-replace-object-assign", "object.assign"],
["transform-replace-object-assign", { "moduleSpecifier": "object.assign" }],
],
ignore: [
"packages/enzyme-test-suite/test/_helpers/untranspiled*",
],
}
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
"mocha": true
},
"rules": {
"react/jsx-one-expression-per-line": 0, // TODO: re-enable once fixed
"id-length": 0,
"new-cap": [2, { "capIsNewExceptions": ["AND"] }],
"react/jsx-pascal-case": [2, { "allowAllCaps": true }],
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -11,3 +11,34 @@ Before submitting, please read over our commonly reported issues to prevent dupl
* [Cannot find module 'react-dom/lib/ReactTestUtils'](../blob/master/docs/common-issues.md#error-cannot-find-module-react-domlibreacttestutils)
* [Query Selector fails](../blob/master/docs/common-issues.md#query-selector-fails)
* [Testing third party libraries](../blob/master/docs/common-issues.md#testing-third-party-libraries)

If you haven't found any duplicated issues, please report it with your environment!

### Current behavior

### Expected behavior

### Your environment

#### API

- [ ] shallow
- [ ] mount
- [ ] render

#### Version

| library | version
| ---------------- | -------
| Enzyme |
| React |

#### Adapter

- [ ] enzyme-adapter-react-16
- [ ] enzyme-adapter-react-15
- [ ] enzyme-adapter-react-15.4
- [ ] enzyme-adapter-react-14
- [ ] enzyme-adapter-react-13
- [ ] enzyme-adapter-react-helper
- [ ] others ( )
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/Bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: 🐛 Bug report
about: Create a report to help us improve

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/Feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: 🙏 Feature request
about: Suggest an idea for this project

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. e.g. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -37,4 +37,13 @@ npm-shrinkwrap.json
package-lock.json
yarn.lock

.DS_Store
._.DS_Store

packages/*/build/

# Temporarily copied
packages/*/LICENSE.md
packages/enzyme/README.md
packages/enzyme-adapter-react-*/README.md
packages/enzyme-adapter-utils*/README.md
12 changes: 8 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
language: node_js
node_js:
- "10"
- "8"
- "6"
- "4"
@@ -45,8 +46,11 @@ matrix:
- node_js: "6"
env: KARMA=true REACT=16
env:
- REACT=0.13
- REACT=0.14
- REACT=15.4
- REACT=15
- REACT=16
- REACT=16.3
- REACT=16.2
- REACT=16.1
- REACT=15
- REACT=15.4
- REACT=0.14
- REACT=0.13
60 changes: 60 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,65 @@
# Change Log

## 3.4.0

### New Stuff

- @madicap: `shallow`/`mount`: account for React.Fragment nodes ([#1733](https://github.com/airbnb/enzyme/pull/1733))
- @jquense: Debug: `debugNode` now returns `[function]` for function children ([commit](https://github.com/airbnb/enzyme/commit/9745de0bf25e826186be07e7846f4ecd7c685592))
- @ljharb: `mount`: add `hydrateIn` option ([#1707](https://github.com/airbnb/enzyme/pull/1707))
- @ljharb: `shallow`: add “lifecycles” adapter option ([#1696](https://github.com/airbnb/enzyme/pull/1696))
- @krawaller: `shallow`/`mount`: allow `.exists()` to take an optional selector ([#1695](https://github.com/airbnb/enzyme/pull/1695))
- @koba04: `shallow`: Add getSnapshotBeforeUpdate support ([#1657](https://github.com/airbnb/enzyme/pull/1657))
- @jquense: `shallow`/`mount`: Add support for some pseudo selectors ([#1537](https://github.com/airbnb/enzyme/pull/1537))
- @blainekasten: `debug`: Implement verbose debug output ([#1547](https://github.com/airbnb/enzyme/pull/1547))
- @jquense/@ljharb: `Debug`: `typeName` now calls the adapter’s `displayNameOfNode` if available ([#1701](https://github.com/airbnb/enzyme/pull/1701))
- @jquense/@ljharb: `mount`/`shallow`: `.name()`: call into adapter’s `displayNameOfNode`, if present ([#1701](https://github.com/airbnb/enzyme/pull/1701))
- @jquense/@ljharb: `Utils`: `nodeHasType`: call into adapter’s `displayNameOfNode`, if present ([#1701](https://github.com/airbnb/enzyme/pull/1701))
- @jquense/@ljharb: `selectors`: `buildPredicate`: call into adapter’s `isValidElementType`, if present ([#1701](https://github.com/airbnb/enzyme/pull/1701))
- @emuraton/@ljharb: `shallow`: `setProps()`: Add callback argument ([#1721](https://github.com/airbnb/enzyme/pull/1721))
- @ljharb: `mount`: add `.equals()` ([commit](https://github.com/airbnb/enzyme/commit/dcc8ab10fde06a963364f6cc79b89aa967d9bef2))
- @madicap: Extract `getAdapter` from `Utils` into its own file ([#1732](https://github.com/airbnb/enzyme/pull/1732))

### Fixes

- @ljharb: `shallow`/`mount`: `matchesElement`/`containsMatchingElement`: get adapter with options ([commit](https://github.com/airbnb/enzyme/commit/e954e4610d1ad89ae94b8f7c7baa8835cd331662))
- @ljharb: `RSTTraversal`: remove `nodeHasProperty` export; broken since #1157 ([commit](https://github.com/airbnb/enzyme/commit/edabb1b6b4648fb6469da43feb1d15c1b55666f7))
- @ljharb/@KordonDev: `shallow`: `.at()`: return an empty wrapper when an index does not exist ([#1478](https://github.com/airbnb/enzyme/pull/1478))
- @ljharb: `shallow`: `.equals()`: flatten children when comparing ([commit](https://github.com/airbnb/enzyme/commit/18de4ed2e68c25f9fff9983d996b024704183801))
- @ljharb: `mount`/`shallow`: do not dedupe in flatMap ([commit](https://github.com/airbnb/enzyme/commit/72341740e1e650b16ca2e377fa4e3e144b35a558))
- @ljharb: `shallow`: `.closest()`: ensure an empty wrapper is returned for no match ([commit](https://github.com/airbnb/enzyme/commit/ce1e1132d080948265567e88417dface9c0c45e7))
- @krawaller: `selectors`: make general sibling not throw on root ([#1698](https://github.com/airbnb/enzyme/pull/1698))
- @ljharb/@angelikatyborska : `mount`: `text()`: null nodes return null ([#1582](https://github.com/airbnb/enzyme/pull/1582))
- @ljharb: `shallow`: `simulate`: ensure it returns itself ([commit](https://github.com/airbnb/enzyme/commit/1c2c58b4e554f3b0c5f862f8de79f15a62bef5cf))
- @koba04: `shallow`: ShallowWrapper calls update() automatically ([#1499](https://github.com/airbnb/enzyme/pull/1499))
- @bdwain: `mount`/`shallow`: return null for missing keys ([#1536](https://github.com/airbnb/enzyme/pull/1536))
- @vsiao: Fix ShallowWrapper for array-rendering components ([#1498](https://github.com/airbnb/enzyme/pull/1498))
- @koba04: Call `setState` callback after finishing the render ([#1453](https://github.com/airbnb/enzyme/pull/1453))
- @eddyerburgh: Convert nodes to RST nodes before comparing ([#1423](https://github.com/airbnb/enzyme/pull/1423))
- @ljharb: improve "bad adapter" error message ([#1477](https://github.com/airbnb/enzyme/pull/1477))
- @ljharb: `shallow`/`mount`: default iterator should be iterable ([commit](https://github.com/airbnb/enzyme/commit/cfc5a3e47efa812f7a2c4fa5ad2b0687daacd280))

### Refactors

- @ReactiveRaven: `selectors`: fix typos; avoid reusing variable unnecessarily ([#1681](https://github.com/airbnb/enzyme/pull/1681))
- @koba04/@ljharb: `shallow`: Use `spyMethod` to inspect the result of `shouldComponentUpdate`/`getSnapshotBeforeUpdate` ([#1192](https://github.com/airbnb/enzyme/pull/1192))
- @ljharb: `Utils`: `configuration`: change to named exports. ([commit](https://github.com/airbnb/enzyme/commit/d7f32617e6ea93b739f4e4c3f6228a8e382aeb06))
- @ljharb: use `array.prototype.flat` ([commit](https://github.com/airbnb/enzyme/commit/e52a02ddac0fab0d1d93fd57d7f073f8bdc850bf))

### Docs

- @jack-lewin: Clarify dev workflow in CONTRIBUTING.md ([#1207](https://github.com/airbnb/enzyme/pull/1207))
- @robrichard: Provide migration instructions for `ref(refName)` ([#1470](https://github.com/airbnb/enzyme/pull/1470))
- @DannyDelott: `shallow`/`mount`: Add callback arg to setProps header ([#1361](https://github.com/airbnb/enzyme/pull/1361))
- @conor-cafferkey-sociomantic: `mount`: Updated docs for ReactWrapper.instance(); remove docs for v2's `getNode()`/`getNodes()` ([#1714](https://github.com/airbnb/enzyme/pull/1714))
- @koba04: Make clearer the docs for .mount() ([#1540](https://github.com/airbnb/enzyme/pull/1540))
- @ialexryan: Update signature of .type() in shallow.md (#1492]([https://github.com/airbnb/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
19 changes: 18 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -46,7 +46,12 @@ npm run react:16

### Running Tests

The test suite runs on *built* Enzyme.

```bash
# build Enzyme locally before testing
npm run build

# run tests on whatever version of React is currently installed
npm test
```
@@ -56,7 +61,14 @@ npm test
npm run test:all
```

If you are actively developing, Enzyme will always need to be built with the latest changes.

For this, the recommended workflow is to have the build and tests watching for changes in separate terminals. This should provide you with ~realtime feedback:

```bash
# build Enzyme locally upon save
npm run build:watch

# faster feedback for TDD
npm run test:watch
```
@@ -66,10 +78,15 @@ npm run test:watch
This codebase adheres to the [Airbnb Styleguide](https://github.com/airbnb/javascript) and is
enforced using [ESLint](http://eslint.org/).

It is recommended that you install an eslint plugin for your editor of choice when working on this
As with the test suite, the linter will not fully pass unless it is running on *built* Enzyme. This is because the ESLint `import/*` rules rely on finding the target files in the filesystem (which won't be there unless they've been built).

It is recommended that you install an ESLint plugin for your editor of choice when working on this
codebase, however you can always check to see if the source code is compliant by running:

```bash
# build Enzyme locally before linting
npm run build

npm run lint
```

2 changes: 2 additions & 0 deletions INTHEWILD.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@ Please use [pull requests](https://github.com/airbnb/enzyme/pull/new/master) to
Organizations
----------
- [Airbnb](https://github.com/airbnb)
- [Cerner](https://github.com/cerner)
- [OpenGov](https://github.com/opengov)
- [Pinterest](https://github.com/pinterest)
- [Product Hunt](https://github.com/producthunt)
@@ -24,6 +25,7 @@ Organizations
- [Mavens](https://github.com/mavens)
- [Cucumber](https://cucumber.io)
- [Genoa Telepsychiatry](https://genoatelepsychiatry.com)
- [IBM X-Force Exchange](https://exchange.xforce.ibmcloud.com)
- [Zendesk](https://zendesk.com/)

Projects
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -30,7 +30,7 @@ npm i --save-dev enzyme enzyme-adapter-react-16
```

Each adapter may have additional peer dependencies which you will need to install as well. For instance,
`enzyme-adapter-react-16` has peer dependencies on `react`, `react-dom`, and `react-test-renderer`.
`enzyme-adapter-react-16` has peer dependencies on `react` and `react-dom`.

At the moment, Enzyme has adapters that provide compatibility with `React 16.x`, `React 15.x`,
`React 0.14.x` and `React 0.13.x`.
@@ -40,7 +40,10 @@ React:

| Enzyme Adapter Package | React semver compatibility |
| --- | --- |
| `enzyme-adapter-react-16` | `^16.0.0` |
| `enzyme-adapter-react-16` | `^16.4.0-0` |
| `enzyme-adapter-react-16.3` | `~16.3.0-0` |
| `enzyme-adapter-react-16.2` | `~16.2` |
| `enzyme-adapter-react-16.1` | `~16.0.0-0 || ~16.1` |
| `enzyme-adapter-react-15` | `^15.5.0` |
| `enzyme-adapter-react-15.4` | `15.0.0-0 - 15.4.x` |
| `enzyme-adapter-react-14` | `^0.14.0` |
@@ -204,7 +207,7 @@ import Foo from './Foo';
describe('<Foo />', () => {
it('renders three `.foo-bar`s', () => {
const wrapper = render(<Foo />);
expect(wrapper.find('.foo-bar').length).to.equal(3);
expect(wrapper.find('.foo-bar')).to.have.lengthOf(3);
});

it('renders the title', () => {
6 changes: 4 additions & 2 deletions SUMMARY.md
Original file line number Diff line number Diff line change
@@ -42,6 +42,7 @@
* [forEach(fn)](/docs/api/ShallowWrapper/forEach.md)
* [get(index)](/docs/api/ShallowWrapper/get.md)
* [hasClass(className)](/docs/api/ShallowWrapper/hasClass.md)
* [hostNodes()](/docs/api/ShallowWrapper/hostNodes.md)
* [html()](/docs/api/ShallowWrapper/html.md)
* [instance()](/docs/api/ShallowWrapper/instance.md)
* [is(selector)](/docs/api/ShallowWrapper/is.md)
@@ -54,7 +55,7 @@
* [not(selector)](/docs/api/ShallowWrapper/not.md)
* [parent()](/docs/api/ShallowWrapper/parent.md)
* [parents()](/docs/api/ShallowWrapper/parents.md)
* [prop([key])](/docs/api/ShallowWrapper/prop.md)
* [prop(key)](/docs/api/ShallowWrapper/prop.md)
* [props()](/docs/api/ShallowWrapper/props.md)
* [reduce(fn[, initialValue])](/docs/api/ShallowWrapper/reduce.md)
* [reduceRight(fn[, initialValue])](/docs/api/ShallowWrapper/reduceRight.md)
@@ -96,6 +97,7 @@
* [forEach(fn)](/docs/api/ReactWrapper/forEach.md)
* [get(index)](/docs/api/ReactWrapper/get.md)
* [hasClass(className)](/docs/api/ReactWrapper/hasClass.md)
* [hostNodes()](/docs/api/ReactWrapper/hostNodes.md)
* [html()](/docs/api/ReactWrapper/html.md)
* [instance()](/docs/api/ReactWrapper/instance.md)
* [is(selector)](/docs/api/ReactWrapper/is.md)
@@ -109,7 +111,7 @@
* [not(selector)](/docs/api/ReactWrapper/not.md)
* [parent()](/docs/api/ReactWrapper/parent.md)
* [parents()](/docs/api/ReactWrapper/parents.md)
* [prop([key])](/docs/api/ReactWrapper/prop.md)
* [prop(key)](/docs/api/ReactWrapper/prop.md)
* [props()](/docs/api/ReactWrapper/props.md)
* [reduce(fn[, initialValue])](/docs/api/ReactWrapper/reduce.md)
* [reduceRight(fn[, initialValue])](/docs/api/ReactWrapper/reduceRight.md)
1 change: 1 addition & 0 deletions docs/api/ReactWrapper/contains.md
Original file line number Diff line number Diff line change
@@ -63,3 +63,4 @@ expect(wrapper.contains([
when you are calling it you are calling it with a ReactElement or a JSX expression.
- Keep in mind that this method determines equality based on the equality of the node's children as
well.
- Every attribute of the wrapped element must be matched by the element you're checking. To permit (and ignore) additional attributes on the wrapped element, use containsMatchingElement() instead.
22 changes: 21 additions & 1 deletion docs/api/ReactWrapper/debug.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
# `.debug() => String`
# `.debug([options]) => String`

Returns an HTML-like string of the wrapper for debugging purposes. Useful to print out to the
console when tests are not passing when you expect them to.


#### Arguments

`options` (`Object` [optional]):
- `options.ignoreProps`: (`Boolean` [optional]): Whether props should be omitted in the resulting string. Props are included by default.

#### Returns

`String`: The resulting string.
@@ -72,3 +77,18 @@ Would output the following to the console:
</div>
</Foo>
```
and:
```jsx
console.log(mount(<Bar id="2" />).find(Foo).debug({ ignoreProps: true }));
```
Would output the following to the console:
<!-- eslint-disable -->
```jsx
<Foo>
<div>
<span>
Foo
</span>
</div>
</Foo>
```
Loading