1
0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-11-13 03:35:52 +01:00
verdaccio/e2e/cli
renovate[bot] 3384862846
fix(deps): update dependency npm to v9.5.1 (#3650)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-25 09:15:17 +01:00
..
cli-commons chore: update versions (6-next) (#3620) 2023-02-23 13:13:33 +01:00
e2e-npm6 chore: update versions (6-next) (#3611) 2023-02-14 21:58:20 +01:00
e2e-npm7 chore: update versions (6-next) (#3611) 2023-02-14 21:58:20 +01:00
e2e-npm8 fix(deps): update dependency npm to v8.19.4 (#3627) 2023-02-19 00:39:37 +01:00
e2e-npm9 fix(deps): update dependency npm to v9.5.1 (#3650) 2023-02-25 09:15:17 +01:00
e2e-pnpm6 chore: update dependencies (#3621) 2023-02-18 22:44:45 +01:00
e2e-pnpm7 chore: update dependencies (#3621) 2023-02-18 22:44:45 +01:00
e2e-pnpm8 chore: add pnpm 8 e2e 2023-02-25 08:02:13 +01:00
e2e-yarn1 chore: update versions (6-next) (#3611) 2023-02-14 21:58:20 +01:00
e2e-yarn2 chore: update versions (6-next) (#3611) 2023-02-14 21:58:20 +01:00
e2e-yarn3 fix(deps): update dependency @yarnpkg/cli-dist to v3.4.1 (#3629) 2023-02-19 01:16:11 +01:00
e2e-yarn4 chore: update dependencies (#3621) 2023-02-18 22:44:45 +01:00
jest.config.js e2e: npm search and ping commands (#3386) 2022-09-19 23:10:38 +02:00
README.md chore: add pnpm 8 e2e 2023-02-25 08:02:13 +01:00

E2E CLI Testing

What is included on these test?

  • Default configuration only
  • Test with all popular package managers:
  • yarn classic and yarn modern (2, 3, 4 RC)
  • pnpm 6, 7
  • npm 6, 7, 8 and 9

Commands Tested

cmd npm6 npm7 npm8 npm9 pnpm6 pnpm7 pnpm8 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

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)