-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7d5a750
commit 8cf32e6
Showing
1 changed file
with
97 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
import { | ||
generateUser, | ||
resetHabiticaDB, | ||
generateGroup, | ||
} from '../../../../helpers/api-v3-integration.helper'; | ||
|
||
describe('GET /groups', () => { | ||
let user; | ||
const NUMBER_OF_PUBLIC_GUILDS = 3; | ||
const NUMBER_OF_USERS_PRIVATE_GUILDS = 1; | ||
const NUMBER_OF_GUILDS_USER_CAN_VIEW = 6; | ||
|
||
before(async () => { | ||
await resetHabiticaDB(); | ||
|
||
let leader = await generateUser({ balance: 10 }); | ||
user = await generateUser({balance: 4}); | ||
|
||
let publicGuildUserIsMemberOf = await generateGroup(leader, { | ||
name: 'public guild - is member', | ||
type: 'guild', | ||
privacy: 'public', | ||
}); | ||
await leader.post(`/groups/${publicGuildUserIsMemberOf._id}/invite`, { uuids: [user._id]}); | ||
await user.post(`/groups/${publicGuildUserIsMemberOf._id}/join`); | ||
|
||
await generateGroup(leader, { | ||
name: 'public guild - is not member', | ||
type: 'guild', | ||
privacy: 'public', | ||
}); | ||
|
||
let privateGuildUserIsMemberOf = await generateGroup(leader, { | ||
name: 'private guild - is member', | ||
type: 'guild', | ||
privacy: 'private', | ||
}); | ||
await leader.post(`/groups/${privateGuildUserIsMemberOf._id}/invite`, { uuids: [user._id]}); | ||
await user.post(`/groups/${privateGuildUserIsMemberOf._id}/join`); | ||
|
||
await generateGroup(leader, { | ||
name: 'private guild - is not member', | ||
type: 'guild', | ||
privacy: 'private', | ||
}); | ||
|
||
await generateGroup(leader, { | ||
name: 'party - is not member', | ||
type: 'party', | ||
privacy: 'private', | ||
}); | ||
|
||
await user.post('/groups', { | ||
name: 'party - is member', | ||
type: 'party', | ||
privacy: 'private', | ||
}); | ||
}); | ||
|
||
it('returns error when no query passed in', async () => { | ||
await expect(user.get('/groups')) | ||
.to.eventually.be.rejected.and.eql({ | ||
code: 400, | ||
error: 'BadRequest', | ||
message: 'Invalid request parameters.', | ||
}); | ||
}); | ||
|
||
it('returns only the tavern when tavern passed in as query', async () => { | ||
await expect(user.get('/groups?type=tavern')) | ||
.to.eventually.have.a.lengthOf(1) | ||
.and.to.have.deep.property('[0]') | ||
.and.to.have.property('_id', 'habitrpg'); | ||
}); | ||
|
||
it('returns only the user\'s party when party passed in as query', async () => { | ||
await expect(user.get('/groups?type=party')) | ||
.to.eventually.have.a.lengthOf(1) | ||
.and.to.have.deep.property('[0]') | ||
.and.to.have.property('leader', user._id); | ||
}); | ||
|
||
it('returns all public guilds when publicGuilds passed in as query', async () => { | ||
await expect(user.get('/groups?type=publicGuilds')) | ||
.to.eventually.have.a.lengthOf(NUMBER_OF_PUBLIC_GUILDS); | ||
}); | ||
|
||
it('returns all private guilds user is a part of when privateGuilds passed in as query', async () => { | ||
await expect(user.get('/groups?type=privateGuilds')) | ||
.to.eventually.have.a.lengthOf(NUMBER_OF_USERS_PRIVATE_GUILDS); | ||
}); | ||
|
||
it('returns a list of groups user has access to', async () => { | ||
await expect(user.get('/groups?type=privateGuilds,publicGuilds,party,tavern')) | ||
.to.eventually.have.a.lengthOf(NUMBER_OF_GUILDS_USER_CAN_VIEW); | ||
}); | ||
}); |