Added tests

This commit is contained in:
TheHollidayInn 2015-05-04 19:12:44 -05:00
parent 0bd39120aa
commit 8a4b43905d
2 changed files with 247 additions and 11 deletions

View file

@ -227,7 +227,7 @@ describe "API", ->
).end (res) ->
expectCode res, 200
body = res.body
expect(body).to.be.empty
expect(body).to.be.empty
done()
it "Does not delete already deleted todo", (done) ->
@ -257,16 +257,161 @@ describe "API", ->
describe "Groups", ->
group = undefined
before (done) ->
request.post(baseURL + "/groups").send(
name: "TestGroup"
type: "party"
).end (res) ->
expectCode res, 200
group = res.body
expect(group.members.length).to.be 1
expect(group.leader).to.be user._id
request.post(baseURL + "/groups").send(
name: "TestGroup"
type: "party"
).end (res) ->
expectCode res, 200
group = res.body
expect(group.members.length).to.be 1
expect(group.leader).to.be user._id
done()
describe "Guilds", ->
before (done) ->
User.findByIdAndUpdate user._id,
$set:
"balance": 4
, (err, _user) ->
done()
it "includes user in private group member list when user is a member", (done) ->
guild = undefined
request.post(baseURL + "/groups").send(
name: "TestPrivateGroup"
type: "guild"
privacy: "private"
).end (res) ->
expectCode res, 200
guild = res.body
expect(guild.members.length).to.be 1
expect(guild.leader).to.be user._id
#Add members to guild
async.waterfall [
(cb) ->
async.parallel [
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
], cb
(_members, cb) ->
members = _members
joinGuild = (member, callback) ->
request.post(baseURL + "/groups/" + guild._id + "/join")
.set("X-API-User", member._id)
.set("X-API-Key", member.apiToken)
.end ->
callback(null, null)
async.map members, joinGuild, (err, results) -> cb()
(cb) ->
#Verfiy that when a user query's for a group they are in the group if they are a member
Group.findById guild._id, (err, g) ->
expect(g.members.length).to.be 16
userInGroup = _.find group.members, (member) -> return member._id == user._id
expect(userInGroup).to.not.be undefined
cb()
], done
it "includes user in public group member list when user is a member", (done) ->
guild = undefined
request.post(baseURL + "/groups").send(
name: "TestPublicGroup"
type: "guild"
privacy: "public"
).end (res) ->
expectCode res, 200
guild = res.body
expect(guild.members.length).to.be 1
expect(guild.leader).to.be user._id
#Add members to guild
async.waterfall [
(cb) ->
async.parallel [
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
], cb
(_members, cb) ->
members = _members
joinGuild = (member, callback) ->
request.post(baseURL + "/groups/" + guild._id + "/join")
.set("X-API-User", member._id)
.set("X-API-Key", member.apiToken)
.end ->
callback(null, null)
async.map members, joinGuild, (err, results) -> cb()
(cb) ->
#Verfiy that when a user query's for a group they are in the group if they are a member
Group.findById guild._id, (err, g) ->
expect(g.members.length).to.be 16
userInGroup = _.find group.members, (member) -> return member._id == user._id
expect(userInGroup).to.not.be undefined
cb()
], done
describe "Party", ->
it "can be found by querying for party", (done) ->
request.get(baseURL + "/groups/").send(
@ -282,6 +427,95 @@ describe "API", ->
expect(party.memberCount).to.be group.memberCount
done()
it "includes user in a party member list when user is a member", (done) ->
party = []
#Invite some members
async.waterfall [
# Register new users
(cb) ->
async.parallel [
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
(cb2) ->
registerNewUser cb2, false
], cb
# Send them invitations
(_party, cb) ->
party = _party
joinParty = (member, callback) ->
request.post(baseURL + "/groups/" + group._id + "/join")
.set("X-API-User", member._id)
.set("X-API-Key", member.apiToken)
.end ->
callback(null, null)
async.map party, joinParty, (err, results) -> cb()
# Accept / Reject
(cb) ->
# series since they'll be modifying the same group record
series = _.reduce(party, (m, v, i) ->
m.push (cb2) ->
request.post(baseURL + "/groups/" + group._id + "/join")
.set("X-API-User", party[i]._id)
.set("X-API-Key", party[i].apiToken)
.end ->
cb2()
m
, [])
async.series series, cb
# Make sure the invites stuck
(result, cb) ->
Group.findById group._id, (err, g) ->
userInGroup = _.find group.members, (member) -> return member._id == user._id
expect(userInGroup).to.not.be undefined
cb()
# Remove all previous members
(cb) ->
joinParty = (member, callback) ->
request.post(baseURL + "/groups/" + group._id + "/leave")
.set("X-API-User", member._id)
.set("X-API-Key", member.apiToken)
.end ->
callback(null, null)
async.map party, joinParty, (err, results) -> cb()
], done
describe "Chat", ->
chat = undefined
it "Posts a message to party chat", (done) ->

View file

@ -439,7 +439,10 @@ api.join = function(req, res, next) {
if (!_.contains(group.members, user._id)){
group.members.push(user._id);
group.invites.splice(_.indexOf(group.invites, user._id), 1);
//Can we have someone joing without an invite? I added this for testing since we join users without an invite
if (group.invites.length > 0) {
group.invites.splice(_.indexOf(group.invites, user._id), 1);
}
}
async.series([
@ -451,7 +454,6 @@ api.join = function(req, res, next) {
}
], function(err, results){
if (err) return next(err);
// Return the group? Or not?
res.json(results[1]);
group = null;