10
10
11
11
<hr />
12
12
13
+ <!-- prettier-ignore-start -->
13
14
[ ![ Build Status] [ build-badge ]] [ build ]
14
15
[ ![ Code Coverage] [ coverage-badge ]] [ coverage ]
15
16
[ ![ version] [ version-badge ]] [ package ] [ ![ downloads] [ downloads-badge ]] [ npmtrends ]
16
17
[ ![ MIT License] [ license-badge ]] [ license ]
17
18
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 )
19
20
[ ![ PRs Welcome] [ prs-badge ]] [ prs ] [ ![ Code of Conduct] [ coc-badge ]] [ coc ]
20
21
[ ![ Join the community on Spectrum] [ spectrum-badge ]] [ spectrum ]
21
22
22
23
[ ![ Watch on GitHub] [ github-watch-badge ]] [ github-watch ]
23
24
[ ![ Star on GitHub] [ github-star-badge ]] [ github-star ]
24
25
[ ![ Tweet] [ twitter-badge ]] [ twitter ]
26
+ <!-- prettier-ignore-end -->
25
27
26
28
<div align =" center " >
27
29
<a href =" https://testingjavascript.com " >
@@ -317,12 +319,15 @@ return value of the customRender.
317
319
``` js
318
320
// test-utils.js
319
321
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)
322
324
return {
323
325
... 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
+ }),
326
331
}
327
332
}
328
333
```
@@ -620,25 +625,23 @@ change. This follows the precedent set by
620
625
[React Native Web](https://github.com/kentcdodds/react-testing-library/issues/1)
621
626
which uses a ` testID ` prop which emits a ` data - testid ` attribute on the element.
622
627
628
+ <!-- prettier-ignore-start -->
623
629
[#76](https://github.com/kentcdodds/dom-testing-library/issues/76#issuecomment-406321122)
624
630
[#128](https://github.com/kentcdodds/dom-testing-library/issues/128)
625
631
[#204](https://github.com/kentcdodds/react-testing-library/issues/204).
632
+ <!-- prettier-ignore-end -->
626
633
627
634
What you can do is to create a [custom render](#custom-render) that overwrites
628
- ` getByTestId ` :
635
+ ` getByTestId ` and related methods, and also ` rerender ` :
629
636
630
637
` ` ` js
631
638
// test-utils.js
632
639
import {render , queryHelpers } from ' react-testing-library'
633
640
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 )
642
645
643
646
export function getAllByTestId(container , id , ... rest ) {
644
647
const els = queryAllByTestId (container , id , ... rest )
@@ -651,19 +654,25 @@ export function getAllByTestId(container, id, ...rest) {
651
654
return els
652
655
}
653
656
654
- export function getByTestId(... args ) {
655
- return queryHelpers .firstResultOrNull (getAllByTestId , ... args )
656
- }
657
+ export const getByTestId = (... rest ) =>
658
+ queryHelpers .firstResultOrNull (getAllByTestId , ... rest )
657
659
658
- const customRender = (container , options ) => {
659
- const utils = render (container , options )
660
+ const customRender = (ui , options ) => {
661
+ const rendered = render (ui , options )
660
662
661
663
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
+ }),
667
676
}
668
677
}
669
678
@@ -1378,7 +1387,7 @@ Thanks goes to these people ([emoji key][emojis]):
1378
1387
| [<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") |
1379
1388
| [<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") |
1380
1389
| [<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") |
1382
1391
1383
1392
<!-- ALL-CONTRIBUTORS-LIST:END -->
1384
1393
0 commit comments