Merge pull request #19 from orbitdb/fix/identities

Fix identity storage path and clean up tests
This commit is contained in:
Haad 2023-03-02 07:26:00 +02:00 committed by GitHub
commit e3014fa6b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 23 deletions

View File

@ -3,11 +3,11 @@ import OrbitDBIdentityProvider from './providers/orbitdb.js'
// import DIDIdentityProvider from './identity-providers/did.js' // import DIDIdentityProvider from './identity-providers/did.js'
// import EthIdentityProvider from './identity-providers/ethereum.js' // import EthIdentityProvider from './identity-providers/ethereum.js'
import KeyStore, { signMessage, verifyMessage } from '../key-store.js' import KeyStore, { signMessage, verifyMessage } from '../key-store.js'
import { LRUStorage, IPFSBlockStorage, MemoryStorage, LevelStorage } from '../storage/index.js' import { LRUStorage, IPFSBlockStorage, MemoryStorage } from '../storage/index.js'
import path from 'path' import Path from 'path'
const DefaultProviderType = 'orbitdb' const DefaultProviderType = 'orbitdb'
const DefaultIdentityKeysPath = path.join('./orbitdb', 'identity', 'identitykeys') const DefaultIdentityKeysPath = Path.join('./orbitdb', 'identities')
const supportedTypes = { const supportedTypes = {
orbitdb: OrbitDBIdentityProvider orbitdb: OrbitDBIdentityProvider
@ -15,14 +15,12 @@ const supportedTypes = {
// [EthIdentityProvider.type]: EthIdentityProvider // [EthIdentityProvider.type]: EthIdentityProvider
} }
const Identities = async ({ keystore, identityKeysPath, storage, ipfs } = {}) => { const Identities = async ({ keystore, path, storage, ipfs } = {}) => {
keystore = keystore || await KeyStore({ storage: await LevelStorage(identityKeysPath || DefaultIdentityKeysPath), valueEncoding: 'json' }) keystore = keystore || await KeyStore({ path: path || DefaultIdentityKeysPath })
storage = storage || (ipfs ? await IPFSBlockStorage({ ipfs, pin: true }) : await MemoryStorage()) storage = storage || (ipfs ? await IPFSBlockStorage({ ipfs, pin: true }) : await MemoryStorage())
const verifiedIdentitiesCache = await LRUStorage({ size: 1000 }) const verifiedIdentitiesCache = await LRUStorage({ size: 1000 })
// await keystore.open()
const getIdentity = async (hash) => { const getIdentity = async (hash) => {
const bytes = await storage.get(hash) const bytes = await storage.get(hash)
if (bytes) { if (bytes) {

View File

@ -1,21 +1,21 @@
import assert from 'assert' import assert from 'assert'
import path from 'path'
import rmrf from 'rimraf' import rmrf from 'rimraf'
import { copy } from 'fs-extra'
import KeyStore, { signMessage, verifyMessage } from '../../src/key-store.js' import KeyStore, { signMessage, verifyMessage } from '../../src/key-store.js'
import Identities, { addIdentityProvider } from '../../src/identities/identities.js' import Identities, { addIdentityProvider } from '../../src/identities/identities.js'
import Identity from '../../src/identities/identity.js' import Identity from '../../src/identities/identity.js'
import testKeysPath from '../fixtures/test-keys-path.js ' import testKeysPath from '../fixtures/test-keys-path.js '
const savedKeysPath = path.resolve('./test/identities/fixtures/savedKeys')
const identityKeysPath = path.resolve('./test/identities/identityKeys')
const type = 'orbitdb' const type = 'orbitdb'
const keysPath = './testkeys'
describe('Identities', function () { describe('Identities', function () {
before(async () => { before(async () => {
rmrf.sync(identityKeysPath) await copy(testKeysPath, keysPath)
}) })
after(async () => { after(async () => {
rmrf.sync(identityKeysPath) await rmrf(keysPath)
}) })
describe('Creating Identities', () => { describe('Creating Identities', () => {
@ -31,7 +31,7 @@ describe('Identities', function () {
}) })
it('has the correct id', async () => { it('has the correct id', async () => {
identities = await Identities({ identityKeysPath }) identities = await Identities({ path: keysPath })
identity = await identities.createIdentity({ id }) identity = await identities.createIdentity({ id })
const key = await identities.keystore.getKey(id) const key = await identities.keystore.getKey(id)
const externalId = Buffer.from(key.public.marshal()).toString('hex') const externalId = Buffer.from(key.public.marshal()).toString('hex')
@ -52,7 +52,7 @@ describe('Identities', function () {
}) })
it('gets the identity from storage', async () => { it('gets the identity from storage', async () => {
identities = await Identities({ identityKeysPath }) identities = await Identities({ path: keysPath })
identity = await identities.createIdentity({ id }) identity = await identities.createIdentity({ id })
const result = await identities.getIdentity(identity.hash) const result = await identities.getIdentity(identity.hash)
assert.strictEqual(result.id, identity.id) assert.strictEqual(result.id, identity.id)
@ -73,7 +73,7 @@ describe('Identities', function () {
let keystore let keystore
before(async () => { before(async () => {
keystore = await KeyStore({ path: testKeysPath }) keystore = await KeyStore({ path: keysPath })
identities = await Identities({ keystore }) identities = await Identities({ keystore })
}) })
@ -138,17 +138,16 @@ describe('Identities', function () {
let savedKeysKeyStore let savedKeysKeyStore
before(async () => { before(async () => {
savedKeysKeyStore = await KeyStore({ path: testKeysPath }) savedKeysKeyStore = await KeyStore({ path: keysPath })
identities = await Identities({ keystore: savedKeysKeyStore }) identities = await Identities({ keystore: savedKeysKeyStore })
identity = await identities.createIdentity({ id }) identity = await identities.createIdentity({ id })
}) })
after(async () => { after(async () => {
if (identities) { if (savedKeysKeyStore) {
await identities.keystore.close() await savedKeysKeyStore.close()
} }
rmrf.sync(savedKeysPath)
}) })
it('has the correct id', async () => { it('has the correct id', async () => {
@ -190,7 +189,7 @@ describe('Identities', function () {
let keystore let keystore
before(async () => { before(async () => {
keystore = await KeyStore({ path: testKeysPath }) keystore = await KeyStore({ path: keysPath })
}) })
after(async () => { after(async () => {
@ -239,7 +238,7 @@ describe('Identities', function () {
let keystore let keystore
before(async () => { before(async () => {
keystore = await KeyStore({ path: testKeysPath }) keystore = await KeyStore({ path: keysPath })
identities = await Identities({ keystore }) identities = await Identities({ keystore })
}) })
@ -265,7 +264,7 @@ describe('Identities', function () {
let keystore let keystore
before(async () => { before(async () => {
keystore = await KeyStore({ path: testKeysPath }) keystore = await KeyStore({ path: keysPath })
identities = await Identities({ keystore }) identities = await Identities({ keystore })
identity = await identities.createIdentity({ id }) identity = await identities.createIdentity({ id })
}) })
@ -309,7 +308,7 @@ describe('Identities', function () {
let signature let signature
before(async () => { before(async () => {
keystore = await KeyStore({ path: testKeysPath }) keystore = await KeyStore({ path: keysPath })
}) })
after(async () => { after(async () => {