verdaccio/e2e/ui/cypress.config.ts

72 lines
2.3 KiB
TypeScript

import { defineConfig } from 'cypress';
import getPort from 'get-port';
import { join } from 'path';
import { Registry, ServerQuery } from 'verdaccio';
import { parseConfigFile } from '@verdaccio/config';
import { HEADERS, fileUtils } from '@verdaccio/core';
import { generatePackageMetadata } from '@verdaccio/test-helper';
let registry1;
export default defineConfig({
retries: {
runMode: 5,
openMode: 0,
},
// Enable this to see debug screenshots on test failure
// screenshotOnRunFailure: true,
// Enable this to see debug video on test failure
// video: true,
e2e: {
setupNodeEvents(on) {
on('before:run', async () => {
const configProtected = parseConfigFile(join(__dirname, './config/config.yaml'));
const registry1storage = await fileUtils.createTempStorageFolder('storage-1');
const protectedRegistry = await Registry.fromConfigToPath({
...configProtected,
storage: registry1storage,
});
const port = await getPort();
registry1 = new Registry(protectedRegistry.configPath, {
createUser: true,
credentials: { user: 'test', password: 'test' },
port,
});
await registry1.init();
});
on('after:run', async () => {
registry1.stop();
});
on('task', {
publishScoped({ pkgName }) {
const scopedPackageMetadata = generatePackageMetadata(pkgName, '1.0.6');
const server = new ServerQuery(registry1.getRegistryUrl());
server
.putPackage(scopedPackageMetadata.name, scopedPackageMetadata, {
[HEADERS.AUTHORIZATION]: `Bearer ${registry1.getToken()}`,
})
.then(() => {});
return null;
},
publishProtected({ pkgName }) {
const protectedPackageMetadata = generatePackageMetadata(pkgName, '5.0.5');
const server = new ServerQuery(registry1.getRegistryUrl());
server
.putPackage(protectedPackageMetadata.name, protectedPackageMetadata, {
[HEADERS.AUTHORIZATION]: `Bearer ${registry1.getToken()}`,
})
.then(() => {});
},
registry() {
return {
registryUrl: registry1.getRegistryUrl(),
port: registry1.getPort(),
};
},
});
},
},
});