Jakość
Front-end testing
Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
fe-testingvitest, jest, playwright, cypress, testing-library5 regułładowane zawsze: 91 tokenów; przy użyciu: 949 tokenów; w referencjach na żądanie: 1636 tokenów.
Instalacja
init instaluje ten skill, gdy projekt używa: vitest, jest, playwright, cypress, testing-library. Wybierz agenta, aby zobaczyć, gdzie trafią jego pliki.
npx github:dawidolko/frontend-skills init Ten sposób nie był jeszcze testowany. npx i pnpm dlx są przetestowane; jeśli ten zawiedzie, użyj jednego z nich.
Bez --agents polecenie init rozpoznaje agentów po tym, co projekt już ma, a gdy nie znajdzie żadnego, pyta:
Po czym init rozpoznaje każdego z agentów (17)
| Agent | Rozpoznawany po |
|---|---|
| Claude Code | CLAUDE.md .claude CLAUDE.local.md |
| OpenAI Codex | .codex AGENTS.override.md |
| Cursor | .cursor .cursorrules |
| GitHub Copilot | .github/copilot-instructions.md .github/instructions .github/skills .github/prompts |
| Gemini CLI | GEMINI.md .gemini |
| Antigravity CLI | .agents/rules .agent/rules |
| Devin / Windsurf | .devin .windsurf .windsurfrules |
| OpenCode | opencode.json opencode.jsonc .opencode |
| Cline | .clinerules .cline |
| Zed | .rules .zed |
| JetBrains Junie | .junie |
| Kiro | .kiro |
| Augment | .augment .augment-guidelines |
| Trae | .trae |
| Continue | .continue |
| Amazon Q Developer | .amazonq |
| Aider | .aider.conf.yml CONVENTIONS.md |
Gdzie trafia fe-testing dla: Claude Code
.claude/skills/fe-testing/SKILL.mdskill.claude/skills/fe-testing/references/testing.mdskill.claude/rules/fe-testing.mdplik regułCLAUDE.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
paths:
- "**/*.test.*"
- "**/*.spec.*"
- "**/__tests__/**"
- "**/e2e/**"
- "**/tests/**"
- "**/cypress/**"
- "**/playwright.config.*"
- "**/vitest.config.*"
---
# Front-end testing (frontend-skills)
Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.claude/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: OpenAI Codex
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
OpenAI Codex nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: Cursor
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskill.cursor/rules/fe-testing.mdcplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
description: Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
globs: **/*.test.*, **/*.spec.*, **/__tests__/**, **/e2e/**, **/tests/**, **/cypress/**, **/playwright.config.*, **/vitest.config.*
alwaysApply: false
---
# Front-end testing (frontend-skills)
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.agents/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: GitHub Copilot
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskill.github/instructions/fe-testing.instructions.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
applyTo: "**/*.test.*,**/*.spec.*,**/__tests__/**,**/e2e/**,**/tests/**,**/cypress/**,**/playwright.config.*,**/vitest.config.*"
description: "Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked \"test this component\" or \"write an e2e test\"."
---
# Front-end testing (frontend-skills)
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.agents/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Gemini CLI
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillGEMINI.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Gemini CLI: Gemini CLI was replaced by Antigravity CLI for unpaid tiers on 2026-06-18; choose "antigravity" too if you use it.
Gemini CLI nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: Antigravity CLI
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskill.agents/rules/fe-testing.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
trigger: glob
globs: "**/*.test.*, **/*.spec.*, **/__tests__/**, **/e2e/**, **/tests/**, **/cypress/**, **/playwright.config.*, **/vitest.config.*"
description: "Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked \"test this component\" or \"write an e2e test\"."
---
# Front-end testing (frontend-skills)
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.agents/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Devin / Windsurf
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskill.devin/rules/fe-testing.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Devin / Windsurf: Devin CLI also reads .cursor/rules; with Cursor chosen too, the CLI sees both rule files of a skill.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
trigger: glob
globs: "**/*.test.*,**/*.spec.*,**/__tests__/**,**/e2e/**,**/tests/**,**/cypress/**,**/playwright.config.*,**/vitest.config.*"
---
# Front-end testing (frontend-skills)
Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.agents/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: OpenCode
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
OpenCode nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: Cline
.claude/skills/fe-testing/SKILL.mdskill.claude/skills/fe-testing/references/testing.mdskill.clinerules/fe-testing.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Cline: If .clinerules is a single file rather than a folder, Cline rule files are not written; skills still are.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
paths:
- "**/*.test.*"
- "**/*.spec.*"
- "**/__tests__/**"
- "**/e2e/**"
- "**/tests/**"
- "**/cypress/**"
- "**/playwright.config.*"
- "**/vitest.config.*"
---
# Front-end testing (frontend-skills)
Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.claude/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Zed
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillCLAUDE.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zed: Zed reads only the first instruction file of its list; the block is placed in that file.
Zed nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: JetBrains Junie
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
JetBrains Junie: Junie reads .agents/skills only in a trusted project.
JetBrains Junie nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: Kiro
.kiro/skills/fe-testing/SKILL.mdskill.kiro/skills/fe-testing/references/testing.mdskill.kiro/steering/fe-testing.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
inclusion: fileMatch
fileMatchPattern: ["**/*.test.*", "**/*.spec.*", "**/__tests__/**", "**/e2e/**", "**/tests/**", "**/cypress/**", "**/playwright.config.*", "**/vitest.config.*"]
---
# Front-end testing (frontend-skills)
Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked "test this component" or "write an e2e test".
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.kiro/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Augment
.agents/skills/fe-testing/SKILL.mdskill.agents/skills/fe-testing/references/testing.mdskillAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Augment nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.Gdzie trafia fe-testing dla: Trae
.trae/skills/fe-testing/SKILL.mdskill.trae/skills/fe-testing/references/testing.mdskill.trae/rules/fe-testing.mdplik regułAGENTS.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Trae: Trae reads AGENTS.md only after it is enabled in its settings.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
description: "Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked \"test this component\" or \"write an e2e test\"."
globs: **/*.test.*,**/*.spec.*,**/__tests__/**,**/e2e/**,**/tests/**,**/cypress/**,**/playwright.config.*,**/vitest.config.*
alwaysApply: false
---
# Front-end testing (frontend-skills)
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.trae/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Continue
.frontend-skills/skills/fe-testing/SKILL.mdskill.frontend-skills/skills/fe-testing/references/testing.mdskill.continue/rules/fe-testing.mdplik reguł
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
---
name: "Front-end testing"
description: "Writes reliable front-end tests with the project's own runner - unit and component tests with Vitest or Jest and Testing Library queries by role, end-to-end tests with Playwright 1.65 or Cypress, network mocking, accessibility scans with axe-core, without flakes. Use when adding or fixing tests, a flaky test or CI test setup, or when asked \"test this component\" or \"write an e2e test\"."
globs: ["**/*.test.*", "**/*.spec.*", "**/__tests__/**", "**/e2e/**", "**/tests/**", "**/cypress/**", "**/playwright.config.*", "**/vitest.config.*"]
alwaysApply: false
---
# Front-end testing (frontend-skills)
- Run tests through the project's own script and runner (`npm test`, `pnpm test:e2e`); never install a second runner.
- Never commit `.only`, `fit` or `fdescribe`; make CI refuse them (test/no-focused-tests).
- Wait for conditions, never for time: no `waitForTimeout`, `cy.wait(ms)` or sleeps (test/no-fixed-wait).
- In Playwright, assert with web-first matchers: `await expect(locator).toBeVisible()` (test/web-first-assertions).
- Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call: `findBy*`, `user.*`, Playwright actions and assertions.
- Each test sets up its own state and passes alone; reset in `beforeEach`, not `afterEach`.
- Mock HTTP at the network boundary (MSW, `page.route`, `cy.intercept`); never hit third-party services.
- Every test asserts something a user would notice; no tests of implementation details.
Before larger changes, read the full skill: `.frontend-skills/skills/fe-testing/SKILL.md`. Explain any rule id with `npx github:dawidolko/frontend-skills explain <id>`.Gdzie trafia fe-testing dla: Amazon Q Developer
.frontend-skills/skills/fe-testing/SKILL.mdskill.frontend-skills/skills/fe-testing/references/testing.mdskill.amazonq/rules/frontend-skills.mdblok instrukcji
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Amazon Q Developer: Amazon Q Developer IDE plugins reach end of support on 2027-04-30; AWS points to Kiro.
Amazon Q Developer nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
### Skills
- `fe-testing` (Front-end testing): when editing `**/*.test.*`, `**/*.spec.*`, `**/__tests__/**`, `**/e2e/**`, `**/tests/**`, `**/cypress/**`, `**/playwright.config.*`, `**/vitest.config.*`, first read `.frontend-skills/skills/fe-testing/SKILL.md`.Gdzie trafia fe-testing dla: Aider
.frontend-skills/skills/fe-testing/SKILL.mdskill.frontend-skills/skills/fe-testing/references/testing.mdskillCONVENTIONS.mdblok instrukcji.aider.conf.ymlkonfiguracja
Dla każdego agenta także: .frontend-skills/profile.json, .frontend-skills/lessons.md i .frontend-skills/install.json.
Aider nie ma plików reguł zawężonych do typów plików; czyta skille i blok instrukcji.
Zaplanowane przez sam instalator dla przykładowego projektu React z repozytorium.
## Front-end work (frontend-skills)
- Before front-end work, read `.frontend-skills/profile.json` (the stack) and `.frontend-skills/lessons.md` (confirmed conventions of this project; they win over any skill).
- Use the installed `fe-*` skill that matches the files you edit.
- After changing UI code, run `npx github:dawidolko/frontend-skills audit --changed --json` and fix findings at `serious` and above; `explain <rule id>` gives the reason, the source and the fix.
- Name rule ids (such as `a11y/img-alt`) in reviews and commit messages.
### Skills
- `fe-testing` (Front-end testing): when editing `**/*.test.*`, `**/*.spec.*`, `**/__tests__/**`, `**/e2e/**`, `**/tests/**`, `**/cypress/**`, `**/playwright.config.*`, `**/vitest.config.*`, first read `.frontend-skills/skills/fe-testing/SKILL.md`.Jak go używać
Po instalacji agent sam ładuje skill, gdy zadanie pasuje do jego opisu. Możesz też poprosić o niego własnymi słowami, na przykład:
Frazy z opisu skilla, po których agent go wybiera (po angielsku, jak w skillu):
- test this component
- write an e2e test
A żeby sprawdzić i poprawić pracę:
- Użyj skilla fe-testing na tym pliku.
- Uruchom audyt front-endu na moich zmianach i popraw wszystko, co poważne.
- Wyjaśnij test/no-focused-tests i popraw to tutaj.
Reguły, których uczy
test/no-focused-testsNo focused tests (.only, fit, fdescribe) are committed; they silently skip the rest of the suite.
test/no-fixed-waitTests wait for conditions, never for a fixed time (no waitForTimeout, cy.wait(ms) or setTimeout sleeps).
test/web-first-assertionsPlaywright tests assert with auto-retrying web-first matchers (toBeVisible, toHaveText), not on values read once.
test/query-by-roleTests find elements the way users do - getByRole with a name first, then label and text; test ids only as a last resort.
test/axe-in-e2eEnd-to-end tests run an axe scan with the WCAG tags you target on each key page and state, and fail on violations.
Skrót reguł
Ta część jest kopiowana do zawężonego pliku reguł każdego agenta, więc musi być zrozumiała sama w sobie:
- Run tests through the project's own script and runner (
npm test,pnpm test:e2e); never install a second runner. - Never commit
.only,fitorfdescribe; make CI refuse them (test/no-focused-tests). - Wait for conditions, never for time: no
waitForTimeout,cy.wait(ms)or sleeps (test/no-fixed-wait). - In Playwright, assert with web-first matchers:
await expect(locator).toBeVisible()(test/web-first-assertions). - Find elements by role and name first, then label and text; test ids last (test/query-by-role).
- Scan key pages and states with axe-core and the WCAG tags you target; automated checks find only part of the problems (test/axe-in-e2e).
- Await every async call:
findBy*,user.*, Playwright actions and assertions. - Each test sets up its own state and passes alone; reset in
beforeEach, notafterEach. - Mock HTTP at the network boundary (MSW,
page.route,cy.intercept); never hit third-party services. - Every test asserts something a user would notice; no tests of implementation details.
Kroki, które wykonuje agent
- Read the profile and
package.jsonscripts to find the runners:vitest.config.*(ortestinvite.config.*),jest.config.*,playwright.config.*,cypress.config.*,.storybook/. - Component test: render, act with
userEvent.setup(), assert on what is on screen (getByRole,findByText); in jsdom or happy-dom, or Vitest browser mode for anything that needs real layout. - End-to-end: one user journey per test, user-facing locators, web-first assertions, test data created through the API in
beforeEachor a setup project for sign-in. - Add an axe scan to the e2e tests of each page type, and again after opening dialogs and menus.
- When a test flakes: find the race (a missing await, a fixed wait, shared state), fix it, and keep retries only as a safety net that is reported.
Jak agent sprawdza swoją pracę
npx github:dawidolko/frontend-skills audit --changedfinds focused tests, fixed waits and one-shot Playwright assertions in.js,.jsxand.tsxtest files.- Run the project's lint with the runner's plugin (
eslint-plugin-vitest,eslint-plugin-jest,eslint-plugin-playwright,eslint-plugin-testing-library) if it is installed. - Run the changed tests alone and several times (
--repeat-each=5in Playwright) before calling them stable.
Sprawdzane audytem
Testy statyczne tych reguł działają w audit; to prawdziwa sesja na przykładowym projekcie:
audit: liczby według wagi, każda reguła z pierwszym miejscem, kod wyjścia.Pliki referencyjne
references/testing.md1636 tokenów