git ssb

0+

Piet / ssb-loomio



Tree: ac1a79fec1e45652d23a6905c8540851a850a868

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

1919 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