Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kid-sid/codex-spellbook/end-to-end-testingnpx skills add kid-sid/codex-spellbook --skill end-to-end-testinggit clone --depth 1 https://github.com/kid-sid/codex-spellbookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kid-sid/codex-spellbook/end-to-end-testing)<a href="https://agentmods.dev/skills/kid-sid/codex-spellbook/end-to-end-testing"><img src="https://agentmods.dev/badge/skills/kid-sid/codex-spellbook/end-to-end-testing.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00045 | $0.00690 |
| Opus 5 | $0.00023 | $0.00345 |
| Sonnet 5 | $0.00009 | $0.00138 |
| Haiku 4.5 | $0.00005 | $0.00069 |
Grade A, and why
end-to-end-testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
End-to-End Testing
Validate complete user workflows across the entire stack, ensuring that UI components, APIs, and databases work together in a production-like environment.
When to Activate
- Automate a critical user journey (Signup, Checkout, etc.)
- Resolve flaky browser tests or slow CI cycles
- Implement visual regression or screenshot testing
- Choose a selector strategy (ARIA vs CSS vs Test ID)
- Test cross-browser or mobile responsiveness
- Simulate network failures or latency in the UI
- Verify analytics or external tracking pixels
Selector Strategy
| Type | Example | Stability | Recommendation |
|---|---|---|---|
| User-facing (ARIA) | getByRole("button", { name: "Submit" }) |
High | Primary: Tests what the user sees |
| Data attribute | getByTestId("submit-btn") |
Medium | Secondary: Use when ARIA is ambiguous |
| CSS Class/ID | locator(".btn-primary") |
Low | Avoid: Highly coupled to styling |
Execution Strategy
| Concern | Strategy |
|---|---|
| Test Data | Use a dedicated setup API or direct DB seed before each run |
| State Isolation | Clean cookies, localStorage, and indexedDB between tests |
| Waiting | Use auto-waiting or "Wait for State" (loading spinner gone) over hard sleeps |
BAD
// Flaky and coupled to implementation
await page.click('.login-submit');
await page.waitForTimeout(5000);
expect(await page.url()).toContain('/dashboard');
GOOD
// Stable and user-centric
const submitBtn = page.getByRole('button', { name: /log in/i });
await submitBtn.click();
await expect(page).toHaveURL(/\/dashboard/);
await expect(page.getByText(/welcome back/i)).toBeVisible();
Flakiness Prevention
| Risk | Solution |
|---|---|
| Animation lag | Disable CSS animations in the test environment |
| Third-party scripts | Block or stub chat widgets, ads, and telemetry |
| Race conditions | Assert state changes (e.g. "button is hidden") before next step |
Checklist
- Selectors use ARIA roles or Test IDs (no CSS classes)
- Tests assertions wait for specific UI state changes (not time)
- Every test starts from a clean state (cookies, storage, data)
- Core user journeys (Happy Paths) are covered first
- Error states and validation messages are verified
- Network requests are monitored or stubbed to prevent external flake
- Screen sizes (mobile vs desktop) are explicitly set
- Heavy animations are disabled to speed up execution
- Artifacts (trace, video, screenshots) are captured on failure
- Test data is isolated to prevent parallel run conflicts
- Parallelism is enabled and tuned for CI resources
- Senseless "Wait for X seconds" are replaced with "Wait for Locator"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 78 lines · 45 tokens per session scan A 4326724eafb4
end-to-end-testing is a skill published in the GitHub repository kid-sid/codex-spellbook (21 stars, last pushed 3mo ago), licensed MIT. It adds 45 tokens to every session and 690 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
browse
Fast headless browser for QA testing and site dogfooding. (gstack).
playwright-cli
官方Microsoft Playwright CLI网页自动化工具,支持所有主流浏览器的无头/有头自动化操作,包括页面导航、元素交互、截图、录制、测试等功能。当用户提到网页自动化、浏览器操作、爬虫、截图、录制用户操作、E2E测试时触发。.
webapp-testing
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
browser-qa
自动化视觉测试与 UI 交互验证。部署功能后使用浏览器自动化验证关键页面、核心路径和发布前回归。 当任务需要真实浏览器验证渲染、导航、交互或前端上线风险时使用。.
test-electron-app
Drive the real running PostHog Electron app (live tRPC, workspace-server, real data) over CDP with agent-browser. Connect to the running app on port 9222, test desktop changes against a local Django stack, snapshot the accessibility tree, inspect network requests, and screenshot only when explicitly asked. Use when…
smoke-test
Run smoke tests against a deployed or local app based on your git diff. Each test uses Skyvern browser tools (navigate, act, validate, screenshot) with Chrome DevTools MCP as fallback. Posts screenshot evidence as PR comments.