Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    mindrally

    cypress

    mindrally/cypress
    Productivity
    5
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Cypress end-to-end testing best practices for web applications, covering test structure, commands, and reliability patterns.

    SKILL.md

    Cypress Testing Best Practices

    You are an expert in Cypress end-to-end testing.

    Core Principles

    Test Structure

    • Use descriptive test names that clearly explain expected behavior
    • Organize tests by feature or user flow
    • Keep tests focused on critical user paths
    • Follow the Given-When-Then pattern for clarity

    Selecting Elements

    • Prefer data-testid or data-cy attributes for test selectors
    • Use cy.contains() for text-based selection when appropriate
    • Avoid brittle selectors like CSS classes or tag hierarchies
    // Recommended
    cy.get('[data-testid="submit-button"]').click();
    cy.contains('Submit').click();
    
    // Avoid
    cy.get('.btn-primary').click();
    

    Commands and Assertions

    • Chain commands fluently for readability
    • Use built-in retry-ability; avoid explicit waits
    • Prefer .should() assertions over .then() for automatic retries
    • Use .within() to scope commands to a specific element

    Custom Commands

    • Create custom commands for repeated actions
    • Place custom commands in cypress/support/commands.js
    • Document custom commands with JSDoc comments
    Cypress.Commands.add('login', (email, password) => {
      cy.session([email, password], () => {
        cy.visit('/login');
        cy.get('[data-testid="email"]').type(email);
        cy.get('[data-testid="password"]').type(password);
        cy.get('[data-testid="submit"]').click();
        cy.url().should('include', '/dashboard');
      });
    });
    

    Handling Async Operations

    • Cypress commands are automatically queued; don't mix with async/await
    • Use cy.intercept() to mock or wait for network requests
    • Use cy.wait() with aliases, not arbitrary timeouts
    cy.intercept('GET', '/api/users').as('getUsers');
    cy.visit('/users');
    cy.wait('@getUsers');
    cy.get('[data-testid="user-list"]').should('be.visible');
    

    Test Isolation

    • Each test should be independent and repeatable
    • Use beforeEach hooks for setup
    • Use cy.session() for efficient authentication

    Anti-Patterns to Avoid

    • Using cy.wait(5000) with arbitrary timeouts
    • Testing third-party sites you don't control
    • Writing overly long tests that test multiple features
    • Relying on the state from previous tests
    Recommended Servers
    Vercel Grep
    Vercel Grep
    Svelte
    Svelte
    Browser tool
    Browser tool
    Repository
    mindrally/skills
    Files