원클릭으로
theodore-e2e
Writes and maintains Playwright end-to-end tests for the Theodore editor (theodore-js playground).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Writes and maintains Playwright end-to-end tests for the Theodore editor (theodore-js playground).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Release Theodore by bumping theodore/package.json, pushing and merging the release commit, creating and pushing the release tag, using $changelog for GitHub release notes, waiting for npm publication, then bumping theodore-js consumers in @theodore/landing and examples package.json files. Use when preparing or completing a Theodore npm release.
Connect Codex to Google Search Console and diagnose SEO/indexing issues for Theodore landing pages. Use when the user asks to set up Search Console API access, repeat the OAuth flow, inspect sitemap/indexing/search analytics data, run URL Inspection API checks, or investigate landing-site SEO problems such as canonical tags, robots.txt, sitemap status, HTTPS/www redirects, and low search traffic.
Create GitHub releases from the latest pushed Git tag by comparing commit messages from the prior tag to the latest tag. Use when Codex is asked to draft, generate, or publish a GitHub release changelog for a tagged release, especially for Theodore/npm releases.
SOC 직업 분류 기준
| name | theodore-e2e |
| description | Writes and maintains Playwright end-to-end tests for the Theodore editor (theodore-js playground). |
theodore-js workspace package at theodore/.theodore/e2e/**/*.spec.ts; shared helpers in theodore/e2e/utils.ts and constants in theodore/e2e/constant.ts.theodore/playwright.config.ts — baseURL http://localhost:3000, webServer starts the playground (rsbuild dev on port 3000).Run from theodore/ (the package dir):
pnpm test:e2e # local: headed Chromium unless CI env
pnpm test:e2e:ci # CI-style: CI=1, headless, retries
pnpm test:e2e:install # chromium + deps once
theodore/e2e/utils.ts)installPageErrorTracking: call once at the start (before page.goto) and keep the returned array for the whole test.
expectNoPageErrors: every test must call this exactly once, as the final statement of the test body (after all interactions and content assertions). Do not call it multiple times mid-flow.
const pageErrors = installPageErrorTracking(page);
await page.goto('/');
// ... exercise the app, assert preview / UI ...
expectNoPageErrors(pageErrors);
undoShortcut(): Meta+Z on macOS, Control+Z elsewhere.expectExactText(locator, text): Asserts preview DOM text equals the exact logical string returned by convertTreeToText. Empty editor text is ""; paragraph breaks appear only between paragraphs, so three Enter presses in an empty editor serialize to "\n\n\n".Prefer data-testid stable hooks (e.g. editor, plain-text-preview) over fragile CSS/text when available. Placeholder visibility uses shared PLACEHOLDER from ./constant.ts where applicable.
pressSequentially with modest delay for typing-heavy flows if flakes appear.await delay(ms) from node:timers/promises if the suite already does so nearby — one pattern is tens of milliseconds to let layout/selection sync.undoShortcut() press so every undo step has an explicit expected editor state.Repo ESLint overrides theodore/e2e/**/*.ts so playwright/expect-expect counts expect, expectNoPageErrors, and expectExactText as assertions. A single trailing expectNoPageErrors(pageErrors) is enough when combined with primary assertions (expectExactText, visibility checks). Use those helpers rather than weakening the rule.