1- import { designReview1 , prismaDesignReview2 } from './test-data/design-reviews.test-data' ;
1+ import { prismaDesignReview1 , prismaDesignReview2 , sharedDesignReview1 } from './test-data/design-reviews.test-data' ;
22import { batman , wonderwoman } from './test-data/users.test-data' ;
33import DesignReviewService from '../src/services/design-review.services' ;
44import prisma from '../src/prisma/prisma' ;
@@ -25,20 +25,20 @@ describe('Design Reviews', () => {
2525 describe ( 'Delete Design Review Tests' , ( ) => {
2626 test ( 'Delete Reimbursment Request fails when ID does not exist' , async ( ) => {
2727 vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( null ) ;
28- await expect ( ( ) => DesignReviewService . deleteDesignReview ( batman , designReview1 . designReviewId ) ) . rejects . toThrow (
29- new NotFoundException ( 'Design Review' , designReview1 . designReviewId )
28+ await expect ( ( ) => DesignReviewService . deleteDesignReview ( batman , prismaDesignReview1 . designReviewId ) ) . rejects . toThrow (
29+ new NotFoundException ( 'Design Review' , prismaDesignReview1 . designReviewId )
3030 ) ;
3131 } ) ;
3232 test ( 'Delete Design Review fails when user is not an admin nor the user who created the design review' , async ( ) => {
33- vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( designReview1 ) ;
34- await expect ( ( ) => DesignReviewService . deleteDesignReview ( wonderwoman , designReview1 . designReviewId ) ) . rejects . toThrow (
35- new AccessDeniedAdminOnlyException ( 'delete design reviews' )
36- ) ;
33+ vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( prismaDesignReview1 ) ;
34+ await expect ( ( ) =>
35+ DesignReviewService . deleteDesignReview ( wonderwoman , prismaDesignReview1 . designReviewId )
36+ ) . rejects . toThrow ( new AccessDeniedAdminOnlyException ( 'delete design reviews' ) ) ;
3737 } ) ;
3838 test ( 'Delete Design Review fails when design review is already deleted' , async ( ) => {
39- vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( { ...designReview1 , dateDeleted : new Date ( ) } ) ;
40- await expect ( ( ) => DesignReviewService . deleteDesignReview ( batman , designReview1 . designReviewId ) ) . rejects . toThrow (
41- new DeletedException ( 'Design Review' , designReview1 . designReviewId )
39+ vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( { ...prismaDesignReview1 , dateDeleted : new Date ( ) } ) ;
40+ await expect ( ( ) => DesignReviewService . deleteDesignReview ( batman , prismaDesignReview1 . designReviewId ) ) . rejects . toThrow (
41+ new DeletedException ( 'Design Review' , prismaDesignReview1 . designReviewId )
4242 ) ;
4343 } ) ;
4444 test ( 'Delete Design Review succeeds when user is admin' , async ( ) => {
@@ -67,4 +67,28 @@ describe('Design Reviews', () => {
6767 expect ( prismaDesignReview2 . dateDeleted ) . toBeDefined ( ) ;
6868 } ) ;
6969 } ) ;
70+
71+ describe ( 'Get Single Design Review Tests' , ( ) => {
72+ test ( 'Get Single Design Review fails when ID does not exist' , async ( ) => {
73+ vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( null ) ;
74+ await expect ( ( ) =>
75+ DesignReviewService . getSingleDesignReview ( batman , prismaDesignReview1 . designReviewId )
76+ ) . rejects . toThrow ( new NotFoundException ( 'Design Review' , prismaDesignReview1 . designReviewId ) ) ;
77+ } ) ;
78+ test ( 'Get Single Design Review fails when design review is already deleted' , async ( ) => {
79+ vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( { ...prismaDesignReview1 , dateDeleted : new Date ( ) } ) ;
80+ await expect ( ( ) =>
81+ DesignReviewService . getSingleDesignReview ( batman , prismaDesignReview1 . designReviewId )
82+ ) . rejects . toThrow ( new DeletedException ( 'Design Review' , prismaDesignReview1 . designReviewId ) ) ;
83+ } ) ;
84+
85+ test ( 'Get Single Design Review succeeds' , async ( ) => {
86+ vi . spyOn ( prisma . design_Review , 'findUnique' ) . mockResolvedValue ( prismaDesignReview1 ) ;
87+
88+ const result = await DesignReviewService . getSingleDesignReview ( wonderwoman , prismaDesignReview1 . designReviewId ) ;
89+
90+ expect ( prisma . design_Review . findUnique ) . toHaveBeenCalledTimes ( 1 ) ;
91+ expect ( result ) . toEqual ( sharedDesignReview1 ) ;
92+ } ) ;
93+ } ) ;
7094} ) ;
0 commit comments