本文へ移動
cccskills
無料GitHub で公開

testing-changes

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.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.3 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Implement a verdaccio bug fix, feature, or refactor — establish the affected release lines, check whether existing configuration, package-access rules, plugins, or uplink options already solve it, put the change in the layer that owns it, reuse existing helpers, add tests and a changeset, and validate. Use when asked to implement a change in this repository.

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

plugins

無料

Maintain the plugins bundled in this repository (htpasswd, local-storage, auth-memory, memory, audit, package-filter, ui-theme) and the plugin contracts in @verdaccio/core — fix a bundled plugin, change a pluginUtils interface safely, diagnose why a plugin does not load, or verify a plugin with @verdaccio/plugin-verifier. Use when a task touches packages/plugins, packages/loaders, pluginUtils, or a plugin loading problem. Requests to add a new bundled plugin are gated on an accepted discussion thread; this skill says how to handle them.

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

pr-labels

無料

Choose and apply the labels for a verdaccio/verdaccio pull request — exactly one release-line label plus content labels from the repository's existing taxonomy (typically one to three, more for a genuinely large multi-topic PR), never security, and AI assisted only on the author's own PR. Use right after gh pr create, when editing a PR, when reviewing a PR whose labels are missing or wrong, or when asked which labels a change should carry.

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

Take a change through a verdaccio/verdaccio pull request — branch, checks, changeset, title, body, labels, draft-to-ready, then the CI and review rounds after every push, plus the port PRs to other release lines. Use when opening a PR, after pushing to one, when a check fails, or when review comments arrive.

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

Review a verdaccio diff, branch, or pull request against the repository review guide (security first, then npm-client compatibility, performance, product fit, maintainability), verify each finding against the code, and report actionable issues. Use for code reviews and for reviewing your own changes before or during a PR workflow.

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

review-pr

無料

Review an existing verdaccio/verdaccio pull request end to end — description, diff, review threads, CI, labels, changeset, release-line coverage — verify the findings, and report them; optionally fix them on the PR branch when asked. Use when given a PR number or URL to review, re-review, or "review and fix".

日本語の概要は準備中です。原文の説明を表示しています。

verdaccio/verdaccio1.8万2026年10月9日 更新

verdaccio のスキルをすべて見る

このスキルの問題を報告する