跳到正文
cccskills
免费在 GitHub 公开

testing-changes

Choose and run checks that cover a Verdaccio change, including affected packages, dependent packages, API tests, and relevant client or UI flows. Rebuild first and report coverage limits so passing results reflect the edited code.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Select and run the checks that actually cover a change in the verdaccio monorepo — rebuild the touched packages, run their tests and their dependents' tests, the api integration suite, the e2e CLI battery or the Cypress UI suite when the change is client- or UI-visible — and recognise 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.

集成工具Docker
查看安装方法

适用场景

  • Verifying changes before committing or pushing
  • Selecting tests for affected packages and their dependents
  • Checking package manager or UI behavior
  • Investigating passing tests that missed a change

包含的文件(1)

  • SKILL.md6.3 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Testing a change

Run what the change affects. CI runs the full pipeline (lint, format, build, tests on Node.js 24 and 26, Docker build, the e2e CLI matrix, Cypress) on a ready PR whose diff matches ci.yml's paths: filter — packages/**, tests/**, docker-examples/**, package.json, pnpm-workspace.yaml, vite.lib.config.mjs, .changeset/**, or the workflow file itself. A docs-only or .agents//.claude/-only PR does not trigger CI at all; don't cite a green check that never ran. The local job is fast, honest feedback either way, not a second full gate. What matters is that the run you choose exercises the code you changed.

The one rule: rebuild before you test

Packages import each other through build/ (exports in every package.json), not src. A test in packages/api that imports @verdaccio/store runs against packages/store/build/. After editing store, an api run that skips the rebuild tests the old build and passes without touching your change.

pnpm build                                      # everything, once per checkout
pnpm --filter @verdaccio/store build            # the package you edited
pnpm --filter "@verdaccio/store..." build       # it plus what it depends on

Selecting the run

Find the packages the diff touches, then test them and their dependents:

git diff --name-only origin/master...HEAD | cut -d/ -f1-3 | sort -u

pnpm --filter "[origin/master]" build           # packages changed since master
pnpm --filter "...[origin/master]" test         # those packages and everything that depends on them

Narrower runs, once the touched packages are rebuilt:

pnpm --filter @verdaccio/store test                                # one package
pnpm --filter @verdaccio/store test test/versions.spec.ts          # one file
pnpm --filter @verdaccio/store test test/versions.spec.ts -t 'tag' # one case
pnpm --filter @verdaccio/store test -- --coverage=false            # faster

Always go through the package's test script, not bare vitest: some packages set environment the tests rely on (TZ=utc for logger, ui-theme, ui-components; NODE_ENV=test for memory; a longer timeout for store).

Map the change to the suites that prove it:

Change touchesRun
A helper in core, config, url, tarball, ...That package, then pnpm --filter "...@verdaccio/<pkg>" test for the dependents
A route in packages/api or packages/web@verdaccio/api integration tests (test/integration, supertest against initializeServer)
store, local-storage, proxy (packument, tarball)Those packages, @verdaccio/api, then the e2e CLI battery for the affected client flow
auth, htpasswd, auth-memory, tokens, 2FAThose packages, @verdaccio/api (login, token, tfa, profile specs), e2e for login/publish
config, cli, node-api, verdaccioThose packages, then start the server (pnpm start or node packages/verdaccio/bin/verdaccio)
UI (ui-theme, ui-components, web)@verdaccio/ui-components, @verdaccio/ui-theme, then pnpm e2e:ui:local
Anything a package manager observes./scripts/e2e-cli-local.sh <pm> for each client the change can affect
Plugin interfaces in @verdaccio/typespnpm type-check across the workspace, the bundled plugins' tests

Always finish with pnpm lint and pnpm format:check; the pre-commit hook enforces them on staged files, CI on everything.

End-to-end

The CLI battery is @verdaccio/e2e-cli (repository verdaccio/e2e-tests). Locally:

pnpm build
./scripts/e2e-cli-local.sh npm@11       # also npm@10, npm@12, pnpm@10, pnpm@11, yarn-classic, yarn-modern@4, bun, deno

It starts a fresh registry on port 4873, runs the client scenarios, and cleans up. CI runs the whole matrix; run at least the client the reporter used and npm@11 when a change touches publish, install, tarballs, dist-tags, search, or auth.

The UI battery is Cypress: pnpm e2e:ui:local (headless) or pnpm e2e:ui:local:open. Docker-based flows (pnpm docker, e2e/docker) need a running Docker daemon.

Gotchas that make a run lie

  • Stale build (above). If a test passes when you expected a failure, rebuild the package you changed and run again.
  • Network is blocked. vitest.setup.mjs disallows every host except localhost via nock. Nock: Disallowed net connect means the code under test reached the network; mock the uplink, do not widen the allow-list.
  • A port left behind. A killed e2e run can leave a registry on port 4873 (check with lsof -i :4873), and the next run then tests the wrong process.
  • Global package-manager settings. A user-level minimumReleaseAge or registry override changes what pnpm install and the e2e clients do; a failure that only happens on your machine usually comes from ~/.npmrc or the global pnpm config.
  • fail-fast in CI. A test job failing on Node.js 26 cancels the Node.js 24 job; read the failed log, not the cancelled one.
  • Disabled tests. Files named *.__disabled__.ts and disabled_test/ folders are not run; a pass there proves nothing.

Reporting

Name what you ran and what you did not. "Rebuilt store, ran store and api integration tests plus the e2e battery with npm@11; did not run the UI suite" is an honest report. "Tests pass" after one package's run is not.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Implement Verdaccio fixes, features, or refactoring after checking whether existing settings or plugins already solve the problem. Place changes in the responsible component, reuse helpers, add tests and release notes, and validate affected packages.

中文简介正在准备中。当前显示英语简介。

  • Implementing a bug fix with a regression test
  • Checking existing settings before adding a feature
  • Refactoring code within a defined change
verdaccio/verdaccio1.8万2026年10月19日 更新

plugins

免费

Maintain Verdaccio’s bundled plugins and investigate loading failures using checks that identify resolution, export, construction, or interface problems. Review shared plugin interfaces for compatibility, update affected plugins, and validate fixes with plugin and integration tests.

中文简介正在准备中。当前显示英语简介。

  • Diagnosing why a plugin fails to load
  • Fixing bundled authentication or storage plugins
  • Checking compatibility when changing plugin interfaces
verdaccio/verdaccio1.8万2026年10月19日 更新

pr-labels

免费

Select existing labels for Verdaccio pull requests based on the target release line and the substance of the change. Apply them when authorized, or report exact recommendations when reviewing someone else's PR or lacking permission.

中文简介正在准备中。当前显示英语简介。

  • Adding labels immediately after creating a PR
  • Reviewing missing or incorrect PR labels
  • Choosing labels for a release-line port
verdaccio/verdaccio1.8万2026年10月19日 更新

Guide a Verdaccio change through a pull request, from branch preparation and checks to changelog entries, labels, CI results, and review responses. Track separate pull requests when the fix also belongs on other release lines.

中文简介正在准备中。当前显示英语简介。

  • Preparing and opening a pull request
  • Investigating failed CI checks after a push
  • Addressing review comments and updating the PR
verdaccio/verdaccio1.8万2026年10月19日 更新

Review Verdaccio code changes for security, package manager compatibility, performance, and maintainability. Verify concerns against surrounding code and relevant tests, then report actionable issues with their location, trigger, impact, and supporting evidence.

中文简介正在准备中。当前显示英语简介。

  • Reviewing local changes before opening a pull request
  • Checking security and package manager compatibility
  • Tracing error handling and performance concerns
verdaccio/verdaccio1.8万2026年10月19日 更新

review-pr

免费

Assess an existing Verdaccio pull request by checking code changes, automated checks, review feedback, release notes, and supported release branches. Receive a verified report explaining whether it is ready to merge and what needs attention.

中文简介正在准备中。当前显示英语简介。

  • Reviewing a pull request before merging
  • Rechecking human and automated review feedback
  • Checking release notes and release branch coverage
verdaccio/verdaccio1.8万2026年10月19日 更新

查看 verdaccio 的全部技能

报告此技能的问题