mirror of
https://github.com/verdaccio/verdaccio.git
synced 2025-02-17 23:45:29 -05:00
test(local-storage): isolate tests & replace the hacky test
This commit is contained in:
parent
e62ef8df99
commit
f7685f781e
1 changed files with 29 additions and 18 deletions
|
@ -2,7 +2,6 @@
|
|||
|
||||
import rimRaf from 'rimraf';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import LocalStorage from '../../../src/lib/local-storage';
|
||||
import AppConfig from '../../../src/lib/config';
|
||||
// $FlowFixMe
|
||||
|
@ -27,6 +26,13 @@ describe('LocalStorage', () => {
|
|||
const pkgNameScoped = `@scope/${pkgName}-scope`;
|
||||
const tarballName: string = `${pkgName}-add-tarball-1.0.4.tgz`;
|
||||
const tarballName2: string = `${pkgName}-add-tarball-1.0.5.tgz`;
|
||||
|
||||
const getStorage = (LocalStorageClass = LocalStorage) => {
|
||||
const config: Config = new AppConfig(configExample);
|
||||
config.self_path = path.join('../partials/store');
|
||||
return new LocalStorageClass(config, Logger.logger);
|
||||
}
|
||||
|
||||
const getPackageMetadataFromStore = (pkgName: string) => {
|
||||
return new Promise((resolve) => {
|
||||
storage.getPackageMetadata(pkgName, (err, data ) => {
|
||||
|
@ -78,10 +84,7 @@ describe('LocalStorage', () => {
|
|||
};
|
||||
|
||||
beforeAll(() => {
|
||||
const config: Config = new AppConfig(configExample);
|
||||
config.self_path = path.join('../partials/store');
|
||||
|
||||
storage = new LocalStorage(config, Logger.logger);
|
||||
storage = getStorage();
|
||||
});
|
||||
|
||||
test('should be defined', () => {
|
||||
|
@ -254,15 +257,24 @@ describe('LocalStorage', () => {
|
|||
const metadata = JSON.parse(readMetadata('metadata-update-versions-tags'));
|
||||
const pkgName = 'add-update-versions-test-1';
|
||||
const version = '1.0.2';
|
||||
beforeAll(async () => {
|
||||
await addPackageToStore(pkgName, generatePackageTemplate(pkgName));
|
||||
await addNewVersion(pkgName, '1.0.1');
|
||||
await addNewVersion(pkgName, version);
|
||||
let _storage;
|
||||
beforeEach(done => {
|
||||
class MockLocalStorage extends LocalStorage {}
|
||||
// $FlowFixMe
|
||||
MockLocalStorage.prototype._writePackage = jest.fn(LocalStorage.prototype._writePackage)
|
||||
_storage = getStorage(MockLocalStorage);
|
||||
rimRaf(path.join(configExample.storage, pkgName), async () => {
|
||||
await addPackageToStore(pkgName, generatePackageTemplate(pkgName));
|
||||
await addNewVersion(pkgName, '1.0.1');
|
||||
await addNewVersion(pkgName, version);
|
||||
done();
|
||||
})
|
||||
})
|
||||
|
||||
test('should update versions from external source', async (done) => {
|
||||
storage.updateVersions(pkgName, metadata, (err, data) => {
|
||||
_storage.updateVersions(pkgName, metadata, (err, data) => {
|
||||
expect(err).toBeNull();
|
||||
expect(_storage._writePackage).toHaveBeenCalledTimes(1);
|
||||
expect(data.versions['1.0.1']).toBeDefined();
|
||||
expect(data.versions[version]).toBeDefined();
|
||||
expect(data.versions['1.0.4']).toBeDefined();
|
||||
|
@ -279,14 +291,13 @@ describe('LocalStorage', () => {
|
|||
});
|
||||
|
||||
test('should not update if the metadata match', done => {
|
||||
const metadataPath = path.join(configExample.storage, pkgName, 'package.json')
|
||||
const prevStat = fs.statSync(metadataPath)
|
||||
storage.updateVersions(pkgName, metadata, (err, data) => {
|
||||
expect(err).toBeNull()
|
||||
const nextStat = fs.statSync(metadataPath)
|
||||
expect(nextStat).toHaveProperty('ctime', prevStat.ctime)
|
||||
expect(nextStat).toHaveProperty('mtime', prevStat.mtime)
|
||||
done()
|
||||
_storage.updateVersions(pkgName, metadata, e => {
|
||||
expect(e).toBeNull()
|
||||
_storage.updateVersions(pkgName, metadata, err => {
|
||||
expect(err).toBeNull()
|
||||
expect(_storage._writePackage).toHaveBeenCalledTimes(1);
|
||||
done()
|
||||
})
|
||||
})
|
||||
})
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue