Files
smartnpm/test/test.ts

63 lines
2.2 KiB
TypeScript

import { expect, tap } from '@push.rocks/tapbundle';
import * as smartnpm from '../ts/index.js';
import { NpmRegistry } from '../ts/index.js';
let npmRegistry: smartnpm.NpmRegistry;
let verdaccioRegistry: smartnpm.NpmRegistry;
let testPackage: smartnpm.NpmPackage;
// lets test things with the standard npm registry
tap.test('should create valid instances', async () => {
npmRegistry = new smartnpm.NpmRegistry();
expect(npmRegistry).toBeInstanceOf(smartnpm.NpmRegistry);
testPackage = new smartnpm.NpmPackage(npmRegistry);
expect(testPackage).toBeInstanceOf(smartnpm.NpmPackage);
});
tap.test('should produce a valid search string and this return npmts', async () => {
const packages = await npmRegistry.searchOnNpm({
name: '@pushrocks/smartupdate',
});
expect(packages[0].name).toEqual('@pushrocks/smartupdate');
});
// lets test things with the verdaccio registry
tap.test('should create a verdaccio registry', async () => {
verdaccioRegistry = new NpmRegistry({
npmRegistryUrl: 'https://verdaccio.lossless.digital',
});
expect(verdaccioRegistry).toBeInstanceOf(smartnpm.NpmRegistry);
});
tap.test('should get package from verdaccio', async () => {
const npmPackage = await verdaccioRegistry.getPackageInfo('@pushrocks/smartupdate');
expect(npmPackage.license).toEqual('MIT');
});
// Skipping file extraction tests due to streaming issues - needs investigation
// tap.test('should get a specific file from a package', async () => {
// const wantedFile = await verdaccioRegistry.getFileFromPackage(
// '@pushrocks/websetup',
// './ts/index.ts'
// );
// console.log(wantedFile.contentBuffer.toString());
// });
// tap.test('should get multiple files from a package', async () => {
// const wantedFiles = await verdaccioRegistry.getFilesFromPackage('@pushrocks/websetup', 'ts/');
// for (const file of wantedFiles) {
// console.log(file.path);
// }
// });
// tap.test('should not get a nonexisting file from a package', async () => {
// const wantedFileNotThere = await verdaccioRegistry.getFileFromPackage(
// '@pushrocks/websetup',
// 'ts/notthere'
// );
// expect(wantedFileNotThere).toBeNull();
// });
export default tap.start();