sbot/api/test/profiles.js

92 lines
3.3 KiB
JavaScript

var multicb = require('multicb')
var tape = require('tape')
var u = require('./util')
var blobid = '&RYnp9p24dlAPYGhrsFYdGGHIAYM2uM5pr1//RocCF/U=.sha256'
tape('profiles track self-assigned name and profile pic', function (t) {
var sbot = u.newserver()
u.makeusers(sbot, {
alice: { follows: ['bob', 'charlie'] },
bob: {},
charlie: {}
}, function (err, users) {
if (err) throw err
var done = multicb()
users.alice.add({ type: 'about', about: users.alice.id, image: blobid }, done())
users.bob.add({ type: 'about', about: users.bob.id, image: blobid }, done())
users.charlie.add({ type: 'about', about: users.charlie.id, image: blobid }, done())
done(function (err) {
if (err) throw err
sbot.patchwork.getAllProfiles(function (err, profiles) {
if (err) throw err
t.equal(profiles[users.alice.id].self.name, 'alice')
t.equal(profiles[users.bob.id].self.name, 'bob')
t.equal(profiles[users.charlie.id].self.name, 'charlie')
t.equal(profiles[users.alice.id].self.image.link, blobid)
t.equal(profiles[users.bob.id].self.image.link, blobid)
t.equal(profiles[users.charlie.id].self.image.link, blobid)
sbot.close()
t.end()
})
})
})
})
tape('profiles track follows, names, and flags between users', function (t) {
var sbot = u.newserver()
u.makeusers(sbot, {
alice: { follows: ['bob', 'charlie'] },
bob: { follows: ['alice', 'charlie'] },
charlie: { follows: ['bob', 'alice'] }
}, function (err, users) {
if (err) throw err
var done = multicb()
users.alice.add({ type: 'about', about: users.bob.id, name: 'robert' }, done())
users.alice.add({ type: 'flag', flag: { link: users.charlie.id, reason: 'such a jerk!' } }, done())
users.bob.add({ type: 'flag', flag: { link: users.charlie.id, reason: 'dont like him' } }, done())
done(function (err) {
if (err) throw err
sbot.patchwork.getAllProfiles(function (err, profiles) {
if (err) throw err
function by(a, b) {
return profiles[users[a].id].assignedBy[users[b].id]
}
function to(a, b) {
return profiles[users[a].id].assignedTo[users[b].id]
}
t.equal(to('alice', 'bob').following, true)
t.equal(to('alice', 'charlie').following, true)
t.equal(by('bob', 'alice').following, true)
t.equal(by('charlie', 'alice').following, true)
t.equal(to('bob', 'alice').following, true)
t.equal(to('bob', 'charlie').following, true)
t.equal(by('alice', 'bob').following, true)
t.equal(by('charlie', 'bob').following, true)
t.equal(to('charlie', 'bob').following, true)
t.equal(to('charlie', 'alice').following, true)
t.equal(by('bob', 'charlie').following, true)
t.equal(by('alice', 'charlie').following, true)
t.equal(to('alice', 'charlie').flagged.reason, 'such a jerk!')
t.equal(by('charlie', 'alice').flagged.reason, 'such a jerk!')
t.equal(to('bob', 'charlie').flagged.reason, 'dont like him')
t.equal(by('charlie', 'bob').flagged.reason, 'dont like him')
t.equal(to('alice', 'bob').name, 'robert')
t.equal(by('bob', 'alice').name, 'robert')
sbot.close()
t.end()
})
})
})
})