git ssb

0+

Piet / ssb-loomio



Tree: f368010bd5cd7dd957193a674e18bd6e6cad8233

Files: f368010bd5cd7dd957193a674e18bd6e6cad8233 / test / poll / async / get.js

1922 bytesRaw
1var test = require('tape')
2var Server = require('scuttle-testbot')
3var pull = require('pull-stream')
4
5var ChooseOnePoll = require('../../../poll/sync/chooseOne')
6var ChooseOne = require('../../../position/sync/chooseOne')
7var getPoll = require('../../../poll/async/get')
8
9Server
10 .use(require('ssb-backlinks'))
11
12var server = Server({name: 'testBotName'})
13
14var katie = server.createFeed()
15var piet = server.createFeed()
16
17var pollContent = ChooseOnePoll({
18 title: "what's our mascott team?",
19 choices: ['prairie dog', 'kea', 'hermit crab'],
20 closesAt: nDaysTime(2)
21})
22
23test('pull.async.get', t => {
24 piet.publish(pollContent, (err, poll) => {
25 if (err) throw err
26
27 pull(
28 pull.values([
29 { author: katie, position: ChooseOne({ poll, choice: 1, reason: 'they are sick!' }) },
30 { author: piet, position: ChooseOne({ poll, choice: 2, reason: 'scuttles 4life' }) }
31 ]),
32 pull.asyncMap((t, cb) => t.author.publish(t.position, cb)),
33 pull.drain(
34 m => {}, // console.log(m.value.content.type),
35 onDone
36 )
37 )
38
39 function onDone () {
40 getPoll(server)(poll.key, (err, data) => {
41 if (err) throw err
42
43 // print(data)
44 t.equal(data.key, poll.key, 'has key')
45 t.deepEqual(data.value, poll.value, 'has value')
46
47 t.equal(data.author, poll.value.author, 'has author')
48 t.equal(data.title, poll.value.content.title, 'has title')
49
50 t.equal(data.positions.length, 2, 'has positions')
51
52 t.deepEqual(data.results, {
53 1: [katie.id], // TODO update this data structure
54 2: [piet.id],
55 errors: [] // TODO prune this later
56 }, 'has results!')
57
58 server.close()
59 t.end()
60 })
61 }
62 })
63})
64
65function print (obj) {
66 console.log(JSON.stringify(obj, null, 2))
67}
68
69function nDaysTime (n) {
70 var d = new Date()
71 return d.setDate(d.getDate() + n)
72 // returns integer!
73}
74

Built with git-ssb-web