mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-03-30 15:08:28 +00:00
fix: Export the IDP type in both the function definition and the function return values.
This commit is contained in:
parent
a25eb3aba6
commit
a552bde0b0
@ -85,5 +85,6 @@ const PublicKeyIdentityProvider = ({ keystore }) => () => {
|
||||
}
|
||||
|
||||
PublicKeyIdentityProvider.verifyIdentity = verifyIdentity
|
||||
PublicKeyIdentityProvider.type = type
|
||||
|
||||
export default PublicKeyIdentityProvider
|
||||
|
5
test/fixtures/providers/bad.js
vendored
Normal file
5
test/fixtures/providers/bad.js
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
const BadIdentityProvider = () => () => {
|
||||
|
||||
}
|
||||
|
||||
export default BadIdentityProvider
|
20
test/fixtures/providers/custom.js
vendored
Normal file
20
test/fixtures/providers/custom.js
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
const type = 'custom'
|
||||
|
||||
const verifyIdentity = async (data) => { return true }
|
||||
|
||||
const CustomIdentityProvider = () => () => {
|
||||
const getId = () => { return 'custom' }
|
||||
|
||||
const signIdentity = (data) => { return `signature '${data}'` }
|
||||
|
||||
return {
|
||||
getId,
|
||||
signIdentity,
|
||||
type
|
||||
}
|
||||
}
|
||||
|
||||
CustomIdentityProvider.verifyIdentity = verifyIdentity
|
||||
CustomIdentityProvider.type = type
|
||||
|
||||
export default CustomIdentityProvider
|
20
test/fixtures/providers/fake.js
vendored
Normal file
20
test/fixtures/providers/fake.js
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
const type = 'fake'
|
||||
|
||||
const verifyIdentity = async (data) => { return false }
|
||||
|
||||
const FakeIdentityProvider = () => () => {
|
||||
const getId = () => { return 'pubKey' }
|
||||
|
||||
const signIdentity = (data) => { return `false signature '${data}'` }
|
||||
|
||||
return {
|
||||
getId,
|
||||
signIdentity,
|
||||
type
|
||||
}
|
||||
}
|
||||
|
||||
FakeIdentityProvider.verifyIdentity = verifyIdentity
|
||||
FakeIdentityProvider.type = type
|
||||
|
||||
export default FakeIdentityProvider
|
@ -3,10 +3,11 @@ import rmrf from 'rimraf'
|
||||
import { copy } from 'fs-extra'
|
||||
import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
|
||||
import KeyStore, { signMessage, verifyMessage } from '../../src/key-store.js'
|
||||
import { Identities, addIdentityProvider, getIdentityProvider, Identity } from '../../src/identities/index.js'
|
||||
import { Identities, addIdentityProvider, getIdentityProvider, Identity, PublicKeyIdentityProvider } from '../../src/identities/index.js'
|
||||
import testKeysPath from '../fixtures/test-keys-path.js'
|
||||
import { CustomIdentityProvider, FakeIdentityProvider } from '../fixtures/providers.js'
|
||||
import * as PublicKeyIdentityProvider from '../../src/identities/providers/publickey.js'
|
||||
import { default as CustomIdentityProvider } from '../fixtures/providers/custom.js'
|
||||
import { default as FakeIdentityProvider } from '../fixtures/providers/fake.js'
|
||||
import { default as BadIdentityProvider } from '../fixtures/providers/bad.js'
|
||||
|
||||
const type = 'publickey'
|
||||
const keysPath = './testkeys'
|
||||
@ -69,7 +70,8 @@ describe('Identities', function () {
|
||||
it('Passes in an identity provider', async () => {
|
||||
const keystore = await KeyStore({ path: keysPath })
|
||||
identities = await Identities({ keystore })
|
||||
identity = await identities.createIdentity({ id, provider: PublicKeyIdentityProvider.default({ keystore }) })
|
||||
const provider = PublicKeyIdentityProvider({ keystore })
|
||||
identity = await identities.createIdentity({ id, provider })
|
||||
const result = await identities.getIdentity(identity.hash)
|
||||
assert.strictEqual(result.id, identity.id)
|
||||
assert.strictEqual(result.hash, identity.hash)
|
||||
@ -230,7 +232,7 @@ describe('Identities', function () {
|
||||
|
||||
it('false signature doesn\'t verify', async () => {
|
||||
addIdentityProvider(FakeIdentityProvider)
|
||||
identity = await identities.createIdentity({ provider: FakeIdentityProvider.default() })
|
||||
identity = await identities.createIdentity({ provider: FakeIdentityProvider() })
|
||||
const verified = await identities.verifyIdentity(identity)
|
||||
assert.strictEqual(verified, false)
|
||||
})
|
||||
@ -346,5 +348,17 @@ describe('Identities', function () {
|
||||
|
||||
assert.deepStrictEqual(getIdentityProvider('custom'), CustomIdentityProvider)
|
||||
})
|
||||
|
||||
it('cannot add an identity provider with missing type', () => {
|
||||
let err
|
||||
|
||||
try {
|
||||
addIdentityProvider(BadIdentityProvider)
|
||||
} catch (e) {
|
||||
err = e.toString()
|
||||
}
|
||||
|
||||
assert.strictEqual(err, 'Error: Given IdentityProvider doesn\'t have a field \'type\'')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user