@@ -19,11 +19,13 @@ The quick and easy way to create and use Testing Library with [VS Code](https://
1919 - [ Extension Manager] ( #extension-manager )
2020 - [ Marketplace] ( #marketplace )
2121- [ Supported Languages] ( #supported-languages )
22+ - [ Cheat Sheet] ( #cheat-sheet )
2223- [ Snippets] ( #snippets )
2324 - [ Import] ( #import )
2425 - [ User Event] ( #user-event )
2526 - [ Queries] ( #queries )
2627 - [ Regex] ( #regex )
28+ - [ Wait] ( #wait )
2729- [ Keyboard] ( #keyboard )
2830- [ Settings] ( #settings )
2931- [ About] ( #about )
@@ -68,6 +70,32 @@ Open the extension manager with <kbd>ctrl</kbd>+<kbd>shift</kbd>+<kbd>X</kbd> (W
6870
6971---
7072
73+ ## Cheat Sheet
74+
75+ | Search Variants | Result |
76+ | ---------------- | --------------------------------------------- |
77+ | ` getBy ` ... | ` Element ` or ` Error ` |
78+ | ` getAllBy ` ... | ` Element[] ` or ` Error ` |
79+ | ` queryBy ` ... | ` Element ` or ` null ` |
80+ | ` queryAllBy ` ... | ` Element[] ` or ` null ` |
81+ | ` findBy ` ... | ` Promise<Element> ` or ` Promise<rejection> ` |
82+ | ` findAllBy ` ... | ` Promise<Element[]> ` or ` Promise<rejection> ` |
83+
84+ | Search Types | Result |
85+ | --------------------- | --------------------------------------------- |
86+ | ...` Role ` | ` <div aria="role"> ` or [ Aria Roles] ( https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques#roles ) |
87+ | ...` LabelText ` | ` <label for="Text"> ` |
88+ | ...` PlaceHolderText ` | ` <input placeholder="Text"> ` |
89+ | ...` Text ` | ` <a href="/page">Text</a> ` |
90+ | ...` DisplayValue ` | ` <input value="Text"> ` |
91+ | ...` AltText ` | ` <img alt="Text"> ` |
92+ | ...` Title ` | ` <span title="Text"> ` or ` <title> ` |
93+ | ...` TestId ` | ` <input data-testid="Id"> ` |
94+
95+ ⇧ [ Back to menu] ( #menu )
96+
97+ ---
98+
7199## Snippets
72100
73101Below is a list of all available snippets and the triggers of each one. The ` ░ ` means the ` TAB ` jump position and ` █ ` the final cursor position.
@@ -90,48 +118,63 @@ Below is a list of all available snippets and the triggers of each one. The `░
90118
91119### Queries
92120
93- | Trigger | Result |
94- | --------: | ---------------------------------------------------------------- |
95- | ` gbr→ ` | ` screen.getByRole('░id')█ ` |
96- | ` gbro→ ` | ` screen.getByRole('░id', {░})█ ` |
97- | ` gbrc→ ` | ` screen.getByRole('checkbox')█ ` |
98- | ` gbrcc→ ` | ` screen.getByRole('checkbox', { checked: ░<true\|false>} })█ ` |
99- | ` gbrh→ ` | ` screen.getByRole('heading')█ ` |
100- | ` gbrhl→ ` | ` screen.getByRole('heading', { level: ░<1\|2\|3\|4\|5\|6>} })█ ` |
101- | ` gabr→ ` | ` screen.getAllByRole('░id')█ ` |
102- | ` gabro→ ` | ` screen.getAllByRole('░id', {░})█ ` |
103- | ` gbt→ ` | ` screen.getByText(░)█ ` |
104- | ` gbtf→ ` | ` screen.getByText('░Text Match')█ ` |
105- | ` gbti→ ` | ` screen.getByText('░text match', {ignore: false})█ ` |
106- | ` gbts→ ` | ` screen.getByText('░ext Matc', {exact: false})█ ` |
107- | ` gbtsi→ ` | ` screen.getByText('░ext matc', {exact: false, ignore: false})█ ` |
108- | ` gbtsw→ ` | ` screen.getByText((content) => content.startsWith('░Text'))█ ` |
109- | ` gbtesw→ ` | <code >screen.getByText((content, element) => {<br />  ;  ; return element.tagName.toLowerCase() === '░div' && content.startsWith('░Text')<br />})█</code > |
110- | ` gbtew→ ` | ` screen.getByText((content) => content.endsWith('░Match'))█ ` |
111- | ` gbteew→ ` | <code >screen.getByText((content, element) => {<br />  ;  ; return element.tagName.toLowerCase() === '░div' && content.endsWith('░Match')<br />})█</code > |
121+ Sorted by recommended official priority
122+
123+ 1 . Role
124+
125+ | Trigger | Result |
126+ | :------- | ----------------------------------------------------------------- |
127+ | ` br→ ` | ` screen.░getByRole('░id')█ ` |
128+ | ` bro→ ` | ` screen.░getByRole('░id', {░})█ ` |
129+ | ` bron→ ` | ` screen.░getByRole('░id', {name: ░})█ ` |
130+ | ` brc→ ` | ` screen.░getByRole('checkbox')█ ` |
131+ | ` brcc→ ` | ` screen.░getByRole('checkbox', { checked: ░<true\|false>} })█ ` |
132+ | ` brh→ ` | ` screen.░getByRole('heading')█ ` |
133+ | ` brhl→ ` | ` screen.░getByRole('heading', { level: ░<1\|2\|3\|4\|5\|6>} })█ ` |
134+
135+ 4 . Text
136+
137+ | Trigger | Result |
138+ | :------- | ---------------------------------------------------------------- |
139+ | ` bt→ ` | ` screen.░getByText(░)█ ` |
140+ | ` btf→ ` | ` screen.░getByText('░Text Match')█ ` |
141+ | ` bti→ ` | ` screen.░getByText('░text match', {ignore: false})█ ` |
142+ | ` bts→ ` | ` screen.░getByText('░ext Matc', {exact: false})█ ` |
143+ | ` btsi→ ` | ` screen.░getByText('░ext matc', {exact: false, ignore: false})█ ` |
144+ | ` btsw→ ` | ` screen.░getByText((content) => content.startsWith('░Text'))█ ` |
145+ | ` btesw→ ` | <code >screen.░getByText((content, element) => {<br />  ;  ; return element.tagName.toLowerCase() === '░div' && content.startsWith('░Text')<br />})█</code > |
146+ | ` btew→ ` | ` screen.░getByText((content) => content.endsWith('░Match'))█ ` |
147+ | ` bteew→ ` | <code >screen.░getByText((content, element) => {<br />  ;  ; return element.tagName.toLowerCase() === '░div' && content.endsWith('░Match')<br />})█</code > |
112148
113149### Debug
114150
115151| Trigger | Result |
116- | -------: | ------------------------------------ |
117- | ` sd→ ` | ` screen.debug()█ ` |
118- | ` sltp→ ` | ` screen.logTestingPlaygroundURL()█ ` |
152+ | : ------- | ------------------------------------ |
153+ | ` sd→ ` | ` screen.debug()█ ` |
154+ | ` sltp→ ` | ` screen.logTestingPlaygroundURL()█ ` |
119155
120156### Regex
121157
122158It can be used as a text matcher or ` name ` property on queries.
123159
124160| Trigger | Description | Result |
125- | ------: | --------------------------- | ------------------- |
126- | ` rf→ ` | full text match | ` /^░Text Match$/█ ` |
127- | ` rfi→ ` | full text match ignore case | ` /^░text match$/i█ ` |
128- | ` rs→ ` | substring match | ` /░ext Matc/█ ` |
129- | ` rsi→ ` | substring match ignore case | ` /░ext matc/i█ ` |
130- | ` rsw→ ` | start with | ` /^░Text/█ ` |
161+ | : ------ | --------------------------- | ------------------- |
162+ | ` rf→ ` | full text match | ` /^░Text Match$/█ ` |
163+ | ` rfi→ ` | full text match ignore case | ` /^░text match$/i█ ` |
164+ | ` rs→ ` | substring match | ` /░ext Matc/█ ` |
165+ | ` rsi→ ` | substring match ignore case | ` /░ext matc/i█ ` |
166+ | ` rsw→ ` | start with | ` /^░Text/█ ` |
131167| ` rswi→ ` | start with ignore case | ` /^░text/i█ ` |
132- | ` rew→ ` | end with | ` /░Match$/█ ` |
168+ | ` rew→ ` | end with | ` /░Match$/█ ` |
133169| ` rewi→ ` | end with ignore case | ` /░match$/i█ ` |
134170
171+ ### Wait
172+
173+ | Trigger | Result |
174+ | :------- | ------------------------------------------------------------------------------- |
175+ | ` wf→ ` | <code >await waitFor(<br />  ;  ; () => ░<br />)█</code > |
176+ | ` wfr→ ` | <code >await waitForElementToBeRemoved(<br />  ;  ; () => ░<br />)█</code > |
177+
135178⇧ [ Back to menu] ( #menu )
136179
137180---
0 commit comments