git ssb

1+

kieran / horcrux-schemas-and-thoughts



Tree: 0bebd57e201531188e6d1b2b1b4f586d2000fa1b

Files: 0bebd57e201531188e6d1b2b1b4f586d2000fa1b / test / index.js

1800 bytesRaw
1const Server = require('scuttle-testbot')
2const Keys = require('ssb-keys')
3const Test = require('tape')
4
5const pull = require('pull-stream')
6const get = require('lodash/get')
7
8const pry = require('pryjs')
9
10// Generate two identities and start two test servers
11
12const alice = Keys.generate()
13const bob = Keys.generate()
14
15Server
16 .use(require('ssb-private'))
17 .use(require('../index.js'))
18
19const aliceConfig = { name: "alicetestbot", keys: alice }
20const aliceServer = new Server(aliceConfig)
21
22Server
23 .use(require('ssb-private'))
24 .use(require('../index.js'))
25
26const bobConfig = { name: "bobtestbot", keys: bob }
27const bobServer = new Server(bobConfig)
28
29var root
30
31Test("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
59Test("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