js-libp2p/test/record-manager/index.spec.js
2020-08-27 15:38:01 +02:00

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?
})