1010
1111<hr />
1212
13+ <!-- prettier-ignore-start -->
1314[ ![ Build Status] [ build-badge ]] [ build ]
1415[ ![ Code Coverage] [ coverage-badge ]] [ coverage ]
1516[ ![ version] [ version-badge ]] [ package ] [ ![ downloads] [ downloads-badge ]] [ npmtrends ]
1617[ ![ MIT License] [ license-badge ]] [ license ]
1718
18- [ ![ All Contributors] ( https://img.shields.io/badge/all_contributors-61 -orange.svg?style=flat-square )] ( #contributors )
19+ [ ![ All Contributors] ( https://img.shields.io/badge/all_contributors-62 -orange.svg?style=flat-square )] ( #contributors )
1920[ ![ PRs Welcome] [ prs-badge ]] [ prs ] [ ![ Code of Conduct] [ coc-badge ]] [ coc ]
2021[ ![ Join the community on Spectrum] [ spectrum-badge ]] [ spectrum ]
2122
2223[ ![ Watch on GitHub] [ github-watch-badge ]] [ github-watch ]
2324[ ![ Star on GitHub] [ github-star-badge ]] [ github-star ]
2425[ ![ Tweet] [ twitter-badge ]] [ twitter ]
26+ <!-- prettier-ignore-end -->
2527
2628<div align =" center " >
2729<a href =" https://testingjavascript.com " >
@@ -317,12 +319,15 @@ return value of the customRender.
317319``` js
318320// test-utils.js
319321
320- const customRender = (node , options ) => {
321- const rendered = render (< div> {node }< / div> , options)
322+ const customRender = (ui , options ) => {
323+ const rendered = render (< div> {ui }< / div> , options)
322324 return {
323325 ... rendered,
324- rerender : (ui , options ) =>
325- customRender (ui, {container: rendered .container , ... options}),
326+ rerender : newUi =>
327+ customRender (newUi, {
328+ container: rendered .container ,
329+ baseElement: rendered .baseElement ,
330+ }),
326331 }
327332}
328333```
@@ -620,25 +625,23 @@ change. This follows the precedent set by
620625[React Native Web](https://github.com/kentcdodds/react-testing-library/issues/1)
621626which uses a ` testID ` prop which emits a ` data - testid ` attribute on the element.
622627
628+ <!-- prettier-ignore-start -->
623629[#76](https://github.com/kentcdodds/dom-testing-library/issues/76#issuecomment-406321122)
624630[#128](https://github.com/kentcdodds/dom-testing-library/issues/128)
625631[#204](https://github.com/kentcdodds/react-testing-library/issues/204).
632+ <!-- prettier-ignore-end -->
626633
627634What you can do is to create a [custom render](#custom-render) that overwrites
628- ` getByTestId ` :
635+ ` getByTestId ` and related methods, and also ` rerender ` :
629636
630637` ` ` js
631638// test-utils.js
632639import {render , queryHelpers } from ' react-testing-library'
633640
634- export const queryByTestId = queryHelpers .queryByAttribute .bind (
635- null ,
636- ' data-test-id' ,
637- )
638- export const queryAllByTestId = queryHelpers .queryAllByAttribute .bind (
639- null ,
640- ' data-test-id' ,
641- )
641+ export const queryByTestId = (... rest ) =>
642+ queryHelpers .queryByAttribute (' data-test-id' , ... rest )
643+ export const queryAllByTestId = (... rest ) =>
644+ queryHelpers .queryAllByAttribute (' data-test-id' , ... rest )
642645
643646export function getAllByTestId(container , id , ... rest ) {
644647 const els = queryAllByTestId (container , id , ... rest )
@@ -651,19 +654,25 @@ export function getAllByTestId(container, id, ...rest) {
651654 return els
652655}
653656
654- export function getByTestId(... args ) {
655- return queryHelpers .firstResultOrNull (getAllByTestId , ... args )
656- }
657+ export const getByTestId = (... rest ) =>
658+ queryHelpers .firstResultOrNull (getAllByTestId , ... rest )
657659
658- const customRender = (container , options ) => {
659- const utils = render (container , options )
660+ const customRender = (ui , options ) => {
661+ const rendered = render (ui , options )
660662
661663 return {
662- ... utils ,
663- getByTestId: getByTestId .bind (container ),
664- getAllByTestId: getAllByTestId .bind (container ),
665- queryByTestId: queryByTestId .bind (container ),
666- queryAllByTestId: queryAllByTestId .bind (container ),
664+ ... rendered ,
665+ getByTestId : (... rest ) => getByTestId (rendered .container , ... rest ),
666+ getAllByTestId : (... rest ) => getAllByTestId (rendered .container , ... rest ),
667+ queryByTestId : (... rest ) => queryByTestId (rendered .container , ... rest ),
668+ queryAllByTestId : (... rest ) =>
669+ queryAllByTestId (rendered .container , ... rest ),
670+
671+ rerender : newUi =>
672+ customRender (newUi , {
673+ container: rendered .container ,
674+ baseElement: rendered .baseElement ,
675+ }),
667676 }
668677}
669678
@@ -1378,7 +1387,7 @@ Thanks goes to these people ([emoji key][emojis]):
13781387| [<img src="https://avatars2.githubusercontent.com/u/5286559?v=4" width="100px;"/><br /><sub><b>Mark Pollmann</b></sub>](https://markpollmann.com/)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=MarkPollmann "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/1213123?v=4" width="100px;"/><br /><sub><b>Ehtesham Kafeel</b></sub>](https://github.com/ehteshamkafeel)<br />[💻](https://github.com/kentcdodds/react-testing-library/commits?author=ehteshamkafeel "Code") [📖](https://github.com/kentcdodds/react-testing-library/commits?author=ehteshamkafeel "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/1493505?v=4" width="100px;"/><br /><sub><b>Julio Pavón</b></sub>](http://jpavon.com)<br />[💻](https://github.com/kentcdodds/react-testing-library/commits?author=jpavon "Code") | [<img src="https://avatars3.githubusercontent.com/u/1765048?v=4" width="100px;"/><br /><sub><b>Duncan L</b></sub>](http://www.duncanleung.com/)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=duncanleung "Documentation") [💡](#example-duncanleung "Examples") | [<img src="https://avatars1.githubusercontent.com/u/700778?v=4" width="100px;"/><br /><sub><b>Tiago Almeida</b></sub>](https://www.linkedin.com/in/tyagow/?locale=en_US)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=tyagow "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/4982001?v=4" width="100px;"/><br /><sub><b>Robert Smith</b></sub>](http://rbrtsmith.com/)<br />[🐛](https://github.com/kentcdodds/react-testing-library/issues?q=author%3Arbrtsmith "Bug reports") | [<img src="https://avatars0.githubusercontent.com/u/1700355?v=4" width="100px;"/><br /><sub><b>Zach Green</b></sub>](https://offbyone.tech)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=zgreen "Documentation") |
13791388| [<img src="https://avatars3.githubusercontent.com/u/881986?v=4" width="100px;"/><br /><sub><b>dadamssg</b></sub>](https://github.com/dadamssg)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=dadamssg "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/8734097?v=4" width="100px;"/><br /><sub><b>Yazan Aabed</b></sub>](https://www.yaabed.com/)<br />[📝](#blog-YazanAabeed "Blogposts") | [<img src="https://avatars0.githubusercontent.com/u/556258?v=4" width="100px;"/><br /><sub><b>Tim</b></sub>](https://github.com/timbonicus)<br />[🐛](https://github.com/kentcdodds/react-testing-library/issues?q=author%3Atimbonicus "Bug reports") [💻](https://github.com/kentcdodds/react-testing-library/commits?author=timbonicus "Code") [📖](https://github.com/kentcdodds/react-testing-library/commits?author=timbonicus "Documentation") [⚠️](https://github.com/kentcdodds/react-testing-library/commits?author=timbonicus "Tests") | [<img src="https://avatars3.githubusercontent.com/u/6682655?v=4" width="100px;"/><br /><sub><b>Divyanshu Maithani</b></sub>](http://divyanshu.xyz)<br />[✅](#tutorial-divyanshu013 "Tutorials") [📹](#video-divyanshu013 "Videos") | [<img src="https://avatars2.githubusercontent.com/u/9116042?v=4" width="100px;"/><br /><sub><b>Deepak Grover</b></sub>](https://www.linkedin.com/in/metagrover)<br />[✅](#tutorial-metagrover "Tutorials") [📹](#video-metagrover "Videos") | [<img src="https://avatars0.githubusercontent.com/u/16276358?v=4" width="100px;"/><br /><sub><b>Eyal Cohen</b></sub>](https://github.com/eyalcohen4)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=eyalcohen4 "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/7452681?v=4" width="100px;"/><br /><sub><b>Peter Makowski</b></sub>](https://github.com/petermakowski)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=petermakowski "Documentation") |
13801389| [<img src="https://avatars2.githubusercontent.com/u/20361668?v=4" width="100px;"/><br /><sub><b>Michiel Nuyts</b></sub>](https://github.com/Michielnuyts)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=Michielnuyts "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/1195863?v=4" width="100px;"/><br /><sub><b>Joe Ng'ethe</b></sub>](https://github.com/joeynimu)<br />[💻](https://github.com/kentcdodds/react-testing-library/commits?author=joeynimu "Code") [📖](https://github.com/kentcdodds/react-testing-library/commits?author=joeynimu "Documentation") | [<img src="https://avatars3.githubusercontent.com/u/19998290?v=4" width="100px;"/><br /><sub><b>Kate</b></sub>](https://github.com/Enikol)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=Enikol "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/11980217?v=4" width="100px;"/><br /><sub><b>Sean</b></sub>](http://www.seanrparker.com)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=SeanRParker "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/17031?v=4" width="100px;"/><br /><sub><b>James Long</b></sub>](http://jlongster.com)<br />[🤔](#ideas-jlongster "Ideas, Planning, & Feedback") [📦](#platform-jlongster "Packaging/porting to new platform") | [<img src="https://avatars1.githubusercontent.com/u/10118777?v=4" width="100px;"/><br /><sub><b>Herb Hagely</b></sub>](https://github.com/hhagely)<br />[💡](#example-hhagely "Examples") | [<img src="https://avatars2.githubusercontent.com/u/5779538?v=4" width="100px;"/><br /><sub><b>Alex Wendte</b></sub>](http://www.wendtedesigns.com/)<br />[💡](#example-themostcolm "Examples") |
1381- | [<img src="https://avatars0.githubusercontent.com/u/6998954?v=4" width="100px;"/><br /><sub><b>Monica Powell</b></sub>](http://www.aboutmonica.com)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=M0nica "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/2699953?v=4" width="100px;"/><br /><sub><b>Vitaly Sivkov</b></sub>](http://sivkoff.com)<br />[💻](https://github.com/kentcdodds/react-testing-library/commits?author=sivkoff "Code") | [<img src="https://avatars3.githubusercontent.com/u/7049?v=4" width="100px;"/><br /><sub><b>Weyert de Boer</b></sub>](https://github.com/weyert)<br />[🤔](#ideas-weyert "Ideas, Planning, & Feedback") [👀](#review-weyert "Reviewed Pull Requests") | [<img src="https://avatars3.githubusercontent.com/u/13613037?v=4" width="100px;"/><br /><sub><b>EstebanMarin</b></sub>](https://github.com/EstebanMarin)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=EstebanMarin "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/13953703?v=4" width="100px;"/><br /><sub><b>Victor Martins</b></sub>](https://github.com/vctormb)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=vctormb "Documentation") |
1390+ | [<img src="https://avatars0.githubusercontent.com/u/6998954?v=4" width="100px;"/><br /><sub><b>Monica Powell</b></sub>](http://www.aboutmonica.com)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=M0nica "Documentation") | [<img src="https://avatars1.githubusercontent.com/u/2699953?v=4" width="100px;"/><br /><sub><b>Vitaly Sivkov</b></sub>](http://sivkoff.com)<br />[💻](https://github.com/kentcdodds/react-testing-library/commits?author=sivkoff "Code") | [<img src="https://avatars3.githubusercontent.com/u/7049?v=4" width="100px;"/><br /><sub><b>Weyert de Boer</b></sub>](https://github.com/weyert)<br />[🤔](#ideas-weyert "Ideas, Planning, & Feedback") [👀](#review-weyert "Reviewed Pull Requests") | [<img src="https://avatars3.githubusercontent.com/u/13613037?v=4" width="100px;"/><br /><sub><b>EstebanMarin</b></sub>](https://github.com/EstebanMarin)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=EstebanMarin "Documentation") | [<img src="https://avatars2.githubusercontent.com/u/13953703?v=4" width="100px;"/><br /><sub><b>Victor Martins</b></sub>](https://github.com/vctormb)<br />[📖](https://github.com/kentcdodds/react-testing-library/commits?author=vctormb "Documentation") | [<img src="https://avatars0.githubusercontent.com/u/19773?v=4" width="100px;"/><br /><sub><b>Royston Shufflebotham</b></sub>](https://github.com/RoystonS)<br />[🐛](https://github.com/kentcdodds/react-testing-library/issues?q=author%3ARoystonS "Bug reports") [📖](https://github.com/kentcdodds/react-testing-library/commits?author=RoystonS "Documentation") [💡](#example-RoystonS "Examples") |
13821391
13831392<!-- ALL-CONTRIBUTORS-LIST:END -->
13841393
0 commit comments