Skip to content

Commit 1720640

Browse files
committed
update unit test
1 parent ff7bb77 commit 1720640

File tree

6 files changed

+290
-9
lines changed

6 files changed

+290
-9
lines changed

src/routes/phaseProducts/create.spec.js

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,14 @@ describe('Phase Products', () => {
7171
isPrimary: true,
7272
createdBy: 1,
7373
updatedBy: 1,
74+
}, {
75+
id: 3,
76+
userId: testUtil.userIds.manager,
77+
projectId,
78+
role: 'manager',
79+
isPrimary: false,
80+
createdBy: 1,
81+
updatedBy: 1,
7482
}]).then(() => {
7583
models.ProjectPhase.create({
7684
name: 'test project phase',
@@ -177,7 +185,7 @@ describe('Phase Products', () => {
177185
request(server)
178186
.post(`/v4/projects/99999/phases/${phaseId}/products`)
179187
.set({
180-
Authorization: `Bearer ${testUtil.jwts.manager}`,
188+
Authorization: `Bearer ${testUtil.jwts.admin}`,
181189
})
182190
.send({ param: body })
183191
.expect('Content-Type', /json/)
@@ -220,6 +228,47 @@ describe('Phase Products', () => {
220228
});
221229
});
222230

231+
it('should return 201 if requested by admin', (done) => {
232+
request(server)
233+
.post(`/v4/projects/${projectId}/phases/${phaseId}/products`)
234+
.set({
235+
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
236+
})
237+
.send({ param: body })
238+
.expect('Content-Type', /json/)
239+
.expect(201)
240+
.end(done);
241+
});
242+
243+
it('should return 201 if requested by manager which is a member', (done) => {
244+
request(server)
245+
.post(`/v4/projects/${projectId}/phases/${phaseId}/products`)
246+
.set({
247+
Authorization: `Bearer ${testUtil.jwts.manager}`,
248+
})
249+
.send({ param: body })
250+
.expect('Content-Type', /json/)
251+
.expect(201)
252+
.end(done);
253+
});
254+
255+
it('should return 403 if requested by non-member copilot', (done) => {
256+
models.ProjectMember.destroy({
257+
where: { userId: testUtil.userIds.copilot, projectId },
258+
})
259+
.then(() => {
260+
request(server)
261+
.post(`/v4/projects/${projectId}/phases/${phaseId}/products`)
262+
.set({
263+
Authorization: `Bearer ${testUtil.jwts.copilot}`,
264+
})
265+
.send({ param: body })
266+
.expect('Content-Type', /json/)
267+
.expect(403)
268+
.end(done);
269+
});
270+
});
271+
223272
describe('Bus api', () => {
224273
let createEventSpy;
225274
const sandbox = sinon.sandbox.create();

src/routes/phaseProducts/delete.spec.js

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,14 @@ describe('Phase Products', () => {
9999
isPrimary: true,
100100
createdBy: 1,
101101
updatedBy: 1,
102+
}, {
103+
id: 3,
104+
userId: testUtil.userIds.manager,
105+
projectId,
106+
role: 'manager',
107+
isPrimary: false,
108+
createdBy: 1,
109+
updatedBy: 1,
102110
}]).then(() => {
103111
models.ProjectPhase.create({
104112
name: 'test project phase',
@@ -156,7 +164,7 @@ describe('Phase Products', () => {
156164
request(server)
157165
.delete(`/v4/projects/999/phases/${phaseId}/products/${productId}`)
158166
.set({
159-
Authorization: `Bearer ${testUtil.jwts.manager}`,
167+
Authorization: `Bearer ${testUtil.jwts.admin}`,
160168
})
161169
.expect('Content-Type', /json/)
162170
.expect(404, done);
@@ -192,6 +200,41 @@ describe('Phase Products', () => {
192200
.end(err => expectAfterDelete(projectId, phaseId, productId, err, done));
193201
});
194202

203+
it('should return 204 if requested by admin', (done) => {
204+
request(server)
205+
.delete(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
206+
.set({
207+
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
208+
})
209+
.expect(204)
210+
.end(done);
211+
});
212+
213+
it('should return 204 if requested by manager which is a member', (done) => {
214+
request(server)
215+
.delete(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
216+
.set({
217+
Authorization: `Bearer ${testUtil.jwts.manager}`,
218+
})
219+
.expect(204)
220+
.end(done);
221+
});
222+
223+
it('should return 403 if requested by non-member copilot', (done) => {
224+
models.ProjectMember.destroy({
225+
where: { userId: testUtil.userIds.copilot, projectId },
226+
})
227+
.then(() => {
228+
request(server)
229+
.delete(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
230+
.set({
231+
Authorization: `Bearer ${testUtil.jwts.copilot}`,
232+
})
233+
.expect(403)
234+
.end(done);
235+
});
236+
});
237+
195238
describe('Bus api', () => {
196239
let createEventSpy;
197240
const sandbox = sinon.sandbox.create();

src/routes/phaseProducts/update.spec.js

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('Phase Products', () => {
5151
lastName: 'lName',
5252
email: 'some@abc.com',
5353
};
54-
before((done) => {
54+
beforeEach((done) => {
5555
// mocks
5656
testUtil.clearDb()
5757
.then(() => {
@@ -85,6 +85,14 @@ describe('Phase Products', () => {
8585
isPrimary: true,
8686
createdBy: 1,
8787
updatedBy: 1,
88+
}, {
89+
id: 3,
90+
userId: testUtil.userIds.manager,
91+
projectId,
92+
role: 'manager',
93+
isPrimary: false,
94+
createdBy: 1,
95+
updatedBy: 1,
8896
}]).then(() => {
8997
models.ProjectPhase.create({
9098
name: 'test project phase',
@@ -144,7 +152,7 @@ describe('Phase Products', () => {
144152
request(server)
145153
.patch(`/v4/projects/999/phases/${phaseId}/products/${productId}`)
146154
.set({
147-
Authorization: `Bearer ${testUtil.jwts.manager}`,
155+
Authorization: `Bearer ${testUtil.jwts.admin}`,
148156
})
149157
.send({ param: updateBody })
150158
.expect('Content-Type', /json/)
@@ -214,6 +222,47 @@ describe('Phase Products', () => {
214222
});
215223
});
216224

225+
it('should return 200 if requested by admin', (done) => {
226+
request(server)
227+
.patch(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
228+
.set({
229+
Authorization: `Bearer ${testUtil.jwts.connectAdmin}`,
230+
})
231+
.send({ param: updateBody })
232+
.expect('Content-Type', /json/)
233+
.expect(200)
234+
.end(done);
235+
});
236+
237+
it('should return 200 if requested by manager which is a member', (done) => {
238+
request(server)
239+
.patch(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
240+
.set({
241+
Authorization: `Bearer ${testUtil.jwts.manager}`,
242+
})
243+
.send({ param: updateBody })
244+
.expect('Content-Type', /json/)
245+
.expect(200)
246+
.end(done);
247+
});
248+
249+
it('should return 403 if requested by non-member copilot', (done) => {
250+
models.ProjectMember.destroy({
251+
where: { userId: testUtil.userIds.copilot, projectId },
252+
})
253+
.then(() => {
254+
request(server)
255+
.patch(`/v4/projects/${projectId}/phases/${phaseId}/products/${productId}`)
256+
.set({
257+
Authorization: `Bearer ${testUtil.jwts.copilot}`,
258+
})
259+
.send({ param: updateBody })
260+
.expect('Content-Type', /json/)
261+
.expect(403)
262+
.end(done);
263+
});
264+
});
265+
217266
describe('Bus api', () => {
218267
let createEventSpy;
219268
const sandbox = sinon.sandbox.create();

src/routes/phases/create.spec.js

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ describe('Project Phases', () => {
5454
email: 'some@abc.com',
5555
};
5656
let productTemplateId;
57-
before((done) => {
57+
beforeEach((done) => {
5858
// mocks
5959
testUtil.clearDb()
6060
.then(() => {
@@ -89,6 +89,14 @@ describe('Project Phases', () => {
8989
isPrimary: true,
9090
createdBy: 1,
9191
updatedBy: 1,
92+
}, {
93+
id: 3,
94+
userId: testUtil.userIds.manager,
95+
projectId,
96+
role: 'manager',
97+
isPrimary: false,
98+
createdBy: 1,
99+
updatedBy: 1,
92100
}]);
93101
});
94102
})
@@ -224,7 +232,7 @@ describe('Project Phases', () => {
224232
request(server)
225233
.post('/v4/projects/99999/phases/')
226234
.set({
227-
Authorization: `Bearer ${testUtil.jwts.manager}`,
235+
Authorization: `Bearer ${testUtil.jwts.admin}`,
228236
})
229237
.send({ param: body })
230238
.expect('Content-Type', /json/)
@@ -347,6 +355,47 @@ describe('Project Phases', () => {
347355
});
348356
});
349357

358+
it('should return 201 if requested by admin', (done) => {
359+
request(server)
360+
.post(`/v4/projects/${projectId}/phases/`)
361+
.set({
362+
Authorization: `Bearer ${testUtil.jwts.admin}`,
363+
})
364+
.send({ param: body })
365+
.expect('Content-Type', /json/)
366+
.expect(201)
367+
.end(done);
368+
});
369+
370+
it('should return 201 if requested by manager which is a member', (done) => {
371+
request(server)
372+
.post(`/v4/projects/${projectId}/phases/`)
373+
.set({
374+
Authorization: `Bearer ${testUtil.jwts.manager}`,
375+
})
376+
.send({ param: body })
377+
.expect('Content-Type', /json/)
378+
.expect(201)
379+
.end(done);
380+
});
381+
382+
it('should return 403 if requested by non-member copilot', (done) => {
383+
models.ProjectMember.destroy({
384+
where: { userId: testUtil.userIds.copilot, projectId },
385+
})
386+
.then(() => {
387+
request(server)
388+
.post(`/v4/projects/${projectId}/phases/`)
389+
.set({
390+
Authorization: `Bearer ${testUtil.jwts.copilot}`,
391+
})
392+
.send({ param: body })
393+
.expect('Content-Type', /json/)
394+
.expect(403)
395+
.end(done);
396+
});
397+
});
398+
350399
describe('Bus api', () => {
351400
let createEventSpy;
352401
const sandbox = sinon.sandbox.create();

src/routes/phases/delete.spec.js

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,14 @@ describe('Project Phases', () => {
105105
isPrimary: true,
106106
createdBy: 1,
107107
updatedBy: 1,
108+
}, {
109+
id: 3,
110+
userId: testUtil.userIds.manager,
111+
projectId,
112+
role: 'manager',
113+
isPrimary: false,
114+
createdBy: 1,
115+
updatedBy: 1,
108116
}]).then(() => {
109117
_.assign(body, { projectId });
110118
models.ProjectPhase.create(body).then((phase) => {
@@ -145,7 +153,7 @@ describe('Project Phases', () => {
145153
request(server)
146154
.delete(`/v4/projects/999/phases/${phaseId}`)
147155
.set({
148-
Authorization: `Bearer ${testUtil.jwts.manager}`,
156+
Authorization: `Bearer ${testUtil.jwts.admin}`,
149157
})
150158
.expect('Content-Type', /json/)
151159
.expect(404, done);
@@ -167,9 +175,44 @@ describe('Project Phases', () => {
167175
.set({
168176
Authorization: `Bearer ${testUtil.jwts.copilot}`,
169177
})
178+
.expect(204)
170179
.end(err => expectAfterDelete(projectId, phaseId, err, done));
171180
});
172181

182+
it('should return 204 if requested by admin', (done) => {
183+
request(server)
184+
.delete(`/v4/projects/${projectId}/phases/${phaseId}`)
185+
.set({
186+
Authorization: `Bearer ${testUtil.jwts.admin}`,
187+
})
188+
.expect(204)
189+
.end(done);
190+
});
191+
192+
it('should return 204 if requested by manager which is a member', (done) => {
193+
request(server)
194+
.delete(`/v4/projects/${projectId}/phases/${phaseId}`)
195+
.set({
196+
Authorization: `Bearer ${testUtil.jwts.manager}`,
197+
})
198+
.expect(204)
199+
.end(done);
200+
});
201+
202+
it('should return 403 if requested by non-member copilot', (done) => {
203+
models.ProjectMember.destroy({
204+
where: { userId: testUtil.userIds.copilot, projectId },
205+
}).then(() => {
206+
request(server)
207+
.delete(`/v4/projects/${projectId}/phases/${phaseId}`)
208+
.set({
209+
Authorization: `Bearer ${testUtil.jwts.copilot}`,
210+
})
211+
.expect(403)
212+
.end(done);
213+
});
214+
});
215+
173216
describe('Bus api', () => {
174217
let createEventSpy;
175218
const sandbox = sinon.sandbox.create();

0 commit comments

Comments
 (0)