forked from libp2p/js-libp2p-kad-dht
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpeer-queue.spec.js
51 lines (43 loc) · 1.52 KB
/
peer-queue.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* eslint-env mocha */
'use strict'
const chai = require('chai')
chai.use(require('dirty-chai'))
const expect = chai.expect
const PeerId = require('peer-id')
const series = require('async/series')
const PeerQueue = require('../src/peer-queue')
describe('PeerQueue', () => {
it('basics', (done) => {
const p1 = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31'))
const p2 = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a32'))
const p3 = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33'))
const p4 = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a34'))
const p5 = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31'))
const peer = new PeerId(Buffer.from('11140beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a31'))
PeerQueue.fromPeerId(peer, (err, pq) => {
expect(err).to.not.exist()
series([
(cb) => pq.enqueue(p3, cb),
(cb) => pq.enqueue(p1, cb),
(cb) => pq.enqueue(p2, cb),
(cb) => pq.enqueue(p4, cb),
(cb) => pq.enqueue(p5, cb),
(cb) => pq.enqueue(p1, cb)
], (err) => {
expect(err).to.not.exist()
expect([
pq.dequeue(),
pq.dequeue(),
pq.dequeue(),
pq.dequeue(),
pq.dequeue(),
pq.dequeue()
].map((m) => m.toB58String())).to.be.eql([
p1, p1, p1, p4, p3, p2
].map((m) => m.toB58String()))
expect(pq.length).to.be.eql(0)
done()
})
})
})
})