Files: f1a984b03058530d675879e478d5f867b012af1a / test / realtime.js
1846 bytesRaw
1 | var cont = require('cont') |
2 | var deepEqual = require('deep-equal') |
3 | var tape = require('tape') |
4 | var pull = require('pull-stream') |
5 | var u = require('./util') |
6 | |
7 | var ssbKeys = require('ssb-keys') |
8 | |
9 | var createSbot = require('../') |
10 | .use(require('../plugins/replicate')) |
11 | .use(require('ssb-ebt')) |
12 | .use(require('ssb-friends')) |
13 | |
14 | tape('replicate between 3 peers', function (t) { |
15 | |
16 | var bob = createSbot({ |
17 | temp: 'test-bob', |
18 | // port: 45452, host: 'localhost', |
19 | replicate: {legacy: false}, |
20 | keys: ssbKeys.generate() |
21 | }) |
22 | |
23 | var alice = createSbot({ |
24 | temp: 'test-alice', |
25 | // port: 45453, host: 'localhost', |
26 | seeds: [bob.getAddress()], |
27 | replicate: {legacy: false}, |
28 | keys: ssbKeys.generate() |
29 | }) |
30 | |
31 | cont.para([ |
32 | alice.publish(u.follow(bob.id)), |
33 | bob.publish(u.follow(alice.id)) |
34 | ])(function (err) { |
35 | if(err) throw err |
36 | |
37 | var rpc |
38 | alice.connect(bob.getAddress(), function (_, _rpc) { |
39 | rpc = _rpc |
40 | }) |
41 | |
42 | var ary = [] |
43 | pull( |
44 | bob.createHistoryStream({id: alice.id, seq: 0, keys: false, live: true}), |
45 | pull.drain(function (data) { |
46 | console.log(data) |
47 | ary.push(data); |
48 | }) |
49 | ) |
50 | var l = 12 |
51 | setTimeout(function next () { |
52 | if(!--l) { |
53 | var _ary = [] |
54 | pull( |
55 | bob.createHistoryStream({id: alice.id, sequence: 0, keys: false}), |
56 | pull.collect(function (err, _ary) { |
57 | t.equal(_ary.length, 12) |
58 | t.deepEqual(ary,_ary) |
59 | bob.close(true); alice.close(true); t.end() |
60 | }) |
61 | ) |
62 | } |
63 | else |
64 | alice.publish({type: 'test', value: new Date()}, |
65 | function (err, msg){ |
66 | if(err) throw err |
67 | console.log('added', msg.key, msg.value.sequence) |
68 | setTimeout(next, 200) |
69 | }) |
70 | }, 200) |
71 | |
72 | }) |
73 | }) |
74 | |
75 | |
76 |
Built with git-ssb-web