React Native Testing
HoangNguyen0403/agent-skills-standard
Test React Native components with Jest and React Native Testing Library.
Write tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native).
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install callstackincubator/agent-skills react-native-testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .claude/skills/react-native-testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .claude/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install callstackincubator/agent-skills react-native-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .agents/skills/react-native-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .agents/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install callstackincubator/agent-skills react-native-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .cursor/skills/react-native-testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .cursor/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/callstackincubator/agent-skills.git --path plugins/vendored/.agents/skills/react-native-testing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install callstackincubator/agent-skills react-native-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .gemini/skills/react-native-testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .gemini/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install callstackincubator/agent-skills react-native-testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .github/skills/react-native-testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .github/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add callstackincubator/agent-skills --skill react-native-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install callstackincubator/agent-skills react-native-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/callstackincubator/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/vendored/.agents/skills/react-native-testing .opencode/skills/react-native-testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "react-native-testing" agent skill from https://github.com/callstackincubator/agent-skills/tree/main/plugins/vendored/.agents/skills/react-native-testing into .opencode/skills/react-native-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-native-testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
react-native-testingWrite tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native).
React Native Testing is an agent skill from callstackincubator/agent-skills, published by the product's own GitHub organization. Write tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native). Use when writing, reviewing, or fixing React Native component tests. Covers: render, screen, queries (getBy/getAllBy/queryBy/findBy), Jest matchers, userEvent, fireEvent, waitFor, and async patterns. Supports v13 (React 18, sync render) and v14 (React 19+, async render). Triggers on: test files for React Native components, RNTL imports, mentions of "testing library", "write tests", "component tests", or "RNTL".
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/anti-patterns.md`, `references/api-reference-v13.md` and `references/api-reference-v14.md`).
It sits in Mobile, covering Cross-platform mobile apps, Unit testing and Test generation. It works with React Native, React, Testing Library and Jest. The repository describes itself as: A collection of agent-optimized React Native skills for AI coding assistants. The licence is MIT.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 61e6e7d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
React Native Testing loads about 1.8k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 134 tokens; SKILL.md has 474 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from callstackincubator/agent-skills at commit 61e6e7d, republished under its MIT licence (© callstackincubator). 474 words, ~1,826 tokens.
.claude/skills/react-native-testing/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.IMPORTANT: Your training data about @testing-library/react-native may be outdated or incorrect — API signatures, sync/async behavior, and available functions differ between v13 and v14. Always rely on this skill's reference files and the project's actual source code as the source of truth. Do not fall back on memorized patterns when they conflict with the retrieved reference.
Check @testing-library/react-native version in the user's package.json:
test-renderer)react-test-renderer)Use the version-specific reference for render patterns, fireEvent sync/async behavior, screen API, configuration, and dependencies.
Use in this order: getByRole > getByLabelText > getByPlaceholderText > getByText > getByDisplayValue > getByTestId (last resort).
| Variant | Use case | Returns | Async |
|---|---|---|---|
getBy* | Element must exist | element instance (throws) | No |
getAllBy* | Multiple must exist | element instance[] (throws) | No |
queryBy* | Check non-existence ONLY | element instance | null | No |
queryAllBy* | Count elements | element instance[] | No |
findBy* | Wait for element | Promise<element instance> | Yes |
findAllBy* | Wait for multiple | Promise<element instance[]> | Yes |
Prefer userEvent over fireEvent. userEvent is always async.
const user = userEvent.setup();
await user.press(element); // full press sequence
await user.longPress(element, { duration: 800 }); // long press
await user.type(textInput, 'Hello'); // char-by-char typing
await user.clear(textInput); // clear TextInput
await user.paste(textInput, 'pasted text'); // paste into TextInput
await user.scrollTo(scrollView, { y: 100 }); // scrollfireEvent — use only when userEvent doesn't support the event. See version-specific reference for sync/async behavior:
fireEvent.press(element);
fireEvent.changeText(textInput, 'new text');
fireEvent(element, 'blur');Available automatically with any @testing-library/react-native import.
| Matcher | Use for |
|---|---|
toBeOnTheScreen() | Element exists in tree |
toBeVisible() | Element visible (not hidden/display:none) |
toBeEnabled() / toBeDisabled() | Disabled state via aria-disabled |
toBeChecked() / toBePartiallyChecked() | Checked state |
toBeSelected() | Selected state |
toBeExpanded() / toBeCollapsed() | Expanded state |
toBeBusy() | Busy state |
toHaveTextContent(text) | Text content match |
toHaveDisplayValue(value) | TextInput display value |
toHaveAccessibleName(name) | Accessible name |
toHaveAccessibilityValue(val) | Accessibility value |
toHaveStyle(style) | Style match |
toHaveProp(name, value?) | Prop check (last resort) |
toContainElement(el) | Contains child element |
toBeEmptyElement() | No children |
screen for queries, not destructuring from render()getByRole first with { name: '...' } optionqueryBy* ONLY for .not.toBeOnTheScreen() checksfindBy* for async elements, NOT waitFor + getBy*waitFor (no fireEvent/userEvent inside)waitForwaitForact() - render, fireEvent, userEvent handle itcleanup() - automatic after each testrole, aria-label, aria-disabled) over legacy accessibility* props*ByRole Quick ReferenceCommon roles: button, text, heading (alias: header), searchbox, switch, checkbox, radio, img, link, alert, menu, menuitem, tab, tablist, progressbar, slider, spinbutton, timer, toolbar.
getByRole options: { name, disabled, selected, checked, busy, expanded, value: { min, max, now, text } }.
For *ByRole to match, the element must be an accessibility element:
Text, TextInput, Switch are by defaultView needs accessible={true} (or use Pressable/TouchableOpacity)// Correct: action first, then wait for result
fireEvent.press(button);
await waitFor(() => {
expect(screen.getByText('Result')).toBeOnTheScreen();
});
// Better: use findBy* instead
fireEvent.press(button);
expect(await screen.findByText('Result')).toBeOnTheScreen();Options: waitFor(cb, { timeout: 1000, interval: 50 }). Works with Jest fake timers automatically.
Recommended with userEvent (press/longPress involve real durations):
jest.useFakeTimers();
test('with fake timers', async () => {
const user = userEvent.setup();
render(<Component />);
await user.press(screen.getByRole('button'));
// ...
});Wrap providers using wrapper option:
function renderWithProviders(ui: React.ReactElement) {
return render(ui, {
wrapper: ({ children }) => (
<ThemeProvider>
<AuthProvider>{children}</AuthProvider>
</ThemeProvider>
),
});
}© callstackincubator, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in plugins/vendored/.agents/skills/react-native-testing of callstackincubator/agent-skills.
Open the folder on GitHubat commit 61e6e7d
React Native Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| React Native Testing this skillcallstackincubator/agent-skills | 1.7k | — | ~1.8k | Automated safety check: Pass | MIT | |
| React Native TestingHoangNguyen0403/agent-skills-standard | 570 | — | ~647 | Automated safety check: Pass | MIT | |
| Senior QAalirezarezvani/claude-skills | 28k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Senior QAborghei/Claude-Skills | 874 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Creating Reanimated Animationsgluestack/gluestack-ui | 5.3k | — | ~2.4k | Automated safety check: Pass | None | |
| Reactpedronauck/skills | 633 | 1 repos | ~1.5k | Automated safety check: Pass | None |
HoangNguyen0403/agent-skills-standard
Test React Native components with Jest and React Native Testing Library.
alirezarezvani/claude-skills
Generates unit tests, integration tests, and E2E tests for React/Next.js applications.
borghei/Claude-Skills
Testing for React/Next.js with Jest, React Testing Library, and Playwright.
gluestack/gluestack-ui
Generate React Native Reanimated animation code for React Native apps.
pedronauck/skills
Build React 19 components and hooks under React Compiler: state, Effects, memoization, props/refs, Actions, use(), compiler/lint setup, and Vitest tests.
cometchat/cometchat-skills
Test a CometChat React Native integration — mock the SDK for Jest unit tests, assert init-before-render ordering and no-Auth-Key-in-source, and use Detox for the flows only a device can prove.
callstackincubator/agent-skills
Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems.
callstackincubator/agent-skills
Upgrades React Native apps to newer versions by applying rn-diff-purge template diffs, updating package.json dependencies, migrating native iOS and Android configuration, resolving CocoaPods and…
callstackincubator/agent-skills
Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations.
callstackincubator/agent-skills
Scaffolds React Native libraries with create-react-native-library for standalone libraries or local native modules and views.
callstackincubator/agent-skills
Assesses whether and how an existing mobile product should migrate to React Native.
callstackincubator/agent-skills
GitHub Actions workflow patterns for React Native iOS simulator and Android emulator cloud builds with downloadable artifacts.
Works with
Categories
Write tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native). React Native Testing is an agent skill from callstackincubator/agent-skills, published by the product's own GitHub organization. Write tests using React Native Testing Library (RNTL) v13 and v14 (@testing-library/react-native).
React Native Testing fits situations like: fixing React Native component tests; : test files for React Native components; mentions of testing library; component tests.
Run `npx skills add callstackincubator/agent-skills --skill react-native-testing -a claude-code`. Or copy the skill folder (plugins/vendored/.agents/skills/react-native-testing in callstackincubator/agent-skills) into .claude/skills/react-native-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add callstackincubator/agent-skills --skill react-native-testing -a codex`. Or copy the skill folder (plugins/vendored/.agents/skills/react-native-testing in callstackincubator/agent-skills) into .agents/skills/react-native-testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add callstackincubator/agent-skills --skill react-native-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-native-testing, .gemini/skills/react-native-testing, .github/skills/react-native-testing and .opencode/skills/react-native-testing in your project.
SKILL.md names no scripts, command-line tools or credentials: React Native Testing is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
React Native Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with React Native Testing: React Native Testing (HoangNguyen0403/agent-skills-standard, 570 stars), Senior QA (alirezarezvani/claude-skills, 28k stars), Senior QA (borghei/Claude-Skills, 874 stars) and Creating Reanimated Animations (gluestack/gluestack-ui, 5.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
callstackincubator (a GitHub organization, an official publisher) maintains it in callstackincubator/agent-skills, which has 1,664 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 6, 2026.
Source: callstackincubator/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.