eigen-testing
Write and maintain tests for Eigen, a React Native application using React Native Testing Library and Relay Test Utils. Use this skill when writing new tests, fixing failing tests, adding test coverage, updating existing tests, or when asked about testing best practices for Eigen. Triggers on requests like "write tests for this component", "add test coverage", "fix this test", "how should I test this", or any testing-related questions for the Eigen codebase.
Install
mkdir -p .claude/skills/eigen-testing && curl -L -o skill.zip "https://mcp.directory/api/skills/download/4591" && unzip -o skill.zip -d .claude/skills/eigen-testing && rm skill.zipInstalls to .claude/skills/eigen-testing
About this skill
Eigen Testing Skill
Use this skill to write high-quality tests for Eigen following established patterns and best practices.
Quick Start
For Non-Relay Components
Use the template at assets/component-test-template.tsx as a starting point:
import { fireEvent, screen } from "@testing-library/react-native"
import { renderWithWrappers } from "app/utils/tests/renderWithWrappers"
For Relay Components
Use the template at assets/relay-test-template.tsx as a starting point:
import { setupTestWrapper } from "app/utils/tests/setupTestWrapper"
import { graphql } from "react-relay"
Critical Rules
- File Location: Always place tests in
__tests__directories colocated with source files - File Naming: Use
.tests.tsx(not.test.tsxor.spec.tsx) - Never Use Deprecated Utilities: Avoid
renderWithWrappersLEGACY,setupTestWrapper_LEGACY,resolveMostRecentRelayOperation,flushPromiseQueue,waitUntil,extractText,renderWithLayout - Analytics Testing: Always use
toMatchInlineSnapshot()pattern for tracking events - Async Operations: Use
findBy*queries, notwaitUntilor promise flushing
Test Structure Pattern
Follow Arrange-Act-Assert:
describe("ComponentName", () => {
it("does something specific", () => {
// Arrange: Set up and render
renderWithWrappers(<Component />)
// Act: Trigger behavior
fireEvent.press(screen.getByTestId("button-id"))
// Assert: Verify outcome
expect(mockNavigate).toHaveBeenCalledWith("/path")
})
})
Common Patterns
Testing Navigation
import { navigate } from "app/system/navigation/navigate"
expect(navigate).toHaveBeenCalledWith("/artwork/artwork-slug")
Testing Analytics
import { mockTrackEvent } from "app/utils/tests/globallyMockedStuff"
expect(mockTrackEvent).toHaveBeenCalledTimes(1)
expect(mockTrackEvent.mock.calls[0]).toMatchInlineSnapshot()
// Run test to generate snapshot, then verify it's correct
Testing Relay Data
renderWithRelay({
Me: () => ({
name: "John Doe",
artworks: {
edges: mockEdges(10), // Use mockEdges for paginated data
},
}),
})
Testing Error States
const { mockRejectLastOperation } = renderWithRelay()
mockRejectLastOperation(new Error("Network error"))
Detailed Guidelines
For comprehensive testing patterns, utilities, and examples, refer to:
- references/testing-guidelines.md - Complete testing documentation
Read this file when you need:
- Detailed examples of testing patterns
- Information about wrapper props and configuration
- Guidance on what to test and what not to test
- Mock helpers and utilities
- Additional resources and links
TestID Conventions
Use descriptive, kebab-case test IDs:
artwork-save-buttonartist-series-list-itemprice-display-container
Running Tests
yarn test # Run all tests
yarn test:watch # Watch mode
yarn test path/to/file.tests.tsx # Test specific file
More by artsy
View all skills by artsy →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
fastapi-templates
wshobson
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
Related MCP Servers
Browse all serversAI-ready access to Grafana UI: full React component library—TypeScript source, MDX docs, Storybook examples, tests, and
Learn how to use Python to read a file and manipulate local files safely through the Filesystem API.
Create modern React UI components instantly with Magic AI Agent. Integrates with top IDEs for fast, stunning design and
Automate Excel file tasks without Microsoft Excel using openpyxl and xlsxwriter for formatting, formulas, charts, and ad
Access shadcn/ui v4 components, blocks, and demos for rapid React UI library development. Seamless integration and sourc
Boost Postgres performance with Postgres MCP Pro—AI-driven index tuning, health checks, and safe, intelligent SQL optimi
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.