Files: 0bebd57e201531188e6d1b2b1b4f586d2000fa1b / test / index.js
1800 bytesRaw
1 | const Server = require('scuttle-testbot') |
2 | const Keys = require('ssb-keys') |
3 | const Test = require('tape') |
4 | |
5 | const pull = require('pull-stream') |
6 | const get = require('lodash/get') |
7 | |
8 | const pry = require('pryjs') |
9 | |
10 | // Generate two identities and start two test servers |
11 | |
12 | const alice = Keys.generate() |
13 | const bob = Keys.generate() |
14 | |
15 | Server |
16 | .use(require('ssb-private')) |
17 | .use(require('../index.js')) |
18 | |
19 | const aliceConfig = { name: "alicetestbot", keys: alice } |
20 | const aliceServer = new Server(aliceConfig) |
21 | |
22 | Server |
23 | .use(require('ssb-private')) |
24 | .use(require('../index.js')) |
25 | |
26 | const bobConfig = { name: "bobtestbot", keys: bob } |
27 | const bobServer = new Server(bobConfig) |
28 | |
29 | var root |
30 | |
31 | Test("it publishes an encrypted secret root that is only visible to Alice", t => { |
32 | aliceServer.private.publish({ |
33 | module: "secrets", |
34 | type: "root" |
35 | }, [ |
36 | aliceConfig.keys.id |
37 | ], (err, msg) => { |
38 | var { author, content } = msg.value |
39 | root = msg.key |
40 | |
41 | // Author is Alice |
42 | t.equal(alice.id, author) |
43 | t.notEqual(bob.id, author) |
44 | |
45 | // Decrypt |
46 | var decryptByAlice = aliceServer.private.unbox(content) |
47 | var decryptByBob = bobServer.private.unbox(content) |
48 | |
49 | t.equal(get(decryptByAlice, "module"), "secrets") |
50 | t.notEqual(get(decryptByBob, "module"), "secrets") |
51 | |
52 | t.equal(get(decryptByAlice, "type"), "root") |
53 | t.notEqual(get(decryptByBob, "type"), "root") |
54 | |
55 | t.end() |
56 | }) |
57 | }) |
58 | |
59 | Test("it returns a collection of invites", t => { |
60 | aliceServer.private.publish({ |
61 | module: "secrets", |
62 | type: "invite", |
63 | root: root |
64 | }, [ |
65 | aliceConfig.keys.id, |
66 | bobConfig.keys.id |
67 | ], (err, invite) => { |
68 | pull( |
69 | aliceServer.secrets.invites.stream(), |
70 | pull.drain(msg => { |
71 | t.equal(msg[root].length, 1) |
72 | t.equal(msg[root][0].id, invite.key) |
73 | t.end() |
74 | }) |
75 | ) |
76 | }) |
77 | }) |
78 |
Built with git-ssb-web