mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-02 14:02:14 +00:00
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
|
'use strict'
|
||
|
/* eslint-env mocha */
|
||
|
|
||
|
const chai = require('chai')
|
||
|
chai.use(require('dirty-chai'))
|
||
|
const { expect } = chai
|
||
|
|
||
|
const { Buffer } = require('buffer')
|
||
|
const multiaddr = require('multiaddr')
|
||
|
|
||
|
const Envelope = require('../../src/record-manager/envelope')
|
||
|
const RecordManager = require('../../src/record-manager')
|
||
|
|
||
|
const peerUtils = require('../utils/creators/peer')
|
||
|
|
||
|
describe('Record manager', () => {
|
||
|
let peerId
|
||
|
let recordManager
|
||
|
|
||
|
before(async () => {
|
||
|
[peerId] = await peerUtils.createPeerId()
|
||
|
})
|
||
|
|
||
|
beforeEach(() => {
|
||
|
recordManager = new RecordManager({
|
||
|
peerId,
|
||
|
multiaddrs: [
|
||
|
multiaddr('/ip4/127.0.0.1/tcp/2000'),
|
||
|
multiaddr('/ip4/127.0.0.1/tcp/2001')
|
||
|
]
|
||
|
})
|
||
|
})
|
||
|
|
||
|
it('needs to start to create a signed peer record', async () => {
|
||
|
let envelope = recordManager.getPeerRecordEnvelope()
|
||
|
expect(envelope).to.not.exist()
|
||
|
|
||
|
await recordManager.start()
|
||
|
envelope = recordManager.getPeerRecordEnvelope()
|
||
|
expect(envelope).to.exist()
|
||
|
})
|
||
|
|
||
|
it('can marshal the created signed peer record envelope', async () => {
|
||
|
await recordManager.start()
|
||
|
const envelope = recordManager.getPeerRecordEnvelope()
|
||
|
|
||
|
expect(envelope).to.exist()
|
||
|
expect(peerId.equals(envelope.peerId)).to.eql(true)
|
||
|
expect(envelope.payload).to.exist()
|
||
|
expect(envelope.signature).to.exist()
|
||
|
|
||
|
const marshledEnvelope = envelope.marshal()
|
||
|
expect(marshledEnvelope).to.exist()
|
||
|
expect(Buffer.isBuffer(marshledEnvelope)).to.eql(true)
|
||
|
|
||
|
const decodedEnvelope = await Envelope.openAndCertify(marshledEnvelope, 'domain') // TODO: domain
|
||
|
expect(decodedEnvelope).to.exist()
|
||
|
|
||
|
const isEqual = envelope.isEqual(decodedEnvelope)
|
||
|
expect(isEqual).to.eql(true)
|
||
|
})
|
||
|
// TODO: test signature validation?
|
||
|
})
|