Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
render-shallow
Advanced tools
A utility for shallow rendering React components in tests.
It's available on npm as render-shallow, so you can run:
npm install --save render-shallow
renderShallow
shallow renders a React element, using React's ShallowRenderer test utility. It wraps the renderer creation, and returns the rendered component, along with some helpers to rerender the element, should it change.
// import renderShallow from 'render-shallow'
// or:
// const renderShallow = require('render-shallow')
renderShallow(element ReactElement, context ReactContext[Object, optional])
returns: Object { output ReactElement, rerender function, rerenderElement function, instance function }
The React element returned by the shallow renderer.
rerender()
returns: React element
Function that gets the rendered output again. Useful for when a component's state has changed and the DOM should be updated.
rerenderElement(newElement ReactElement, context Object[optional. Uses initial context, if specified])
Function that renders newElement
with the same render instance that renderShallow
used. If context was initially specified, that will be reused, otherwise you can supply it. Useful for when you want to tests a props update to your component.
instance()
returns: Element instance
Function that gets the mounted instance of the element. Useful if you want to check or use instance state or lifecycle methods.
// if you just want the shallow-renderer component
const component = renderShallow(<AReactComponent />).output
// if you want to rerender
const { output, rerender } = renderShallow(<AReactComponent />)
// if you want to rerender the element
const { output, rerenderElement } = renderShallow(<AReactComponent />)
// if you want the component's instance
const { instance } = renderShallow(<AReactComponent />)
I found that in most of the React component tests I wrote, I simply wanted a shallow rendered component to test. The ShallowRenderer API is a little verbose, between the creation and the getting of the output. So I started abstracting that (the .output
returned from renderShallow
). When I found myself wanting to rerender the component, either because of state or props changes, I added the ability to both re-fetch the output (rerender
), or render the element again with new props (rerenderElement
). Some time later, when I wanted to test a lifecycle method not part of the shallow render lifecycle, I added instance()
so I could call the lifecycle hook directly on the element instance.
npm run compile
- Builds a distributable version of the project
npm start
- Runs tests and reruns on file change
npm test
- Runs tests once
npm lint
- Lints javascript
FAQs
A utility for shallow rendering in React
We found that render-shallow demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.