@@ -318,12 +318,32 @@ describe('Projects', () => {
318318 ) . rejects . toThrow ( new DeletedException ( 'Project' , prismaProject1 . projectId ) ) ;
319319 } ) ;
320320
321+ test ( 'createAssembly fails if name is not unique' , async ( ) => {
322+ vi . spyOn ( prisma . assembly , 'findUnique' ) . mockResolvedValue ( { ...prismaAssembly1 , name : 'a1' } ) ;
323+
324+ // no error, no return value
325+ await expect (
326+ async ( ) =>
327+ await ProjectsService . createAssembly (
328+ 'a1' ,
329+ batman ,
330+ {
331+ carNumber : 1 ,
332+ projectNumber : 1 ,
333+ workPackageNumber : 0
334+ } ,
335+ 'file.txt'
336+ )
337+ ) . rejects . toThrow ( new HttpException ( 400 , `a1 already exists as an assembly!` ) ) ;
338+ } ) ;
339+
321340 test ( 'createAssembly fails when no permissions' , async ( ) => {
322341 vi . spyOn ( prisma . project , 'findFirst' ) . mockResolvedValue ( {
323342 wbsElement : { ...prismaProject1 . wbsElement , dateDeleted : '' } ,
324343 projectId : prismaProject1 . projectId ,
325344 teams : [ { prismaTeam1, leads : [ ] , members : [ ] } ]
326345 } as any ) ;
346+ vi . spyOn ( prisma . assembly , 'findUnique' ) . mockResolvedValue ( null ) ;
327347 await expect (
328348 async ( ) =>
329349 await ProjectsService . createAssembly (
@@ -345,6 +365,7 @@ describe('Projects', () => {
345365 projectId : prismaProject1 . projectId ,
346366 teams : [ { prismaTeam1, leads : [ ] , members : [ ] } ]
347367 } as any ) ;
368+ vi . spyOn ( prisma . assembly , 'findUnique' ) . mockResolvedValue ( null ) ;
348369 await expect (
349370 async ( ) =>
350371 await ProjectsService . createAssembly (
@@ -366,6 +387,7 @@ describe('Projects', () => {
366387 projectId : prismaProject1 . projectId ,
367388 teams : [ { prismaTeam1, leads : [ ] , members : [ ] } ]
368389 } as any ) ;
390+ vi . spyOn ( prisma . assembly , 'findUnique' ) . mockResolvedValue ( null ) ;
369391 vi . spyOn ( prisma . assembly , 'create' ) . mockResolvedValue ( prismaAssembly1 ) ;
370392
371393 // no error, no return value
@@ -385,6 +407,7 @@ describe('Projects', () => {
385407 mockGetHighestProjectNumber . mockResolvedValue ( 0 ) ;
386408 vi . spyOn ( prisma . assembly , 'create' ) . mockResolvedValue ( prismaAssembly1 ) ;
387409 vi . spyOn ( prisma . project , 'findFirst' ) . mockResolvedValue ( prismaProject1 ) ;
410+ vi . spyOn ( prisma . assembly , 'findUnique' ) . mockResolvedValue ( null ) ;
388411
389412 // no error, no return value
390413 await ProjectsService . createAssembly (
0 commit comments