@@ -642,6 +642,46 @@ describe('Projects', () => {
642642 expect ( manufacturer . creatorId ) . toBe ( prismaManufacturer1 . creatorId ) ;
643643 } ) ;
644644
645+ test ( 'deleteManufacturer works' , async ( ) => {
646+ vi . spyOn ( prisma . manufacturer , 'findFirst' ) . mockResolvedValue ( prismaManufacturer1 ) ;
647+ vi . spyOn ( prisma . manufacturer , 'update' ) . mockResolvedValue ( prismaManufacturer1 ) ;
648+
649+ const manufacturer = await ProjectsService . deleteManufacturer ( batman , prismaManufacturer1 . name ) ;
650+
651+ expect ( manufacturer ) . toStrictEqual ( prismaManufacturer1 ) ;
652+ expect ( prisma . manufacturer . findFirst ) . toHaveBeenCalledTimes ( 1 ) ;
653+ expect ( prisma . manufacturer . update ) . toHaveBeenCalledTimes ( 1 ) ;
654+ } ) ;
655+
656+ test ( 'deleteManufacturer fails when user is not at least Head' , async ( ) => {
657+ vi . spyOn ( prisma . manufacturer , 'findFirst' ) . mockResolvedValue ( prismaManufacturer1 ) ;
658+ vi . spyOn ( prisma . manufacturer , 'update' ) . mockResolvedValue ( prismaManufacturer1 ) ;
659+
660+ await expect (
661+ async ( ) => await ProjectsService . deleteManufacturer ( wonderwoman , prismaManufacturer1 . name )
662+ ) . rejects . toThrow ( new AccessDeniedException ( 'Only heads and above can delete a manufacturer' ) ) ;
663+
664+ expect ( prisma . project . findFirst ) . toHaveBeenCalledTimes ( 0 ) ;
665+ expect ( prisma . project . update ) . toHaveBeenCalledTimes ( 0 ) ;
666+ } ) ;
667+
668+ test ( 'deleteManufacturer fails when manufacturer is not found' , async ( ) => {
669+ vi . spyOn ( prisma . manufacturer , 'findFirst' ) . mockResolvedValue ( null ) ;
670+
671+ await expect ( async ( ) => await ProjectsService . deleteManufacturer ( batman , prismaManufacturer1 . name ) ) . rejects . toThrow (
672+ new NotFoundException ( 'Manufacturer' , prismaManufacturer1 . name )
673+ ) ;
674+
675+ expect ( prisma . project . findFirst ) . toHaveBeenCalledTimes ( 0 ) ;
676+ expect ( prisma . project . update ) . toHaveBeenCalledTimes ( 0 ) ;
677+ } ) ;
678+
679+ test ( 'deleteManufacturer fails when manufacturer has been deleted' , async ( ) => {
680+ vi . spyOn ( prisma . manufacturer , 'findFirst' ) . mockResolvedValue ( prismaManufacturer2 ) ;
681+ await expect ( async ( ) => await ProjectsService . deleteManufacturer ( batman , prismaManufacturer2 . name ) ) . rejects . toThrow (
682+ new DeletedException ( 'Manufacturer' , prismaManufacturer2 . name )
683+ ) ;
684+ } ) ;
645685 test ( 'Get all Manufacturer works' , async ( ) => {
646686 vi . spyOn ( prisma . manufacturer , 'findMany' ) . mockResolvedValue ( [ ] ) ;
647687
0 commit comments