mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-06-10 08:06:38 +00:00
Test storage interfaces and LevelStorage
This commit is contained in:
parent
3e93d294bf
commit
a3ea2e1165
@ -2,7 +2,7 @@ import { strictEqual, notStrictEqual } from 'assert'
|
||||
import { rimraf } from 'rimraf'
|
||||
import { copy } from 'fs-extra'
|
||||
import { Log, Identities, KeyStore } from '../src/index.js'
|
||||
import { IPFSBlockStorage, MemoryStorage, LRUStorage, ComposedStorage } from '../src/storage/index.js'
|
||||
import { IPFSBlockStorage, MemoryStorage, LRUStorage, ComposedStorage, LevelStorage } from '../src/storage/index.js'
|
||||
import testKeysPath from './fixtures/test-keys-path.js'
|
||||
import createHelia from './utils/create-helia.js'
|
||||
|
||||
@ -33,6 +33,7 @@ describe('Storages', function () {
|
||||
await keystore.close()
|
||||
}
|
||||
|
||||
await rimraf('./level')
|
||||
await rimraf('./ipfs1')
|
||||
await rimraf(keysPath)
|
||||
})
|
||||
@ -41,26 +42,56 @@ describe('Storages', function () {
|
||||
const amount = 100
|
||||
const log1 = await Log(testIdentity, { logId: 'A', entryStorage: storage })
|
||||
const log2 = await Log(testIdentity, { logId: 'A', entryStorage: storage })
|
||||
|
||||
for (let i = 0; i < amount; i++) {
|
||||
await log1.append('hello' + i)
|
||||
await log2.append('hello' + i)
|
||||
}
|
||||
|
||||
const values = await log1.values()
|
||||
const heads = await log1.heads()
|
||||
|
||||
strictEqual(heads.length, 1)
|
||||
strictEqual(values.length, amount)
|
||||
|
||||
await log1.storage.clear()
|
||||
await log2.storage.clear()
|
||||
|
||||
const result = []
|
||||
for await (const v of log1.storage.iterator()) {
|
||||
result.push(v)
|
||||
}
|
||||
for await (const v of log2.storage.iterator()) {
|
||||
result.push(v)
|
||||
}
|
||||
|
||||
strictEqual(result.length, 0)
|
||||
|
||||
await log1.storage.close()
|
||||
await log2.storage.close()
|
||||
}
|
||||
|
||||
const testInterface = (storage) => {
|
||||
notStrictEqual(storage.put, undefined)
|
||||
notStrictEqual(storage.get, undefined)
|
||||
notStrictEqual(storage.del, undefined)
|
||||
notStrictEqual(storage.iterator, undefined)
|
||||
notStrictEqual(storage.merge, undefined)
|
||||
notStrictEqual(storage.clear, undefined)
|
||||
notStrictEqual(storage.close, undefined)
|
||||
}
|
||||
|
||||
describe('LRUStorage', () => {
|
||||
it('tests the storage', async () => {
|
||||
const storage = await LRUStorage()
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('has correct interface', async () => {
|
||||
const storage = await LRUStorage()
|
||||
testInterface(storage)
|
||||
})
|
||||
})
|
||||
|
||||
describe('MemoryStorage', () => {
|
||||
@ -69,6 +100,11 @@ describe('Storages', function () {
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('has correct interface', async () => {
|
||||
const storage = await MemoryStorage()
|
||||
testInterface(storage)
|
||||
})
|
||||
})
|
||||
|
||||
describe('IPFSBlockStorage', () => {
|
||||
@ -77,9 +113,27 @@ describe('Storages', function () {
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('has correct interface', async () => {
|
||||
const storage = await IPFSBlockStorage({ ipfs })
|
||||
testInterface(storage)
|
||||
})
|
||||
})
|
||||
|
||||
describe('Composed Storages', () => {
|
||||
describe('LevelStorage', () => {
|
||||
it('tests the storage', async () => {
|
||||
const storage = await LevelStorage()
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('has correct interface', async () => {
|
||||
const storage = await LevelStorage()
|
||||
testInterface(storage)
|
||||
})
|
||||
})
|
||||
|
||||
describe('Composed Storage', () => {
|
||||
it('tests Memory + IPFSBlockStorage composition', async () => {
|
||||
const storage1 = await MemoryStorage()
|
||||
const storage2 = await IPFSBlockStorage({ ipfs })
|
||||
@ -88,6 +142,14 @@ describe('Storages', function () {
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('tests Memory + LevelStorage composition', async () => {
|
||||
const storage1 = await MemoryStorage()
|
||||
const storage2 = await LevelStorage()
|
||||
const storage = await ComposedStorage(storage1, storage2)
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('tests LRU + IPFSBlockStorage composition', async () => {
|
||||
const storage1 = await LRUStorage({ size: -1 })
|
||||
const storage2 = await IPFSBlockStorage({ ipfs })
|
||||
@ -111,5 +173,12 @@ describe('Storages', function () {
|
||||
notStrictEqual(storage, undefined)
|
||||
await runTestWithStorage(storage)
|
||||
})
|
||||
|
||||
it('has correct interface', async () => {
|
||||
const storage1 = await LRUStorage()
|
||||
const storage2 = await MemoryStorage()
|
||||
const storage = await ComposedStorage(storage1, storage2)
|
||||
testInterface(storage)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user