본문으로 건너뛰기
cccskills
무료GitHub에 공개

testing-changes

Run the tests that cover a change in the pnpm repository, in the Rust workspace (pnpm/, pnpr/) or the TypeScript CLI (pnpm11/), and recognize the cases where a scoped run passes without testing anything. Use whenever verifying a change before committing or pushing, or when deciding what to run after an edit.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Testing a change

Run what the change affects. CI runs the full suite on three platforms for every pull request, so the local job is fast feedback, not a second gate. The per-commit checks are in pnpm/CONTRIBUTING.md.

Rust (pnpm/, pnpr/)

Run cargo and just from the repository root; the Rust workspace lives there, not inside pnpm/.

Run just test-affected. It decides three things for you: it selects every pnpr-* crate together, it refuses to scope a change that reaches files every crate compiles against and points at just ready instead, and it runs the smoke profile in place of dependents it did not select. It prints what it selected and what it left out; --help lists its flags.

What it cannot decide is which end-to-end tests exercise your change. Smoke gives breadth across areas, not depth in the one you touched, so for a user-visible change add the suite modules for that area:

just test-affected -- -p pnpm-cli -E 'test(catalog::)'

Each file under crates/cli/tests/suite/ is a module of one test target, so test(<file_stem>::) selects that file's tests.

For anything narrower, node pnpm/scripts/run-rust-tests.mjs takes the same arguments cargo nextest run does — -p <crate> for one crate, -E 'test(<name>)' for one test. Prefer -p over a package() filterset: -p restricts what cargo builds, a filterset only selects among binaries that were built anyway.

Gotchas that make a scoped run lie

  • Run the CLI's tests through run-rust-tests.mjs, not bare cargo nextest. It strips npm_config_* and pnpm_config_* and points XDG_CONFIG_HOME and the auth npmrc at a throwaway directory, as just test does. A bare run lets your own npmrc reach the tests, which fails for you and nobody else.
  • pnpr-* crates must be selected together. Cargo unifies features across the selection, so a lone pnpr-* crate builds without pnpr's default backend features and its backend tests skip silently. just test-pnpr selects the whole set.
  • Snapshots. insta snapshots change only for a reason. Read the diff, then cargo insta review. Never accept blindly.
  • Killed runs leak fixtures. An interrupted run abandons temp trees, each holding a per-test store. just sweep-test-temp clears the ones older than an hour.
  • known_failures modules hold ported tests for unimplemented behavior; just known-failures lists them. A failure there is expected, a pass is not.

Do not reach for nextest's rdeps() to widen a selection. pnpm-cli holds a third of the workspace's tests and sits downstream of nearly every crate, so rdeps() on anything core selects 84% or more of the suite. Restructuring that target is pnpm/pnpm#14984.

TypeScript (pnpm11/)

pnpm --filter <package_name> test                                 # one package
pnpm --filter <package_name> test <file_path>                     # one file
pnpm --filter <package_name> test <file_path> -t <name_pattern>   # one case

The end-to-end tests in pnpm11/pnpm/test/ run the bundled pnpm11/pnpm/dist/pnpm.mjs, not each package's lib/. After changing any TypeScript package, rebuild the bundle before running them:

pnpm --filter pnpm run compile

Skip that and the run tests the previous bundle, passing without ever touching your change.

Both stacks

A bug present in both pnpm v11 and v12 is fixed in both, so it is tested in both. Run the TypeScript test for the scenario and the Rust test for the same scenario before calling the fix done.

Reporting

Name what you ran. "Ran pnpm-lockfile plus the catalog e2e module; did not run the full workspace suite" is an honest report. "Tests pass" after a single-crate run is not.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when a user says "add a ty diagnostic", "write this new ty diagnostic", "change a ty error message", "review ty diagnostics", or asks to add, update, or review ty checks, diagnostic messages, subdiagnostics, or concise output behavior.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

Use when adding A2UI rendering to any AG-UI-supported framework or custom AG-UI application, scaffolding an AG-UI app that should render A2UI, adapting an AG-UI integration to emit A2UI surfaces, or wiring the AG-UI A2UI middleware/toolkit with a compatible renderer.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

Evaluate an open source project's AGENTS.md and produce a corpus entry for the /agents-md directory. Use when adding a project to the directory, refreshing an existing entry, or running a batch of candidate repositories.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

Execute Anarlog work immediately while recording issues, decisions, progress, and lessons in Linear. Use for Anarlog repository or Anarlog desktop, web, mobile, and API work, including related worktrees and ANLG issues. Explicit brainstorming stays discussion-first. Do not use for unrelated repositories or meeting-data queries.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

Use only for reviewing completed Biome PRs, branches, commit ranges, diffs, or working trees against business logic and requirements. Excludes broad code-quality and process audits, triage, reproduction, and implementation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

modem-dev/ossrules622026년 9월 21일 업데이트

modem-dev의 스킬 모두 보기

이 스킬의 문제 신고