orbitdb/test/v0-open-load.js
haad a063b3fb4a Refactor OrbitDB
Fix sync
Fix linter
Fix tests
Clean up
Set default references count to 0
Fix sync
Use address instead of databaseId
Sync protocol
Keep references to open databases in OrbitDB
Fix append benchmark
Initial version of heads exchange
Remove Feed
Fix KeyValuePersisted iterator
Refactor OrbitDBAddress a bit more
Add rest of the database types
Refactor OrbitDB addresses
Initial version for the full circle
Initial structure and tests for new OrbitDB
Make sure KeyStore is open when a Database is created
Re-organize OrbitDB
Use new databases and Log
More clean up
Add 'drop' event to Database
Clean up OrbitDB
Remove id from OrbitDB
Use new KeyStore and Identities
Remove storage from OrbitDB
Remove migrations from OrbitDB
Remove caches from OrbitDB
Remove pubsub from OrbitDB
2023-03-01 16:21:07 +02:00

204 lines
7.5 KiB
JavaScript

// import assert from 'assert'
// import fs from 'fs-extra'
// import path from 'path'
// import rmrf from 'rimraf'
// import leveldown from 'leveldown'
// import Zip from 'adm-zip'
// import OrbitDB from '../src/OrbitDB.js'
// import Identities from 'orbit-db-identity-provider'
// import migrate from 'localstorage-level-migration'
// import Keystore from 'orbit-db-keystore'
// import storageAdapter from 'orbit-db-storage-adapter'
// // Include test utilities
// import {
// config,
// startIpfs,
// stopIpfs,
// testAPIs,
// } from 'orbit-db-test-utils'
// const storage = storageAdapter(leveldown)
// storage.preCreate = async (directory, options) => {
// fs.mkdirSync(directory, { recursive: true })
// }
// const dbPath = path.join('./orbitdb', 'tests', 'v0')
// const dbFixturesDir = path.join('./test', 'fixtures', 'v0', 'QmWDUfC4zcWJGgc9UHn1X3qQ5KZqBv4KCiCtjnpMmBT8JC', 'v0-db')
// const keyFixtures = path.join('./test', 'fixtures', 'keys','QmRfPsKJs9YqTot5krRibra4gPwoK4kghhU8iKWxBjGDDX')
// const ipfsFixturesDir = path.join('./test', 'fixtures', 'ipfs')
// Object.keys(testAPIs).forEach(API => {
// const ipfsFixtures = path.join('./test', 'fixtures', `js-ipfs.zip`)
// describe(`orbit-db - Backward-Compatibility - Open & Load (${API})`, function () {
// this.retries(1) // windows...
// this.timeout(config.timeout)
// let ipfsd, ipfs, orbitdb, db, keystore
// before(async () => {
// ipfsd = await startIpfs(API, config.daemon1)
// ipfs = ipfsd.api
// rmrf.sync(dbPath)
// const zip = new Zip(ipfsFixtures)
// await zip.extractAllToAsync(path.join('./test', 'fixtures'), true)
// const filterFunc = (src, dest) => {
// // windows has problems copying these files...
// return !(src.includes('LOG') || src.includes('LOCK'))
// }
// // copy data files to ipfs and orbitdb repos
// await fs.copy(path.join(ipfsFixturesDir, 'blocks'), path.join(ipfsd.path, 'blocks'))
// await fs.copy(path.join(ipfsFixturesDir, 'datastore'), path.join(ipfsd.path, 'datastore'), { filter: filterFunc })
// const peerId = String((await ipfs.id()).id)
// const store = await storage.createStore(path.join(dbPath, peerId, 'keys'))
// keystore = new Keystore(store)
// const identity = await Identities.createIdentity({ id: peerId, migrate: migrate(keyFixtures), keystore })
// orbitdb = await OrbitDB.createInstance(ipfs, { identity, keystore })
// })
// after(async () => {
// await keystore.close()
// if (orbitdb)
// await orbitdb.stop()
// if (ipfsd)
// await stopIpfs(ipfsd)
// rmrf.sync(ipfsFixturesDir)
// rmrf.sync('./orbitdb')
// })
// describe('Open & Load - V0 entries', function () {
// before(async () => {
// await fs.copy(dbFixturesDir, dbPath)
// db = await orbitdb.open('/orbitdb/QmWDUfC4zcWJGgc9UHn1X3qQ5KZqBv4KCiCtjnpMmBT8JC/v0-db', { directory: dbPath, accessController: { type: 'legacy-ipfs', skipManifest: true } })
// const localFixtures = await db._cache.get('_localHeads')
// const remoteFixtures = await db._cache.get('_remoteHeads')
// await db._cache.set(db.localHeadsPath, localFixtures)
// await db._cache.set(db.remoteHeadsPath, remoteFixtures)
// await db.load()
// })
// beforeEach(async () => {
// if (process.platform === 'win32') {
// // for some reason Windows does not load the database correctly at the first time.
// // this is not a good solution but... it works.
// await db.load()
// }
// })
// after(async () => {
// rmrf.sync(dbPath)
// if (db)
// await db.close()
// })
// it('open v0 orbitdb address', async () => {
// assert.notEqual(db, null)
// })
// it('database has the correct v0 address', async () => {
// assert.equal(db.address.toString().indexOf('/orbitdb'), 0)
// assert.equal(db.address.toString().indexOf('Qm'), 9)
// assert.equal(db.address.toString().indexOf('v0-db'), 56)
// })
// it('has the correct type', async () => {
// assert.equal(db.type, 'feed')
// })
// it('database has the correct access-controller', async () => {
// assert.equal(db.options.accessControllerAddress, '/ipfs/Qmc3S7aMSmH8oGmx7Zdp8UxVWcDyCq5o2H9qYFgT3GW6nM')
// assert.equal(db.access.type, 'legacy-ipfs')
// assert.strictEqual(db.access.write[0], '04b54f6ef529cd2dd2f9c6897a382c492222d42e57826269a38101ffe752aa07260ecd092a970d7eef08c4ddae2b7006ee25f07e4ab62fa5262ae3b51fdea29f78')
// })
// it('load v0 orbitdb address', async () => {
// assert.equal(db.all.length, 3)
// })
// it('allows migrated key to write', async () => {
// const hash = await db.add({ thing: 'new addition' })
// const newEntries = db.all.filter(e => e.v > 0)
// assert.equal(newEntries.length, 1)
// assert.strictEqual(newEntries[0].hash, hash)
// })
// })
// describe('Open & Load - V1 entries', function () {
// const dbPath2 = './orbitdb/tests/v1'
// const dbv1Fix = './test/fixtures/v1/QmZrWipUpBNx5VjBTESCeJBQuj4rWahZMz8CV8hBjdJAec/cache'
// const v1Address = '/orbitdb/zdpuAqpKBwd7ojM77o3rRVKA1PAEQBnWoRASY3ugJ7zqnM6z7/v1-entries'
// before(async () => {
// await fs.copy(dbv1Fix, dbPath2)
// db = await orbitdb.open(v1Address, { directory: dbPath2 })
// await db.load()
// })
// beforeEach(async () => {
// if (process.platform === 'win32') {
// // for some reason Windows does not load the database correctly at the first time.
// // this is not a good solution but... it works.
// await db.load()
// }
// })
// after(async () => {
// rmrf.sync(dbPath2)
// if (db)
// await db.close()
// })
// it('open v1 orbitdb address', async () => {
// assert.notEqual(db, null)
// })
// it('database has the correct v1 address', async () => {
// assert.equal(db.address.toString().indexOf('/orbitdb'), 0)
// assert.equal(db.address.toString().indexOf('zd'), 9)
// assert.equal(db.address.toString().indexOf('v1-entries'), 59)
// })
// it('has the correct type', async () => {
// assert.equal(db.type, 'feed')
// })
// it('database has the correct access-controller', async () => {
// assert.equal(db.access.type, 'ipfs')
// assert.equal(db.options.accessControllerAddress, '/ipfs/zdpuAsYRtJLLLDibnmxWPzyRGJEqtjmJP27ppKWcLreNGGTFN')
// assert.strictEqual(db.access.write[0], '*')
// })
// it('load v1 orbitdb address', async () => {
// assert.equal(db.all.length, 100)
// })
// it('allows adding new entry', async () => {
// const hash = await db.add('new entry')
// const newEntries = db.all.filter(e => e.v > 1)
// assert.equal(newEntries.length, 1)
// assert.strictEqual(newEntries[0].hash, hash)
// })
// it('reopens db after adding new entry', async () => {
// await db.close()
// db = await orbitdb.open(v1Address, { directory: dbPath2 })
// assert.notEqual(db, null)
// await db.load()
// assert.equal(db.all.length, 101)
// const newEntries = db.all.filter(e => e.v > 1)
// assert.equal(newEntries.length, 1)
// })
// })
// })
// })