1 | var SecretStack = require('secret-stack')
|
2 | var crypto = require('crypto')
|
3 | var tape = require('tape')
|
4 | var path = require('path')
|
5 | var osenv = require('osenv')
|
6 | var mkdirp = require('mkdirp')
|
7 | var pull = require('pull-stream')
|
8 |
|
9 |
|
10 | function hash (s) {
|
11 | return crypto.createHash('sha256').update(s).digest()
|
12 | }
|
13 |
|
14 | var appkey = hash('TESTBLOBS')
|
15 |
|
16 | var create = SecretStack({ caps: {shs: appkey} }).use(require('../'))
|
17 |
|
18 | function tmp (name) {
|
19 | var dir = path.join(osenv.tmpdir(), 'testblobs-'+Date.now()+'-'+name)
|
20 | mkdirp.sync(dir)
|
21 | return dir
|
22 | }
|
23 |
|
24 |
|
25 | tape('alice pushes to bob', function (t) {
|
26 | var alice = create({ seed: hash('ALICE'), path: tmp('alice') })
|
27 | var bob = create({ seed: hash('BOB'), path: tmp('bob') })
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 | bob.once('multiserver:listening', function () {
|
35 | alice.connect(bob.address(), function (err, rpc) {
|
36 | if(err) throw err
|
37 | })
|
38 |
|
39 | var hello = new Buffer('Hello World'), _hash
|
40 |
|
41 | pull(
|
42 | bob.blobs.ls({live: true, long: true}),
|
43 | pull.filter((msg) => !msg.sync),
|
44 | pull.take(1),
|
45 | pull.collect(function (err, ary) {
|
46 | t.equal(ary[0].id, _hash)
|
47 | t.end()
|
48 | alice.close()
|
49 | bob.close()
|
50 | })
|
51 | )
|
52 |
|
53 | pull(
|
54 | pull.values([hello]),
|
55 | alice.blobs.add(function (err, hash) {
|
56 | _hash = hash
|
57 | alice.blobs.push(hash)
|
58 | })
|
59 | )
|
60 | })
|
61 | })
|
62 |
|