mirror of
https://github.com/verdaccio/verdaccio.git
synced 2024-11-13 03:35:52 +01:00
7c9561b019
* build: update @babel/* devDeps * build(ui-theme): update terser-webpack-plugin devDep * build(e2e-cli): update npm & pnpm latest deps published yesterday * build(ui-theme): update react-router-dom devDep * build(standalone/ui-theme): update webpack devDev published today * build(memory): update memfs dep published yesterday * build(active-directory): update dep activedirectory2 major version * build: remove currently unused devDep @types/lowdb * build(fastify-migration/hooks/local-storage/mock/node-api/verdaccio-htpasswd): update dep core-js * build: remove @commitlint/* devDeps no longer used in master * build(ui-theme): update @testing-library/react devDep major version |
||
---|---|---|
.. | ||
config | ||
projects | ||
setup | ||
test_bk | ||
utils | ||
.babelrc | ||
.eslintrc | ||
CHANGELOG.md | ||
env_babel.js | ||
env_setup.js | ||
env_teardown.js | ||
jest.config.e2e.cli.js | ||
LICENSE | ||
package.json | ||
README.md | ||
tsconfig.json |
E2E CLI Testing
What is included on these test?
- Default configuration only
- Basic commands eg (
install / add
,info
,publish
). - Test with 3 package managers (
yarn classic
,pnpm
andnpm@7
)
How it works?
On run test suites, there is a global setup where will install the local source code of verdaccio in a temporary folder. Each suite will install.
spawn
a registry on port6001
using_bootstrap_verdaccio.yaml
which block any local package being fetched from remote upstream.- Publish local project to the spawned registry (with global
pnpm
)
The published
verdaccio
should be fetch by each suite to ensure reliability of each test.
How to write test?
Each of the suite must use a package manager command (eg: npm install
) and validate the output according what the
user see, either verifying the outcome in JSON form, run a command (eg: jest ..
) and the expected result.
Each Test should start with the initial setup, this step does the following
beforeAll
: Install verdaccio to the suite context that returns aSetup
object.afterAll
: Stop the child process that runs verdaccio.
beforeAll(async () => {
setup = await initialSetup(tempRootFolder, port);
console.log('--setup', setup.install);
});
stop the process is the final step that should occur in every suite.
afterAll(async () => {
setup.child.kill();
});
What should not included on these tests?
- Anything is unrelated with client commands usage, eg: (auth permissions, third party integrations, hooks, plugins)