0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-16 21:56:25 -05:00
verdaccio/packages/plugins/memory/test/local-memory.spec.ts
Juan Picado 54606976c3
chore(website): improve api docs part 2 (#3431)
* chore: remove unused package

* Update pnpm-lock.yaml

* chore: improve types in general plugins
2022-10-11 23:06:55 +02:00

74 lines
2.1 KiB
TypeScript

import { join } from 'path';
import { Config, parseConfigFile } from '@verdaccio/config';
import { pluginUtils } from '@verdaccio/core';
import { logger, setup } from '@verdaccio/logger';
import LocalMemory from '../src/index';
import { ConfigMemory } from '../src/local-memory';
import { DataHandler } from '../src/memory-handler';
setup();
const config = new Config(parseConfigFile(join(__dirname, 'config.yaml')));
const defaultConfig = { logger, config };
describe('memory unit test .', () => {
describe('LocalMemory', () => {
test('should create an LocalMemory instance', () => {
const localMemory: pluginUtils.Storage<ConfigMemory> = new LocalMemory(
{ limit: 10 },
{ ...defaultConfig, config }
);
expect(localMemory).toBeDefined();
});
test('should create add a package', (done) => {
const localMemory: pluginUtils.Storage<ConfigMemory> = new LocalMemory(
{ limit: 10 },
{ ...defaultConfig, config }
);
localMemory.add('test').then(() => {
localMemory.get().then((data: DataHandler) => {
expect(data).toHaveLength(1);
done();
});
});
});
test('should reach max limit', (done) => {
const localMemory: pluginUtils.Storage<ConfigMemory> = new LocalMemory(
{ limit: 2 },
defaultConfig
);
localMemory.add('test1').then(() => {
localMemory.add('test2').then(() => {
localMemory.add('test3').catch((err) => {
expect(err).not.toBeNull();
expect(err.message).toMatch(/Storage memory has reached limit of limit packages/);
done();
});
});
});
});
test('should remove a package', (done) => {
const pkgName = 'test';
const localMemory: pluginUtils.Storage<ConfigMemory> = new LocalMemory(
{},
{ ...defaultConfig, config }
);
localMemory.add(pkgName).then(() => {
localMemory.remove(pkgName).then(() => {
localMemory.get().then((data) => {
expect(data).toHaveLength(0);
done();
});
});
});
});
});
});