원클릭으로
e2e
Playwright E2E testing patterns. Use when working on files in tests/e2e/.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Playwright E2E testing patterns. Use when working on files in tests/e2e/.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
UI component patterns for React 19, shadcn/ui, and Tailwind. Use when working on files in src/components/.
Loro CRDT state management with loro-mirror. Use when working on files in src/lib/crdt/.
CSV and OFX transaction import parsing. Use when working on files in src/lib/import/.
Real-time sync with Supabase, Loro CRDT, and IndexedDB. Use when working on files in src/lib/sync/.
tRPC v11 API layer with Zod and Ed25519 auth. Use when working on files in src/server/.
Client-side cryptography with libsodium. Use when working on files in src/lib/crypto/.
| name | e2e |
| description | Playwright E2E testing patterns. Use when working on files in tests/e2e/. |
test.step() to existing tests over creating new tests - keeps suite
fast and avoids duplicating slow setup flowspnpm playwright test --reporter=line --max-failures=1 2>&1
pnpm playwright test --workers=4 --repeat-each=5 --reporter=line 2>&1 # flaky detection
NEVER use --debug or --ui - opens GUI, blocks forever. This is a common mistake.
getByRole()getByTestId()getByLabel()getByText(/regex/i)beforeEach, don't depend on prior test statetoBeEnabled(), not waitForTimeout()Import from tests/e2e/helpers/:
createNewIdentity(page) - full new user flowgoToTransactions(page), goToTags(page), etc.Create helpers for multi-step reused flows. Don't wrap single Playwright calls.
test.describe("Feature", () => {
test.beforeEach(async ({ page }) => {
await createNewIdentity(page);
await goToFeature(page);
});
test("should do thing", async ({ page }) => {
// Arrange → Act → Assert
});
});