UNPKG

1.81 kBJavaScriptView Raw
1var pull = require('pull-stream')
2var tape = require('tape')
3var crypto = require('crypto')
4
5var createSbot = require('secret-stack')({
6 caps: {shs: crypto.randomBytes(32).toString('base64')}
7 })
8 .use(require('ssb-db'))
9 .use(require('ssb-replicate'))
10 .use(require('..'))
11
12var botA = createSbot({
13 temp: 'alice',
14 port: 45451,
15 host: 'localhost',
16 timeout: 20001,
17 replicate: {
18 hops: 100,
19 legacy: false
20 }
21})
22
23tape('empty database follow self', function (t) {
24 pull(
25 botA.friends.createFriendStream(),
26 pull.collect(function (err, a) {
27 t.error(err)
28 t.deepEqual(a, [botA.id])
29 t.end()
30 })
31 )
32})
33
34var gen = require('ssb-generate')
35
36tape('live follows works', function (t) {
37 var a = []
38
39 pull(
40 botA.friends.createFriendStream({
41 live: true,
42 meta: true,
43 hops: 10
44 }),
45 pull.drain(function (m) {
46 a.push(m)
47 })
48 )
49
50 gen.initialize(botA, 10, 2, function (err, peers, hops) {
51 t.error(err)
52
53 console.log(a.length, hops)
54
55 var seen = {}
56 var count = 0
57 var notSeen = {}
58
59 peers.forEach(function (v) {
60 notSeen[v.id] = true
61 })
62
63 a.forEach(function (v) {
64 if (!seen[v.id]) {
65 seen[v.id] = true
66 delete notSeen[v.id]
67 count++
68 }
69 })
70
71 botA.friends.hops(function (err, hops) {
72 t.error(err)
73 for (var k in notSeen) { console.log('NS', k, hops[k]) }
74 })
75
76 t.deepEqual(notSeen, {})
77 t.deepEqual(count, peers.length, 'all peers streamed')
78 // b.forEach(function (e) { t.ok(e.hops <= 1, 'b '+e.hops+' hops <= 1') })
79 // c.forEach(function (e) { t.ok(e.hops <= 2, 'c '+e.hops+' hops <= 2') })
80 // t.ok(a.length >= b.length, '1 hops')
81 // t.ok(c.length >= b.length, '2 hops')
82 //
83 t.end()
84 botA.close()
85 })
86})
87
88