Skip to content

Commit 7c7d5ce

Browse files
committed
#1986 - service method returns shared type
1 parent afd8de7 commit 7c7d5ce

4 files changed

Lines changed: 57 additions & 25 deletions

File tree

src/backend/src/controllers/design-reviews.controllers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ export default class DesignReviewsController {
9595
// get the user from the submitter
9696
const user = await getCurrentUser(res);
9797

98-
await DesignReviewsService.editDesignReviews(
98+
await DesignReviewsService.editDesignReview(
9999
user,
100100
designReviewId,
101101
dateScheduled,

src/backend/src/services/design-reviews.services.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Design_Review, Design_Review_Status, User } from '@prisma/client';
1+
import { Design_Review_Status, User } from '@prisma/client';
22
import { DesignReview, WbsNumber, isAdmin, isLeadership, isNotLeadership } from 'shared';
33
import prisma from '../prisma/prisma';
44
import {
@@ -228,7 +228,7 @@ export default class DesignReviewsService {
228228
* @param meetingTimes meeting time must be between 0-83 (Monday 12am - Sunday 12am, 1hr minute increments)
229229
*/
230230

231-
static async editDesignReviews(
231+
static async editDesignReview(
232232
user: User,
233233
designReviewId: string,
234234
dateScheduled: Date,
@@ -243,7 +243,7 @@ export default class DesignReviewsService {
243243
status: Design_Review_Status,
244244
attendees: number[],
245245
meetingTimes: number[]
246-
): Promise<Design_Review> {
246+
): Promise<DesignReview> {
247247
// verify user is allowed to edit work package
248248
if (isNotLeadership(user.role)) throw new AccessDeniedMemberException('edit design reviews');
249249

@@ -289,8 +289,9 @@ export default class DesignReviewsService {
289289
const updatedAttendees = getPrismaQueryUserIds(await getUsers(attendees));
290290

291291
// actually try to update the design review
292-
const updateDesignReviews = await prisma.design_Review.update({
292+
const updateDesignReview = await prisma.design_Review.update({
293293
where: { designReviewId },
294+
...designReviewQueryArgs,
294295
data: {
295296
designReviewId,
296297
dateScheduled,
@@ -313,6 +314,6 @@ export default class DesignReviewsService {
313314
}
314315
}
315316
});
316-
return updateDesignReviews;
317+
return designReviewTransformer(updateDesignReview);
317318
}
318319
}

src/backend/tests/design-reviews.test.ts

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {
22
designReview1,
3+
designReview3,
34
prismaDesignReview1,
45
prismaDesignReview2,
56
prismaDesignReview3,
@@ -29,7 +30,7 @@ describe('Design Reviews', () => {
2930
test('Edit Design Review fails when user is not lead or above', async () => {
3031
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
3132
await expect(() =>
32-
DesignReviewsService.editDesignReviews(
33+
DesignReviewsService.editDesignReview(
3334
wonderwoman,
3435
designReview1.designReviewId,
3536
designReview1.dateScheduled,
@@ -51,7 +52,7 @@ describe('Design Reviews', () => {
5152
test('Edit Design Review fails when ID does not exist', async () => {
5253
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(null);
5354
await expect(() =>
54-
DesignReviewsService.editDesignReviews(
55+
DesignReviewsService.editDesignReview(
5556
batman,
5657
designReview1.designReviewId,
5758
designReview1.dateScheduled,
@@ -73,7 +74,7 @@ describe('Design Reviews', () => {
7374
test('Edit Design Review fails when design review is already deleted', async () => {
7475
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue({ ...designReview1, dateDeleted: new Date() });
7576
await expect(() =>
76-
DesignReviewsService.editDesignReviews(
77+
DesignReviewsService.editDesignReview(
7778
batman,
7879
designReview1.designReviewId,
7980
designReview1.dateScheduled,
@@ -96,7 +97,7 @@ describe('Design Reviews', () => {
9697
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
9798
vi.spyOn(prisma.teamType, 'findUnique').mockResolvedValue(null);
9899
await expect(() =>
99-
DesignReviewsService.editDesignReviews(
100+
DesignReviewsService.editDesignReview(
100101
batman,
101102
designReview1.designReviewId,
102103
designReview1.dateScheduled,
@@ -118,7 +119,7 @@ describe('Design Reviews', () => {
118119
test('Edit Design Review fails when any requiredMembers are in optionalMembers', async () => {
119120
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
120121
await expect(() =>
121-
DesignReviewsService.editDesignReviews(
122+
DesignReviewsService.editDesignReview(
122123
batman,
123124
prismaDesignReview2.designReviewId,
124125
prismaDesignReview2.dateScheduled,
@@ -142,7 +143,7 @@ describe('Design Reviews', () => {
142143
vi.spyOn(prisma.teamType, 'findUnique').mockResolvedValue(teamType1);
143144

144145
await expect(() =>
145-
DesignReviewsService.editDesignReviews(
146+
DesignReviewsService.editDesignReview(
146147
batman,
147148
prismaDesignReview2.designReviewId,
148149
prismaDesignReview2.dateScheduled,
@@ -166,7 +167,7 @@ describe('Design Reviews', () => {
166167
vi.spyOn(prisma.teamType, 'findUnique').mockResolvedValue(teamType1);
167168

168169
await expect(() =>
169-
DesignReviewsService.editDesignReviews(
170+
DesignReviewsService.editDesignReview(
170171
batman,
171172
designReview1.designReviewId,
172173
designReview1.dateScheduled,
@@ -188,7 +189,7 @@ describe('Design Reviews', () => {
188189
test('Edit Design Review fails when the meeting is online and there is no zoomLink / no text', async () => {
189190
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
190191
await expect(() =>
191-
DesignReviewsService.editDesignReviews(
192+
DesignReviewsService.editDesignReview(
192193
batman,
193194
prismaDesignReview2.designReviewId,
194195
prismaDesignReview2.dateScheduled,
@@ -210,7 +211,7 @@ describe('Design Reviews', () => {
210211
test('Edit Design Review fails when the meeting in person and there is no location', async () => {
211212
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
212213
await expect(() =>
213-
DesignReviewsService.editDesignReviews(
214+
DesignReviewsService.editDesignReview(
214215
batman,
215216
prismaDesignReview2.designReviewId,
216217
prismaDesignReview2.dateScheduled,
@@ -232,7 +233,7 @@ describe('Design Reviews', () => {
232233
test('Edit Design Review fails when meeting times are not consecutive', async () => {
233234
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
234235
await expect(() =>
235-
DesignReviewsService.editDesignReviews(
236+
DesignReviewsService.editDesignReview(
236237
batman,
237238
prismaDesignReview2.designReviewId,
238239
prismaDesignReview2.dateScheduled,
@@ -254,7 +255,7 @@ describe('Design Reviews', () => {
254255
test('Edit Design Review fails when meeting times are consecutive and *above* 83', async () => {
255256
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
256257
await expect(() =>
257-
DesignReviewsService.editDesignReviews(
258+
DesignReviewsService.editDesignReview(
258259
batman,
259260
prismaDesignReview2.designReviewId,
260261
prismaDesignReview2.dateScheduled,
@@ -277,7 +278,7 @@ describe('Design Reviews', () => {
277278
vi.spyOn(prisma.design_Review, 'findUnique').mockResolvedValue(designReview1);
278279
vi.spyOn(prisma.teamType, 'findUnique').mockResolvedValue(teamType1);
279280
await expect(() =>
280-
DesignReviewsService.editDesignReviews(
281+
DesignReviewsService.editDesignReview(
281282
batman,
282283
prismaDesignReview2.designReviewId,
283284
prismaDesignReview2.dateScheduled,
@@ -300,7 +301,7 @@ describe('Design Reviews', () => {
300301
vi.spyOn(prisma.design_Review, 'update').mockResolvedValue(prismaDesignReview3);
301302
vi.spyOn(prisma.teamType, 'findUnique').mockResolvedValue(teamType1);
302303

303-
const res = await DesignReviewsService.editDesignReviews(
304+
const res = await DesignReviewsService.editDesignReview(
304305
aquaman,
305306
prismaDesignReview3.designReviewId,
306307
prismaDesignReview3.dateScheduled,
@@ -319,7 +320,7 @@ describe('Design Reviews', () => {
319320

320321
expect(prisma.design_Review.findUnique).toHaveBeenCalledTimes(1);
321322
// THIS TEST IS KINDA BS, but everything else I try fails.
322-
expect(res).toStrictEqual(prismaDesignReview3);
323+
expect(res).toStrictEqual(designReview3);
323324
});
324325
});
325326
describe('getAllDesignReviews', () => {

src/backend/tests/test-data/design-reviews.test-data.ts

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ import {
66
} from '@prisma/client';
77
import { batman, sharedBatman, wonderwoman } from './users.test-data';
88
import { prismaWbsElement1 } from './wbs-element.test-data';
9-
import { DesignReview as SharedDesignReview, DesignReviewStatus as sharedDesignReviewStatus } from 'shared';
9+
import {
10+
DesignReview,
11+
DesignReviewStatus,
12+
DesignReview as SharedDesignReview,
13+
DesignReviewStatus as sharedDesignReviewStatus
14+
} from 'shared';
1015
import designReviewQueryArgs from '../../src/prisma-query-args/design-reviews.query-args';
1116

1217
export const designReview1: PrismaDesignReview = {
@@ -103,16 +108,41 @@ export const prismaDesignReview3: Prisma.Design_ReviewGetPayload<typeof designRe
103108
userDeletedId: null,
104109
docTemplateLink: null,
105110
wbsElementId: 1,
106-
userCreated: wonderwoman,
107-
requiredMembers: [wonderwoman],
111+
userCreated: batman,
112+
requiredMembers: [batman],
108113
optionalMembers: [],
109-
confirmedMembers: [wonderwoman],
114+
confirmedMembers: [batman],
110115
deniedMembers: [],
111-
attendees: [wonderwoman],
116+
attendees: [batman],
112117
userDeleted: null,
113118
wbsElement: prismaWbsElement1,
114119
teamType: teamType1
115120
};
121+
122+
export const designReview3: DesignReview = {
123+
designReviewId: '2',
124+
dateScheduled: new Date('2024-03-25'),
125+
meetingTimes: [80, 81, 82, 83],
126+
dateCreated: new Date('2024-03-10'),
127+
userCreated: sharedBatman,
128+
status: DesignReviewStatus.CONFIRMED,
129+
teamType: teamType1,
130+
location: 'location',
131+
isOnline: true,
132+
isInPerson: false,
133+
zoomLink: 'https://www.zoom.com',
134+
docTemplateLink: undefined,
135+
wbsName: 'car',
136+
wbsNum: { carNumber: 1, projectNumber: 2, workPackageNumber: 0 },
137+
requiredMembers: [sharedBatman],
138+
optionalMembers: [],
139+
confirmedMembers: [sharedBatman],
140+
deniedMembers: [],
141+
attendees: [sharedBatman],
142+
userDeleted: undefined,
143+
dateDeleted: undefined
144+
};
145+
116146
export const sharedDesignReview1: SharedDesignReview = {
117147
designReviewId: '1',
118148
dateScheduled: new Date('2024-03-25'),

0 commit comments

Comments
 (0)