AI студия Владимира Ломтева
УСЛУГИПРОЕКТЫСТАТЬИБАЗА ЗНАНИЙМаркетплейсПолезные сервисы

Оставьте заявку,
чтобы обсудить проект

Напишите ваш вопрос, не забудьте указать телефон. Мы перезвоним и все расскажем.

Контакты

Москва

Работаем по всей России
и миру (онлайн)

+7 (999) 760-24-41

Ежедневно с 9:00 до 21:00

lamooof@gmail.com

По вопросам сотрудничества

TelegramWhatsApp

Есть предложение?

Напишите нам в мессенджеры

© 2025 AI студия Владимира Ломтева

Политика конфиденциальностиСогласие на обработку ПДн|ИНН 623412173261

    Frontend Testing Best Practices

    Testing best practices for the frontend. Emphasizes E2E tests over unit tests, minimal mocking, and testing behavior over implementation details. Use when writing tests or reviewing test code.

    Скиллы для разработки#GitHub#sergiodxa/agent-skills#skills.sh
    Скачивания
    0
    В избранном
    0
    Комментарии
    0
    Просмотры
    2

    Установить скилл

    Добавьте инструмент одной командой или скачайте проверенный архив версии.

    npx skills add sergiodxa/agent-skills --skill frontend-testing-best-practices
    Скачать ZIP
    Версия
    1.0.0+40e21b46189d
    Автор
    Владимир Ломтев
    Репозиторий
    sergiodxa/agent-skills
    GitHub: sergiodxa/agent-skills

    Как установить

    1. 1Скопируйте команду из блока установки.
    2. 2Запустите её в терминале из каталога проекта.

    Документация

    Testing Best Practices

    Guidelines for writing effective, maintainable tests that provide real confidence. Contains 6 rules focused on preferring E2E tests, minimizing mocking, and testing behavior over implementation.

    Core Philosophy

    1. Prefer E2E tests over unit tests - Test the whole system, not isolated pieces
    2. Minimize mocking - If you need complex mocks, write an E2E test instead
    3. Test behavior, not implementation - Test what users see and do
    4. Avoid testing React components directly - Test them through E2E

    When to Apply

    Reference these guidelines when:

    • Deciding what type of test to write
    • Writing new E2E or unit tests
    • Reviewing test code
    • Refactoring tests

    Rules Summary

    Testing Strategy (CRITICAL)

    prefer-e2e-tests - @rules/prefer-e2e-tests.md

    Default to E2E tests. Only write unit tests for pure functions.

    // E2E test (PREFERRED) - tests real user flow
    test("user can place an order", async ({ page }) => {
      await createTestingAccount(page, { account_status: "active" });
      await page.goto("/catalog");
      await page.getByRole("heading", { name: "Example Item" }).click();
      await page.getByRole("link", { name: "Buy" }).click();
      // ... complete flow
      await expect(page.getByAltText("Thank you")).toBeVisible();
    });
    
    // Unit test - ONLY for pure functions
    test("formatCurrency formats with two decimals", () => {
      expect(formatCurrency(1234.5)).toBe("$1,234.50");
    });
    

    avoid-component-tests - @rules/avoid-component-tests.md

    Don't unit test React components. Test them through E2E or not at all.

    // BAD: Component unit test
    describe("OrderCard", () => {
      test("renders amount", () => {
        render(<OrderCard amount={100} />);
        expect(screen.getByText("$100")).toBeInTheDocument();
      });
    });
    
    // GOOD: E2E test covers the component naturally
    test("order history shows orders", async ({ page }) => {
      await page.goto("/orders");
      await expect(page.getByText("$100")).toBeVisible();
    });
    

    minimize-mocking - @rules/minimize-mocking.md

    Keep mocks simple. If you need 3+ mocks, write an E2E test instead.

    // BAD: Too many mocks = write E2E test
    vi.mock("~/lib/auth");
    vi.mock("~/lib/transactions");
    vi.mock("~/hooks/useAccount");
    
    // GOOD: Simple MSW mock for loader test
    mockServer.use(
      http.get("/api/user", () => HttpResponse.json({ name: "John" })),
    );
    

    E2E Tests (HIGH)

    e2e-test-structure - @rules/e2e-test-structure.md

    E2E tests go in e2e/tests/, not frontend/.

    // e2e/tests/order.spec.ts
    import { test, expect } from "@playwright/test";
    import { addAccountBalance, createTestingAccount } from "./utils";
    
    test.describe("Orders", () => {
      test.beforeEach(async ({ page, context }) => {
        await createTestingAccount(page, { account_status: "active" });
        let cookies = await context.cookies();
        let account_id = cookies.find((c) => c.name === "account_id").value;
        await addAccountBalance({ account_id, amount: 10000, replaceBalance: true });
      });
    
      test("place order with default values", async ({ page }) => {
        await page.goto("/catalog");
        // ... user flow
      });
    });
    

    e2e-selectors - @rules/e2e-selectors.md

    Use accessible selectors: role > label > text > testid.

    // GOOD: Role-based (preferred)
    await page.getByRole("button", { name: "Submit" }).click();
    await page.getByRole("heading", { name: "Dashboard" });
    
    // GOOD: Label-based
    await page.getByLabel("Email").fill("test@example.com");
    
    // OK: Test ID when no accessible selector exists
    await expect(page.getByTestId("balance")).toHaveText("$1,234");
    
    // BAD: CSS selectors
    await page.locator(".btn-primary").click();
    

    Unit Tests (MEDIUM)

    unit-test-structure - @rules/unit-test-structure.md

    Unit tests for pure functions only. Co-locate with source files.

    // app/utils/format.test.ts
    import { describe, test, expect } from "vitest";
    import { formatCurrency } from "./format";
    
    describe("formatCurrency", () => {
      test("formats positive amounts", () => {
        expect(formatCurrency(1234.5)).toBe("$1,234.50");
      });
    
      test("handles zero", () => {
        expect(formatCurrency(0)).toBe("$0.00");
      });
    });
    

    Key Files

    • e2e/tests/ - E2E tests (Playwright)
    • e2e/tests/utils.ts - E2E test utilities
    • vitest.config.ts - Unit test configuration
    • vitest.setup.ts - Global test setup with MSW
    • app/utils/test-utils.ts - Unit test utilities

    Требования и возможности

    Источник пакета
    https://github.com/sergiodxa/agent-skills/tree/40e21b46189d5c7de6610b68a25280af863f8775/skills/frontend-testing-best-practices

    Файлы версии

    ПутьРазмерSHA256
    SKILL.md472022a9d05432d447e3...
    rules/avoid-component-tests.md4143993e176fb7fc6b40...
    rules/e2e-selectors.md3183828718fe7257f118...
    rules/e2e-test-structure.md52437a4ce336d2c88c6a...
    rules/minimize-mocking.md3238490865b973cda7ce...

    Частые вопросы

    Как установить Frontend Testing Best Practices?
    Используйте команду npx skills add sergiodxa/agent-skills --skill frontend-testing-best-practices или скачайте ZIP-архив.
    Можно ли скачать Frontend Testing Best Practices бесплатно?
    Да, опубликованную версию можно скачать из маркетплейса бесплатно.

    Похожие инструменты

    Смотреть все
    React DoctorUse when finishing a feature, fixing a bug, before committing React code, or when the user types `/doctor`, asks to scan, triage, or clean up React diagnostics. Covers lint, accessibility, bundle size, architecture. Includes a regression check and a full local-triage workflow that fetches the canonical playbook.Argent Android Emulator SetupSet up and connect to an Android emulator using argent MCP tools. Use when starting a new session on Android, booting an emulator, getting a device serial, or before any UI interaction task.Fireworks Tech GraphCreate technical diagrams such as software architecture, data flow, flowcharts, sequence diagrams, C4 reviews, cloud deployments, event streams, observability investigations, agent/memory systems, UML, ER, network topology, timelines, and technical concept maps, then export SVG, PNG, focused semantic SVG-to-GIF motion, or offline interactive HTML. Treat direct requests such as "Generate a GIF", "生成 GIF", or "制作 GIF" as motion requests, and use this skill when the user asks to visualize a system or engineering concept. Do not use for photos, raster artwork, or quantitative data charts.
    Комментарии

    Войдите, чтобы оставить комментарий.

    Комментариев пока нет.

    Установить скилл

    Добавьте инструмент одной командой или скачайте проверенный архив версии.

    npx skills add sergiodxa/agent-skills --skill frontend-testing-best-practices
    Скачать ZIP
    Версия
    1.0.0+40e21b46189d
    Автор
    Владимир Ломтев
    Репозиторий
    sergiodxa/agent-skills
    GitHub: sergiodxa/agent-skills
    Modern Web GuidanceSearch tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly and training weights contain obsolete patterns.
    Frontend Testing Best Practices — Скилл для ИИ-агентов | AI Рассвет