Skip to content

Commit 7533901

Browse files
authored
Merge pull request #468 from wherearemyglasses/feature/restful-invites
Fixed units in src/projectMembers/create.spec.js
2 parents 64a7fef + 147cede commit 7533901

File tree

1 file changed

+77
-25
lines changed

1 file changed

+77
-25
lines changed

src/routes/projectMembers/create.spec.js

Lines changed: 77 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,29 +69,46 @@ describe('Project Members create', () => {
6969

7070
it('should return 201 when invited then accepted and then 404 if user is already as a member', (done) => {
7171
const mockHttpClient = _.merge(testUtil.mockHttpClient, {
72-
get: () => Promise.resolve({
73-
status: 200,
74-
data: {
75-
id: 'requesterId',
76-
version: 'v3',
77-
result: {
78-
success: true,
79-
status: 200,
80-
content: [{
81-
roleName: USER_ROLE.COPILOT,
82-
}],
72+
get: (url) => {
73+
const testCopilot = {
74+
userId: 40051332,
75+
handle: 'test_copilot1',
76+
firstName: 'Firstname',
77+
lastName: 'Lastname',
78+
email: 'test_copilot1@email.com',
79+
};
80+
const testRoleName = {
81+
roleName: USER_ROLE.COPILOT_MANAGER,
82+
};
83+
const ret = {
84+
status: 200,
85+
data: {
86+
id: 'requesterId',
87+
version: 'v3',
88+
result: {
89+
success: true,
90+
status: 200,
91+
content: [],
92+
},
8393
},
84-
},
85-
}),
94+
};
95+
96+
if (url.indexOf('/_search') >= 0) {
97+
ret.data.result.content.push(testCopilot);
98+
} else {
99+
ret.data.result.content.push(testRoleName);
100+
}
101+
return Promise.resolve(ret);
102+
},
86103
});
87104
sandbox.stub(util, 'getHttpClient', () => mockHttpClient);
88105
request(server)
89-
.post(`/v5/projects/${project1.id}/members/invite`)
106+
.post(`/v5/projects/${project1.id}/invites`)
90107
.set({
91108
Authorization: `Bearer ${testUtil.jwts.admin}`,
92109
})
93110
.send({
94-
userIds: [40051332],
111+
handles: ['test_copilot1'],
95112
role: 'copilot',
96113
})
97114
.expect('Content-Type', /json/)
@@ -105,14 +122,14 @@ describe('Project Members create', () => {
105122
resJson.role.should.equal('copilot');
106123
resJson.projectId.should.equal(project1.id);
107124
resJson.userId.should.equal(40051332);
125+
should.exist(resJson.id)
108126
server.services.pubsub.publish.calledWith('project.member.invite.created').should.be.true;
109127
request(server)
110-
.put(`/v5/projects/${project1.id}/members/invite`)
128+
.patch(`/v5/projects/${project1.id}/invites/${resJson.id}`)
111129
.set({
112130
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
113131
})
114132
.send({
115-
userId: 40051332,
116133
status: 'accepted',
117134
})
118135
.expect('Content-Type', /json/)
@@ -130,12 +147,11 @@ describe('Project Members create', () => {
130147
server.services.pubsub.publish.calledWith('project.member.added').should.be.true;
131148

132149
request(server)
133-
.put(`/v5/projects/${project1.id}/members/invite`)
150+
.patch(`/v5/projects/${project1.id}/invites/${resJson.id}`)
134151
.set({
135152
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
136153
})
137154
.send({
138-
userId: 40051332,
139155
status: 'accepted',
140156
})
141157
.expect('Content-Type', /json/)
@@ -145,7 +161,7 @@ describe('Project Members create', () => {
145161
done(err3);
146162
} else {
147163
const errorMessage = _.get(res3.body, 'message', '');
148-
sinon.assert.match(errorMessage, /.*invite not found for project id 1, email undefined and userId/);
164+
sinon.assert.match(errorMessage, /.*invite not found for project id 1, inviteId/);
149165
done();
150166
}
151167
});
@@ -349,27 +365,63 @@ describe('Project Members create', () => {
349365
});
350366

351367
it('should send correct BUS API messages when copilot added', (done) => {
368+
const mockHttpClient = _.merge(testUtil.mockHttpClient, {
369+
get: (url) => {
370+
const testCopilot = {
371+
userId: 40051332,
372+
handle: 'test_copilot1',
373+
firstName: 'Firstname',
374+
lastName: 'Lastname',
375+
email: 'test_copilot1@email.com',
376+
};
377+
const testRoleName = {
378+
roleName: USER_ROLE.COPILOT_MANAGER,
379+
};
380+
const ret = {
381+
status: 200,
382+
data: {
383+
id: 'requesterId',
384+
version: 'v3',
385+
result: {
386+
success: true,
387+
status: 200,
388+
content: [],
389+
},
390+
},
391+
};
392+
393+
if (url.indexOf('/_search') >= 0) {
394+
ret.data.result.content.push(testCopilot);
395+
} else {
396+
ret.data.result.content.push(testRoleName);
397+
}
398+
return Promise.resolve(ret);
399+
},
400+
});
401+
sandbox.stub(util, 'getHttpClient', () => mockHttpClient);
352402
request(server)
353-
.post(`/v5/projects/${project1.id}/members/invite`)
403+
.post(`/v5/projects/${project1.id}/invites`)
354404
.set({
355405
Authorization: `Bearer ${testUtil.jwts.admin}`,
356406
})
357407
.send({
358-
userIds: [40051332],
408+
handles: ['test_copilot1'],
359409
role: 'copilot',
360410
})
361411
.expect(201)
362-
.end((err) => {
412+
.end((err, inviteRes) => {
363413
if (err) {
364414
done(err);
365415
} else {
416+
const inviteResJson = inviteRes.body.success[0];
417+
should.exist(inviteResJson)
418+
should.exist(inviteResJson.id)
366419
request(server)
367-
.put(`/v5/projects/${project1.id}/members/invite`)
420+
.patch(`/v5/projects/${project1.id}/invites/${inviteResJson.id}`)
368421
.set({
369422
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
370423
})
371424
.send({
372-
userId: 40051332,
373425
status: 'accepted',
374426
})
375427
.expect('Content-Type', /json/)

0 commit comments

Comments
 (0)