Skip to content

Commit

Permalink
Merge master into dev (#3789)
Browse files Browse the repository at this point in the history
  • Loading branch information
benoitguigal authored Nov 28, 2024
2 parents 2294e63 + a97e345 commit 30549fb
Show file tree
Hide file tree
Showing 5 changed files with 214 additions and 117 deletions.
1 change: 1 addition & 0 deletions back/src/__tests__/factories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@ const formdata: Partial<Prisma.FormCreateInput> = {
wasteDetailsIsDangerous: true,
wasteDetailsName: "Divers",
wasteDetailsOnuCode: "2003",
wasteDetailsIsSubjectToADR: true,
wasteDetailsPackagingInfos: [{ type: "CITERNE", quantity: 1 }],
wasteDetailsPop: false,
wasteDetailsQuantity: 22.5,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ describe("Mutation.duplicateForm", () => {
brokerValidityLimit,
ecoOrganismeName,
ecoOrganismeSiret,
wasteDetailsIsSubjectToADR,
...rest
} = form;

Expand Down Expand Up @@ -296,8 +297,7 @@ describe("Mutation.duplicateForm", () => {
"hasCiterneBeenWashedOut",
"emptyReturnADR",
"wasteDetailsNonRoadRegulationMention",
"wasteDetailsOnuCode",
"wasteDetailsIsSubjectToADR"
"wasteDetailsOnuCode"
];

const expectedSkippedTransporter = [
Expand Down Expand Up @@ -394,7 +394,8 @@ describe("Mutation.duplicateForm", () => {
brokerDepartment,
brokerValidityLimit,
ecoOrganismeName,
ecoOrganismeSiret
ecoOrganismeSiret,
wasteDetailsIsSubjectToADR
});

expect(duplicatedTransporter).toMatchObject({
Expand Down Expand Up @@ -1257,4 +1258,80 @@ describe("Mutation.duplicateForm", () => {
);
}
);

it.each([true, false, null])(
"should set `wasteDetailsIsSubjectToADR=true` when waste is dangerous " +
"and wasteDetailsIsSubjectToADR is %p on the BSDD being duplicated",
async wasteDetailsIsSubjectToADR => {
const { user, company } = await userWithCompanyFactory(UserRole.MEMBER);
const form = await formFactory({
ownerId: user.id,
opt: {
emitterCompanySiret: company.siret,
wasteDetailsIsDangerous: true,
wasteDetailsIsSubjectToADR
}
});

const { mutate } = makeClient(user);
const { data } = await mutate<Pick<Mutation, "duplicateForm">>(
DUPLICATE_FORM,
{
variables: {
id: form.id
}
}
);

const duplicatedForm = await prisma.form.findUniqueOrThrow({
where: {
id: data.duplicateForm.id
}
});

expect(duplicatedForm).toEqual(
expect.objectContaining({
wasteDetailsIsSubjectToADR: true
})
);
}
);

it.each([true, false, null])(
"should keep existing wasteDetailsIsSubjectToADR when" +
" wasteDetailsIsSubjectToADR is %p and waste is not dangerous",
async wasteDetailsIsSubjectToADR => {
const { user, company } = await userWithCompanyFactory(UserRole.MEMBER);
const form = await formFactory({
ownerId: user.id,
opt: {
emitterCompanySiret: company.siret,
wasteDetailsIsDangerous: false,
wasteDetailsIsSubjectToADR
}
});

const { mutate } = makeClient(user);
const { data } = await mutate<Pick<Mutation, "duplicateForm">>(
DUPLICATE_FORM,
{
variables: {
id: form.id
}
}
);

const duplicatedForm = await prisma.form.findUniqueOrThrow({
where: {
id: data.duplicateForm.id
}
});

expect(duplicatedForm).toEqual(
expect.objectContaining({
wasteDetailsIsSubjectToADR
})
);
}
);
});
Original file line number Diff line number Diff line change
Expand Up @@ -563,38 +563,43 @@ describe("Mutation.markAsSealed", () => {
}
);

it("should be required to provide onuCode for dangerous wastes", async () => {
const { user, company: emitterCompany } = await userWithCompanyFactory(
"MEMBER"
);
const recipientCompany = await destinationFactory();
const form = await formFactory({
ownerId: user.id,
opt: {
status: "DRAFT",
emitterCompanySiret: emitterCompany.siret,
recipientCompanySiret: recipientCompany.siret,
wasteDetailsCode: "05 01 04*",
wasteDetailsOnuCode: null
}
});
it(
"should be required to provide onuCode for dangerous wastes" +
" when `wasteDetailsIsSubjectToADR` is not speified ",
async () => {
const { user, company: emitterCompany } = await userWithCompanyFactory(
"MEMBER"
);
const recipientCompany = await destinationFactory();
const form = await formFactory({
ownerId: user.id,
opt: {
status: "DRAFT",
emitterCompanySiret: emitterCompany.siret,
recipientCompanySiret: recipientCompany.siret,
wasteDetailsCode: "05 01 04*",
wasteDetailsOnuCode: null,
wasteDetailsIsSubjectToADR: null
}
});

const { mutate } = makeClient(user);
const { mutate } = makeClient(user);

const { errors } = await mutate(MARK_AS_SEALED, {
variables: {
id: form.id
}
});
expect(errors).toEqual([
expect.objectContaining({
message: [
"Erreur, impossible de valider le bordereau car des champs obligatoires ne sont pas renseignés.",
`Erreur(s): La mention ADR est obligatoire pour les déchets dangereux. Merci d'indiquer "non soumis" si nécessaire.`
].join("\n")
})
]);
});
const { errors } = await mutate(MARK_AS_SEALED, {
variables: {
id: form.id
}
});
expect(errors).toEqual([
expect.objectContaining({
message: [
"Erreur, impossible de valider le bordereau car des champs obligatoires ne sont pas renseignés.",
`Erreur(s): La mention ADR est obligatoire pour les déchets dangereux. Merci d'indiquer "non soumis" si nécessaire.`
].join("\n")
})
]);
}
);

it("should be optional to provide onuCode for non-dangerous wastes", async () => {
const { user, company: emitterCompany } = await userWithCompanyFactory(
Expand All @@ -609,6 +614,7 @@ describe("Mutation.markAsSealed", () => {
recipientCompanySiret: recipientCompany.siret,
wasteDetailsCode: "01 01 01",
wasteDetailsIsDangerous: false,
wasteDetailsIsSubjectToADR: false,
wasteDetailsOnuCode: null
}
});
Expand Down
Loading

0 comments on commit 30549fb

Please sign in to comment.