mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-12-30 22:34:10 -05:00
8adee83d51
* test: add e2e for install * chore: e2e for install * chore: fix test
2.1 KiB
2.1 KiB
E2E CLI Testing
What is included on these test?
- Default configuration only
- Test with all popular package managers (
yarn classic
andyarn modern (2,3, 4)
,pnpm 6,7
andnpm 6, 7 and 8
)
Commands Tested
cmd | npm6 | npm7 | npm8 | pnpm6 | pnpm7 | yarn1 | yarn2 | yarn3 | yarn4 |
---|---|---|---|---|---|---|---|---|---|
publish | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
info | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
audit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
install | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
How it works?
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.
What should not included on these tests?
- Anything is unrelated with client commands usage, eg: (auth permissions, third party integrations, hooks, plugins)