O que clerk-testing faz?
Testes E2E para aplicativos Clerk. Use com Playwright ou Cypress para testes de fluxo de autenticação.
Visão Geral
Esta skill configura o ambiente e fornece utilitários para testar fluxos de autenticação do Clerk de forma integrada com frameworks de testes E2E como Playwright e Cypress.
Funcionalidades Principais
- Simulação de estados de autenticação (logado, não logado, etc.)
- Helpers para login e registro em testes
- Suporte a sessões de diferentes tipos de usuário
- Compatível com Playwright e Cypress
Requisitos
- Projeto Node.js com Clerk configurado
- Playwright ou Cypress instalado
Instalação
npm install @clerk/testing --save-dev
Uso Básico com Playwright
Configure o arquivo de teste:
import { test, expect } from '@playwright/test';
import { clerkSetup } from '@clerk/testing/playwright';
test.beforeEach(async ({ page }) => {
await clerkSetup({ page });
});
test('usuário pode fazer login', async ({ page }) => {
await page.goto('/login');
// Use helpers do Clerk aqui
await page.clerk.signIn({ strategy: 'password', identifier: '[email protected]', password: 'password' });
await expect(page.locator('h1')).toHaveText('Dashboard');
});
Uso Básico com Cypress
No arquivo de suporte do Cypress:
import '@clerk/testing/cypress';
describe('Fluxo de Login', () => {
it('deve permitir login com sucesso', () => {
cy.visit('/login');
cy.clerkSignIn({ strategy: 'password', identifier: '[email protected]', password: 'password' });
cy.url().should('include', '/dashboard');
});
});
Configuração Avançada
Para cenários que exigem um usuário específico, use as funções auxiliares:
import { clerkSetup, createTestUser } from '@clerk/testing/playwright';
test('acesso como administrador', async ({ page }) => {
const user = await createTestUser({ email: '[email protected]', password: 'admin123' });
await clerkSetup({ page, signInAs: user });
await page.goto('/admin');
// Testes específicos de admin
});
Solução de Problemas
- Erro de autenticação: Verifique se as credenciais de teste estão corretas e se o ambiente de teste está devidamente configurado.
- Timeout: Aumente o tempo limite padrão do test runner se os fluxos de autenticação forem lentos.
- Sessão não persistente: Certifique-se de que os cookies e armazenamento local estão sendo gerenciados corretamente nos hooks de teste.