Capítulo 327 de 456
Setup de Cypress no Next.js para End-to-End (E2E) e Component Testing, com scripts para rodar em modo interativo e headless (CI).
cypress open: abre a suíte interativa; primeira execução cria cypress.config.js e a pasta cypress.cypress run: execução headless, adequada para CI.cy.mount(): monta um componente React isolado em Component Testing, sem servidor.start-server-and-test: pacote auxiliar para subir o Next.js e rodar Cypress em sequência num único script.moduleResolution: "bundler".export default defineConfig({
e2e: { setupNodeEvents(on, config) {} },
})
describe('Navigation', () => {
it('should navigate to the about page', () => {
cy.visit('http://localhost:3000/')
cy.get('a[href*="about"]').click()
cy.url().should('include', '/about')
cy.get('h1').contains('About')
})
})
export default defineConfig({
component: {
devServer: { framework: 'next', bundler: 'webpack' },
},
})
next dev: recomendado testar contra o build de produção (next build && next start) para refletir o comportamento real.async via Component Testing: não suportado; usar E2E nesse caso.<Image /> funcionar plenamente em Component Testing: features que dependem de servidor podem não funcionar fora de um Next.js server real.cy.visit("/") com baseUrl configurado evita hardcode de localhost:3000 nos testes.async Server Components, sem <Image> completo).cypress run (headless) em vez de cypress open.