orbitdb/test/v0-open-load.js
2023-02-16 11:07:13 +02:00

206 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)
// })
// })
// })
// })