For 5.x versions, check
5.x
branch For 6.x versions, check6.x
branch
What is included on these test?
- Test the UI fo latest master branch docker image
It uses the image
verdaccio/verdaccio:nightly-master
, latest6.x
branch changes
- nginx proxy
- apache proxy
- using plugins
All docker test are run with GitHub Actions
It uses the latest
npmjs
version published
- Default configuration only
- Test with all popular package managers
cmd | npm6 | npm7 | npm8 | npm9 | pnpm6 | pnpm7 | pnpm8 | pnpm9 | yarn1 | yarn2 | yarn3 | yarn4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
deprecate | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
ping | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
search | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
star | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
stars | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⛔ | ⛔ | ⛔ | ⛔ |
dist-tag | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
notes:
- yarn search cmd exist in modern but, it do not uses the search registry endpoint.
- yarn modern has two info commands, the one used here is
yarn npm info
❌ = no tested ✅ = tested ⛔ = no supported
Every package manager + version is a package in the monorepo.
The package @verdaccio/test-cli-commons
contains helpers used for each package manager.
import { addRegistry, initialSetup, prepareGenericEmptyProject } from '@verdaccio/test-cli-commons';
The registry can be executed with the following commands, the port is automatically assigned.
// setup
const setup = await initialSetup();
registry = setup.registry;
await registry.init();
// teardown
registry.stop();
The full url can be get from registry.getRegistryUrl()
. The yarn modern does not allows the --registry
so need a more complex step, while others is just enough adding the following to every command.
await yarn({ cwd: tempFolder }, 'install', ...addRegistry(registry.getRegistryUrl()));
The most of the command allow return output in JSON format which helps with the expects.
const resp = await yarn(
{ cwd: tempFolder },
'audit',
'--json',
...addRegistry(registry.getRegistryUrl())
);
const parsedBody = JSON.parse(resp.stdout as string);
expect(parsedBody.type).toEqual('auditSummary');
Every command should test either console output or in special cases look up the storage manually.
- Anything is unrelated with client commands usage, eg: (auth permissions, third party integrations, hooks, plugins)