Skip to content

Commit ea2880a

Browse files
committed
#1526 - tests are stupid
1 parent 32292b8 commit ea2880a

3 files changed

Lines changed: 66 additions & 19 deletions

File tree

src/backend/src/services/projects.services.ts

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import {
1414
} from '../utils/errors.utils';
1515
import {
1616
addDescriptionBullets,
17-
checkMaterialInputs,
1817
editDescriptionBullets,
1918
getHighestProjectNumber,
2019
getUserFullName
@@ -657,7 +656,27 @@ export default class ProjectsService {
657656

658657
if (!project) throw new NotFoundException('Project', wbsPipe(wbsNumber));
659658

660-
await checkMaterialInputs(manufacturerName, materialTypeName, unitName, assemblyId);
659+
if (assemblyId) {
660+
const assembly = await prisma.assembly.findFirst({ where: { assemblyId } });
661+
if (!assembly) throw new NotFoundException('Assembly', assemblyId);
662+
}
663+
664+
const materialType = await prisma.material_Type.findFirst({
665+
where: { name: materialTypeName }
666+
});
667+
if (!materialType) throw new NotFoundException('Material Type', materialTypeName);
668+
669+
const manufacturer = await prisma.manufacturer.findFirst({
670+
where: { name: manufacturerName }
671+
});
672+
if (!manufacturer) throw new NotFoundException('Manufacturer', manufacturerName);
673+
674+
if (unitName) {
675+
const unit = await prisma.unit.findFirst({
676+
where: { name: unitName }
677+
});
678+
if (!unit) throw new NotFoundException('Unit', unitName);
679+
}
661680

662681
const perms = isLeadership(creator.role) || isUserPartOfTeams(project.teams, creator);
663682

@@ -869,7 +888,27 @@ export default class ProjectsService {
869888
if (!project) throw new NotFoundException('Project', material.wbsElementId);
870889
if (project.wbsElement.dateDeleted) throw new DeletedException('Project', project.projectId);
871890

872-
await checkMaterialInputs(manufacturerName, materialTypeName, unitName, assemblyId);
891+
if (assemblyId) {
892+
const assembly = await prisma.assembly.findFirst({ where: { assemblyId } });
893+
if (!assembly) throw new NotFoundException('Assembly', assemblyId);
894+
}
895+
896+
const materialType = await prisma.material_Type.findFirst({
897+
where: { name: materialTypeName }
898+
});
899+
if (!materialType) throw new NotFoundException('Material Type', materialTypeName);
900+
901+
const manufacturer = await prisma.manufacturer.findFirst({
902+
where: { name: manufacturerName }
903+
});
904+
if (!manufacturer) throw new NotFoundException('Manufacturer', manufacturerName);
905+
906+
if (unitName) {
907+
const unit = await prisma.unit.findFirst({
908+
where: { name: unitName }
909+
});
910+
if (!unit) throw new NotFoundException('Unit', unitName);
911+
}
873912

874913
const perms = isLeadership(submitter.role) || isUserPartOfTeams(project.teams, submitter);
875914

src/backend/src/utils/projects.utils.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ export const checkMaterialInputs = async (
7575
unitName?: string,
7676
assemblyId?: string
7777
) => {
78-
if (!!assemblyId) {
78+
console.log('test');
79+
80+
if (assemblyId) {
7981
const assembly = await prisma.assembly.findFirst({ where: { assemblyId } });
8082
if (!assembly) throw new NotFoundException('Assembly', assemblyId);
8183
}
@@ -90,7 +92,7 @@ export const checkMaterialInputs = async (
9092
});
9193
if (!manufacturer) throw new NotFoundException('Manufacturer', manufacturerName);
9294

93-
if (!!unitName) {
95+
if (unitName) {
9496
const unit = await prisma.unit.findFirst({
9597
where: { name: unitName }
9698
});

src/backend/tests/projects.test.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -444,14 +444,14 @@ describe('Projects', () => {
444444
'manufacturer',
445445
'partNum',
446446
6,
447-
'FT',
448447
800,
449448
400,
450449
'https://www.google.com',
451450
'none',
452451
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
453452
'assemblyName',
454-
'file'
453+
'file',
454+
'FT'
455455
)
456456
).rejects.toThrow(new NotFoundException('Project', '1.1.1'));
457457
});
@@ -468,14 +468,14 @@ describe('Projects', () => {
468468
'manufacturer',
469469
'partNum',
470470
6,
471-
'FT',
472471
800,
473472
400,
474473
'https://www.google.com',
475474
'none',
476475
{ carNumber: 1, projectNumber: 1, workPackageNumber: 0 },
477476
'assemblyName',
478-
'file'
477+
'file',
478+
'FT'
479479
)
480480
).rejects.toThrow(new NotFoundException('Assembly', 'assemblyName'));
481481
});
@@ -493,14 +493,14 @@ describe('Projects', () => {
493493
'manufacturer',
494494
'partNum',
495495
6,
496-
'FT',
497496
800,
498497
400,
499498
'https://www.google.com',
500499
'none',
501500
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
502501
'assemblyName',
503-
'file'
502+
'file',
503+
'FT'
504504
)
505505
).rejects.toThrow(new NotFoundException('Material Type', 'type'));
506506
});
@@ -519,14 +519,14 @@ describe('Projects', () => {
519519
'manufacturer',
520520
'partNum',
521521
6,
522-
'FT',
523522
800,
524523
400,
525524
'https://www.google.com',
526525
'none',
527526
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
528527
'assemblyName',
529-
'file'
528+
'file',
529+
'FT'
530530
)
531531
).rejects.toThrow(new NotFoundException('Manufacturer', 'manufacturer'));
532532
});
@@ -546,14 +546,14 @@ describe('Projects', () => {
546546
'manufacturer',
547547
'partNum',
548548
6,
549-
'FT',
550549
800,
551550
400,
552551
'https://www.google.com',
553552
'none',
554553
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
555554
'assemblyName',
556-
'file'
555+
'file',
556+
'FT'
557557
)
558558
).rejects.toThrow(new NotFoundException('Unit', 'FT'));
559559
});
@@ -575,14 +575,14 @@ describe('Projects', () => {
575575
'manufacturer',
576576
'partNum',
577577
6,
578-
'FT',
579578
800,
580579
400,
581580
'https://www.google.com',
582581
'none',
583582
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
584583
'assemblyName',
585-
'file'
584+
'file',
585+
'FT'
586586
)
587587
).rejects.toThrow(new AccessDeniedException('create materials'));
588588
});
@@ -603,14 +603,14 @@ describe('Projects', () => {
603603
prismaManufacturer2.name,
604604
'partNum',
605605
6,
606-
'FT',
607606
800,
608607
400,
609608
'https://www.google.com',
610609
'none',
611610
{ carNumber: 1, projectNumber: 1, workPackageNumber: 1 },
612611
'assemblyName',
613-
'file'
612+
'file',
613+
'FT'
614614
);
615615

616616
expect(res).toBeDefined();
@@ -695,6 +695,7 @@ describe('Projects', () => {
695695
prismaMaterial2.materialId,
696696
prismaMaterial2.name,
697697
prismaMaterial2.status,
698+
prismaMaterial2.materialTypeName,
698699
prismaMaterial2.manufacturerName,
699700
prismaMaterial2.manufacturerPartNumber,
700701
prismaMaterial2.quantity,
@@ -719,6 +720,7 @@ describe('Projects', () => {
719720
prismaMaterial2.materialId,
720721
prismaMaterial2.name,
721722
prismaMaterial2.status,
723+
prismaMaterial2.materialTypeName,
722724
prismaMaterial2.manufacturerName,
723725
prismaMaterial2.manufacturerPartNumber,
724726
prismaMaterial2.quantity,
@@ -743,6 +745,7 @@ describe('Projects', () => {
743745
prismaMaterial2.materialId,
744746
prismaMaterial2.name,
745747
prismaMaterial2.status,
748+
prismaMaterial2.materialTypeName,
746749
prismaMaterial2.manufacturerName,
747750
prismaMaterial2.manufacturerPartNumber,
748751
prismaMaterial2.quantity,
@@ -768,6 +771,7 @@ describe('Projects', () => {
768771
prismaMaterial2.materialId,
769772
prismaMaterial2.name,
770773
prismaMaterial2.status,
774+
prismaMaterial2.materialTypeName,
771775
prismaMaterial2.manufacturerName,
772776
prismaMaterial2.manufacturerPartNumber,
773777
prismaMaterial2.quantity,
@@ -793,6 +797,7 @@ describe('Projects', () => {
793797
prismaMaterial2.materialId,
794798
prismaMaterial2.name,
795799
prismaMaterial2.status,
800+
prismaMaterial2.materialTypeName,
796801
prismaMaterial2.manufacturerName,
797802
prismaMaterial2.manufacturerPartNumber,
798803
prismaMaterial2.quantity,
@@ -817,6 +822,7 @@ describe('Projects', () => {
817822
prismaMaterial2.materialId,
818823
prismaMaterial2.name,
819824
prismaMaterial2.status,
825+
prismaMaterial2.materialTypeName,
820826
prismaMaterial2.manufacturerName,
821827
prismaMaterial2.manufacturerPartNumber,
822828
prismaMaterial2.quantity,

0 commit comments

Comments
 (0)