92 lines
3.3 KiB
JavaScript
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()
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|