Skip to content
cccskills
FreePublished on 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.

OriginalShow the original description

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.

Works withDocker
See how to install

Good for

  • 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

Files included (1)

  • SKILL.md6.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

implement-change

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

plugins

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

pr-labels

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

pull-requests

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

review-code

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

review-pr

FreeSummary

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/verdaccio17.9KUpdated Oct 18, 2026

See all skills by verdaccio

Report a problem with this skill