Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 40ff06e

Browse files
authored
Merge pull request testing-library#88 from testing-library/within
Add within() test example
2 parents 08500e4 + 1eda1ee commit 40ff06e

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

‎tests/__tests__/within.js‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { render, within } from '@testing-library/vue'
2+
3+
test('within() returns an object with all queries bound to the DOM node', () => {
4+
const { getByTestId, getByText } = render({
5+
template: `
6+
<div>
7+
<p>repeated text</p>
8+
<div data-testid="div">repeated text</div>
9+
</div>
10+
`
11+
})
12+
13+
// getByText() provided by render() fails because it finds multiple elements
14+
// with the same text (as expected).
15+
expect(() => getByText('repeated text')).toThrow(
16+
'Found multiple elements with the text: repeated text'
17+
)
18+
19+
const divNode = getByTestId('div')
20+
21+
// within() returns queries bound to the provided DOM node, so the following
22+
// assertion passes. Notice how we are not using the getByText() function
23+
// provided by render(), but the one coming from within().
24+
within(divNode).getByText('repeated text')
25+
26+
// Here, proof that there's only one match for the specified text.
27+
expect(divNode).toMatchInlineSnapshot(`
28+
<div
29+
data-testid="div"
30+
>
31+
repeated text
32+
</div>
33+
`)
34+
})

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /