diff --git a/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/__tests__/wording-same-result.test.tsx b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/__tests__/wording-same-result.test.tsx new file mode 100644 index 0000000000..bc3b9b2f33 --- /dev/null +++ b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/__tests__/wording-same-result.test.tsx @@ -0,0 +1,87 @@ +import { DureePreavisLicenciement } from "../index"; +import { ui } from "./ui"; +import { fireEvent, render, screen } from "@testing-library/react"; + +jest.spyOn(Storage.prototype, "setItem"); +Storage.prototype.getItem = jest.fn( + () => ` + { + "num": 3239, + "shortTitle": "shortTitle", + "id": "id", + "title": "title", + "url": "https://www.url.fr", + "slug": "3239" + } + ` +); + +describe("DureePreavisLicenciement : wording on same result", () => { + test("Should display a specific message when legal and agreement result are equals", () => { + render(); + fireEvent.click(ui.introduction.startButton.get()); + + fireEvent.click(screen.getByTestId("seriousMisconduct-non")); + fireEvent.click(ui.next.get()); + + fireEvent.click(screen.getByTestId("disabledWorker-non")); + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("cdt.ancienneté"), { + target: { value: "43| Plus de 2 ans" }, + }); + fireEvent.click(ui.next.get()); + + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("criteria.catégorie professionnelle"), { + target: { value: "100| Salariés du particulier employeur" }, + }); + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("criteria.ancienneté"), { + target: { value: "42| 2 ans ou plus" }, + }); + fireEvent.click(ui.next.get()); + + expect( + screen.queryByText( + /La durée prévue par le code du travail est le même que celle prévue par la convention collective/ + ) + ).toBeInTheDocument(); + }); + + test("Should display default message when legal and agreement result are not equals", () => { + render(); + fireEvent.click(ui.introduction.startButton.get()); + + fireEvent.click(screen.getByTestId("seriousMisconduct-non")); + fireEvent.click(ui.next.get()); + + fireEvent.click(screen.getByTestId("disabledWorker-non")); + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("cdt.ancienneté"), { + target: { value: "15| Moins de 6 mois" }, + }); + fireEvent.click(ui.next.get()); + + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("criteria.catégorie professionnelle"), { + target: { value: "100| Salariés du particulier employeur" }, + }); + fireEvent.click(ui.next.get()); + + fireEvent.change(screen.getByTestId("criteria.ancienneté"), { + target: { value: "42| 2 ans ou plus" }, + }); + fireEvent.click(ui.next.get()); + + expect( + screen.queryByText( + /Il s’agit de la durée la plus longue entre la durée légale prévue par le Code du travail et la durée conventionnelle prévue par la convention collective/ + ) + ).toBeInTheDocument(); + }); +}); diff --git a/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/Result/Components/DisplayResult.tsx b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/Result/Components/DisplayResult.tsx index b02031c4f5..c9b709a880 100644 --- a/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/Result/Components/DisplayResult.tsx +++ b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/Result/Components/DisplayResult.tsx @@ -9,6 +9,35 @@ type Props = { agreementSituation?: LicenciementSituation; }; +const ShowMessage = ({ + idcc, + legalDuration, + agreementDuration, +}: { + idcc: number; + legalDuration: number; + agreementDuration?: number; +}) => { + if (idcc > 0) { + if (legalDuration === agreementDuration) { + return ( +

+ La durée prévue par le code du travail est le même que celle prévue + par la convention collective : +

+ ); + } + return ( +

+ Il s’agit de la durée la plus longue entre la durée légale prévue par le + Code du travail et la durée conventionnelle prévue par la convention + collective : +

+ ); + } + return; +}; + const DisplayResult = ({ idcc, legalSituation, @@ -20,13 +49,11 @@ const DisplayResult = ({ return ( <> Résultat - {idcc > 0 && ( -

- Il s’agit de la durée la plus longue entre la durée légale prévue par - le Code du travail et la durée conventionnelle prévue par la - convention collective : -

- )} +
  • Durée légale :{" "} diff --git a/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/__tests__/__snapshots__/Result.test.js.snap b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/__tests__/__snapshots__/Result.test.js.snap index 99c487097b..fc4beb6ce4 100644 --- a/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/__tests__/__snapshots__/Result.test.js.snap +++ b/packages/code-du-travail-frontend/src/outils/DureePreavisLicenciement/steps/__tests__/__snapshots__/Result.test.js.snap @@ -54,7 +54,7 @@ exports[` should render with O duration 1`] = ` Résultat

    - Il s’agit de la durée la plus longue entre la durée légale prévue par le Code du travail et la durée conventionnelle prévue par la convention collective : + La durée prévue par le code du travail est le même que celle prévue par la convention collective :

    • @@ -291,7 +291,7 @@ exports[` should render with both CC duration and CDT duration 1`] Résultat

      - Il s’agit de la durée la plus longue entre la durée légale prévue par le Code du travail et la durée conventionnelle prévue par la convention collective : + La durée prévue par le code du travail est le même que celle prévue par la convention collective :