Skip to content
Snippets Groups Projects
Commit 09adbe2a authored by Vukile Langa's avatar Vukile Langa Committed by Yannis Barlas
Browse files

feat(models): add optional status on updateMembershipByTeamId

parent cf05409c
No related branches found
No related tags found
1 merge request!66fix(models): added optional status for new team members
......@@ -46,6 +46,10 @@ module.exports = {
displayName: 'Author',
role: 'author',
},
reviewer: {
displayName: 'Reviewer',
role: 'reviewer',
},
},
},
fileStorage: {
......
......@@ -376,4 +376,34 @@ describe('Team Model', () => {
expect(members.result).toEqual([])
})
it('adds team member status on update membership', async () => {
const team = await Team.insert({
role: 'reviewer',
displayName: 'Reviewer',
global: false,
objectId: uuid(),
objectType: 'someObjectType',
})
const user1 = await User.insert({})
const user2 = await User.insert({})
await Team.updateMembershipByTeamId(team.id, [user1.id, user2.id])
const { result: teamMembers1 } = await TeamMember.find({ teamId: team.id })
teamMembers1.forEach(member => expect(member.status).toBe(null))
const NOT_INVITED = 'notInvited'
await Team.updateMembershipByTeamId(team.id, [])
await Team.updateMembershipByTeamId(team.id, [user1.id, user2.id], {
status: NOT_INVITED,
})
const { result: teamMembers2 } = await TeamMember.find({ teamId: team.id })
teamMembers2.forEach(member => expect(member.status).toBe(NOT_INVITED))
})
})
......@@ -184,7 +184,12 @@ class Team extends BaseModel {
// add members that exist in the incoming array, but not in the db
const toAdd = members.filter(id => !existingMemberUserIds.includes(id))
await Promise.all(
toAdd.map(userId => Team.addMember(teamId, userId, { trx })),
toAdd.map(userId =>
Team.addMember(teamId, userId, {
trx,
...(options.status && { status: options.status }),
}),
),
)
// delete members that exist in the db, but not in the incoming array
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment