mcpbeat

Clerk Testing

clerk/stripe-webhooks-example-clerk-testing

E2E testing for Clerk apps. Use with Playwright or Cypress for auth flow tests.

482 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
1
copies elsewhere
how many repositories repackaged it
0
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/clerk/stripe-webhooks-example --skill clerk-testing

What it tells the agent to use

found in the instruction text
WebFetch fetches pages from the network

The instruction itself

8 sections, as written by the author

Testing

Decision Tree

| Framework | Documentation |

|-----------|---------------|

| Overview | https://clerk.com/docs/guides/development/testing/overview |

| Playwright | https://clerk.com/docs/guides/development/testing/playwright/overview |

| Cypress | https://clerk.com/docs/guides/development/testing/cypress/overview |

Mental Model

Test auth = isolated session state. Each test needs fresh auth context.

  • clerkSetup() initializes test environment
  • setupClerkTestingToken() bypasses bot detection
  • storageState persists auth between tests for speed

Workflow

  • Identify test framework (Playwright or Cypress)
  • WebFetch the appropriate URL from decision tree above
  • Follow official setup instructions
  • Use pk_test_* and sk_test_* keys only

Best Practices

  • Use setupClerkTestingToken() before navigating to auth pages
  • Use test API keys: pk_test_xxx, sk_test_xxx
  • Save auth state with storageState for faster tests
  • Use page.waitForSelector('[data-clerk-component]') for Clerk UI

Anti-Patterns

| Pattern | Problem | Fix |

|---------|---------|-----|

| Production keys in tests | Security risk | Use pk_test_* keys |

| No setupClerkTestingToken() | Auth fails | Call before navigation |

| UI-based sign-in every test | Slow tests | Use storageState |

Framework-Specific

Playwright: Use globalSetup for auth state

Cypress: Add addClerkCommands({ Cypress, cy }) to support file

See Also

  • clerk-setup - Install Clerk before adding tests
  • clerk-nextjs-patterns - Next.js patterns being tested
  • Demo Repo

Repackaged in 1 other repositories

same content, different owner
clerk/skills open on GitHub →

How to use it

Copy the folder

Take clerk/stripe-webhooks-example-clerk-testing from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.