feat: create b58 string on creation and throw on id mutation

This commit is contained in:
Friedel Ziegelmayer 2016-12-18 09:02:37 +01:00
parent bebb0a7eae
commit 78d96d0b14
2 changed files with 16 additions and 5 deletions

View File

@ -18,7 +18,7 @@ class PeerId {
} }
this._id = id this._id = id
this._idB58String = '' this._idB58String = mh.toB58String(this.id)
this._privKey = privKey this._privKey = privKey
this._pubKey = pubKey this._pubKey = pubKey
} }
@ -27,6 +27,10 @@ class PeerId {
return this._id return this._id
} }
set id (val) {
throw new Error('Id is immutable')
}
get privKey () { get privKey () {
return this._privKey return this._privKey
} }
@ -82,10 +86,6 @@ class PeerId {
} }
toB58String () { toB58String () {
if (!this._idB58String) {
this._idB58String = mh.toB58String(this.id)
}
return this._idB58String return this._idB58String
} }
} }

View File

@ -29,6 +29,17 @@ describe('PeerId', () => {
}) })
}) })
it('throws on changing the id', (done) => {
PeerId.create((err, id) => {
expect(err).to.not.exist
expect(id.toB58String().length).to.equal(46)
expect(() => {
id.id = new Buffer('hello')
}).to.throw(/immutable/)
done()
})
})
it('recreate an Id from Hex string', () => { it('recreate an Id from Hex string', () => {
const id = PeerId.createFromHexString(testIdHex) const id = PeerId.createFromHexString(testIdHex)
expect(testIdBytes).to.deep.equal(id.id) expect(testIdBytes).to.deep.equal(id.id)