diff --git a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/__tests__/stepReducer.test.js b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/__tests__/stepReducer.test.js
index 48f7bcee34..3a12b4207f 100644
--- a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/__tests__/stepReducer.test.js
+++ b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/__tests__/stepReducer.test.js
@@ -1,6 +1,6 @@
-import { stepReducer, initialSteps } from "../stepReducer";
+import { stepPrime, stepReducer, initialSteps } from "../stepReducer";
-describe("getInitialSteps()", () => {
+describe("initialSteps", () => {
it("should return default steps", () => {
expect(initialSteps).toMatchInlineSnapshot(`
Array [
@@ -12,7 +12,7 @@ Array [
Object {
"component": [Function],
"label": "Informations générales",
- "name": "infoGenerales",
+ "name": "info_generales",
},
Object {
"component": [Function],
@@ -27,7 +27,7 @@ Array [
Object {
"component": [Function],
"label": "Indemnité légale",
- "name": "indemniteLegale",
+ "name": "indemnite_legale",
},
]
`);
@@ -35,32 +35,49 @@ Array [
});
describe("reducer", () => {
- it("should handle reset action", () => {
+ it("handles reset action", () => {
expect(stepReducer([], { type: "reset" })).toEqual(initialSteps);
});
- it("should handle add_primes after salaires", () => {
+ it("handles add_step after salaires", () => {
const initialSteps = [{ name: "salaires" }];
- const newState = stepReducer(initialSteps, { type: "add_primes" });
+ const newState = stepReducer(initialSteps, {
+ type: "add_step",
+ payload: { insertAfter: "salaires", step: stepPrime }
+ });
- expect(newState.findIndex(step => step.name === "primes")).toEqual(1);
+ expect(newState.findIndex(step => step.name === "primes")).toBe(1);
+ expect(newState[1]).toEqual(stepPrime);
});
- it("should handle add_primes after salaires", () => {
- const initialSteps = [];
- const newState = stepReducer(initialSteps, { type: "add_primes" });
+ it("does not add step at all if there is no previous step that matches", () => {
+ const initialSteps = [{}, {}];
+ const newState = stepReducer(initialSteps, {
+ type: "add_step",
+ payload: { insertAfter: "salaires", step: stepPrime }
+ });
- expect(newState.findIndex(step => step.name === "primes")).toEqual(0);
+ expect(newState.findIndex(step => step.name === stepPrime.name)).toEqual(0);
});
- it("should handle remove_primes", () => {
- const initialSteps = [];
- const newState = stepReducer(initialSteps, { type: "remove_primes" });
+ it("handles remove_step", () => {
+ const initialSteps = [{}, stepPrime, {}];
+ const newState = stepReducer(initialSteps, {
+ type: "remove_step",
+ payload: stepPrime.name
+ });
- expect(newState.findIndex(step => step.name === "primes")).toEqual(-1);
+ expect(newState.findIndex(step => step.name === stepPrime.name)).toEqual(
+ -1
+ );
});
- it("should not fail when handle remove_primes", () => {
- const initialSteps = [];
- const newState = stepReducer(initialSteps, { type: "remove_primes" });
+ it("does not fail when removing unexisting step", () => {
+ const initialSteps = [{}];
+ const newState = stepReducer(initialSteps, {
+ type: "remove_step",
+ payload: { insertAfter: "salaires", stepPrime }
+ });
- expect(newState.findIndex(step => step.name === "primes")).toEqual(-1);
+ expect(newState.findIndex(step => step.name === stepPrime.name)).toEqual(
+ -1
+ );
});
it("should handle add_branche", () => {
const initialSteps = [];
diff --git a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/branches.js b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/branches.js
index 520947c410..a94056d433 100644
--- a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/branches.js
+++ b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/branches.js
@@ -27,6 +27,11 @@ export const branches = [
value: "1351",
label: "Convention collective nationale de la Prévention et sécurité"
},
+ {
+ value: "1486",
+ label:
+ "Convention collective nationale des bureaux d'études techniques, des cabinets d'ingénieurs-conseils et des sociétés de conseils du 15 décembre 1987"
+ },
{
value: "1534",
label:
diff --git a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/ccn/0016/__tests__/__snapshots__/Result.test.js.snap b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/ccn/0016/__tests__/__snapshots__/Result.test.js.snap
index b1dbed9fdb..fba8f4cf27 100644
--- a/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/ccn/0016/__tests__/__snapshots__/Result.test.js.snap
+++ b/packages/code-du-travail-frontend/src/outils/IndemniteLicenciement/ccn/0016/__tests__/__snapshots__/Result.test.js.snap
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`
+ Renseignez la durée pendant laquelle le salarié a exercé une activité + exclusive et régulière pour le compte de la société. +
+ ++ Renseignez le nombre d’années pendant lesquelles le salarié a perçu au + moins 11 bulletins de salaire sur 12 et au moins 3 fois la valeur du + SMIC. +
++ Si vous avez été auparavant employé par la même société et que la fin + du/des contrat(s) n’est pas imputable à l’une des raisons suivantes: +
++ alors{" "} + + la durée de ce(s) contrat(s) s’ajoute à votre ancienneté + + . +
+
+ Quel est votre catégorie dans la convention collective ?
+ Vous pouvez le trouver sur votre bulletin de paie
+
Salaire mensuel ajusté (primes et temps partiel inclus)
+Mois | +Salaire mensuel ajusté (primes et temps partiel inclus) | +
---|---|
+ + | +
+ |
+
Le salaire à renseigner pour cette convention collective inclut:
++ Renseignez la durée pendant laquelle le salarié a exercé une activité exclusive et régulière pour le compte de la société. +
+ + ++ Renseignez le nombre d’années pendant lesquelles le salarié a perçu au moins 11 bulletins de salaire sur 12 et au moins 3 fois la valeur du SMIC. +
+ + ++ Renseignez la durée pendant laquelle le salarié a exercé une activité exclusive et régulière pour le compte de la société. +
+ + ++ Renseignez le nombre d’années pendant lesquelles le salarié a perçu au moins 11 bulletins de salaire sur 12 et au moins 3 fois la valeur du SMIC. +
+ + ++ Si vous avez été auparavant employé par la même société et que la fin du/des contrat(s) n’est pas imputable à l’une des raisons suivantes: +
++ alors + + + la durée de ce(s) contrat(s) s’ajoute à votre ancienneté + + . +
++ Avez-vous un/des contrat(s) antérieur(s) à déclarer ? +
++ Renseignez la durée pendant laquelle le salarié a exercé une activité exclusive et régulière pour le compte de la société. +
+ + ++ Renseignez le nombre d’années pendant lesquelles le salarié a perçu au moins 11 bulletins de salaire sur 12 et au moins 3 fois la valeur du SMIC. +
+ + ++ Si vous avez été auparavant employé par la même société et que la fin du/des contrat(s) n’est pas imputable à l’une des raisons suivantes: +
++ alors + + + la durée de ce(s) contrat(s) s’ajoute à votre ancienneté + + . +
++ Avez-vous un/des contrat(s) antérieur(s) à déclarer ? +
++ Indemnité de licenciement précédemment perçue +
++ Souhaitez vous déduire cette indemnité ? +
++ Si vous avez été auparavant employé par la même société et que la fin du/des contrat(s) n’est pas imputable à l’une des raisons suivantes: +
++ alors + + + la durée de ce(s) contrat(s) s’ajoute à votre ancienneté + + . +
++ Avez-vous un/des contrat(s) antérieur(s) à déclarer ? +
+
+ Quel est votre catégorie dans la convention collective ?
+
+ Vous pouvez le trouver sur votre bulletin de paie
+
+ À partir des éléments que vous avez saisis, votre indémnité de licenciement est estimée à + + + 17,444.44 + € brut + +
++ Il s’agit du montant le plus favorable entre votre indemnité légale et votre indemnité conventionnelle. +
++ À partir des éléments que vous avez saisis, votre indémnité de licenciement est estimée à + + + 15,875.00 + € brut + +
++ Il s’agit du montant le plus favorable entre votre indemnité légale et votre indemnité conventionnelle. +
++ Le salaire à renseigner pour cette convention collective inclut: +
++ De ce fait, avez-vous une modification à faire dans la déclaration de votre salaire ? +
++ Le salaire à renseigner pour cette convention collective inclut: +
++ De ce fait, avez-vous une modification à faire dans la déclaration de votre salaire ? +
++ Avez-vous eu le même salaire lors des 12 derniers mois ? +
++ Le salaire à renseigner pour cette convention collective inclut: +
++ De ce fait, avez-vous une modification à faire dans la déclaration de votre salaire ? +
++ Avez-vous eu le même salaire lors des 12 derniers mois ? +
++ Mois + | ++ Salaire mensuel ajusté (primes et temps partiel inclus) + | +
---|---|
+ + | +
+
+
+
+
+ |
+
+ + | +
+
+
+
+
+ |
+
+ Le salaire à renseigner pour cette convention collective inclut: +
++ De ce fait, avez-vous une modification à faire dans la déclaration de votre salaire ? +
++ Avez-vous eu le même salaire lors des 12 derniers mois ? +
++ Salaire mensuel ajusté (primes et temps partiel inclus) +
+Les congés maternité, arrêts de travail liés à une maladie - professionnelle, congés individuel de formation (Cif) et stage de + professionnelle, congés individuels de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner.
@@ -39,7 +39,12 @@ function AbsencePeriods({ name, onChange }) { subscribe={{ error: true, touched: true }} render={({ input, meta: { touched, error, invalid } }) => ( <> - +À partir des éléments que vous avez saisis, votre indémnité de licenciement est estimée à{" "} @@ -32,7 +36,7 @@ function IndemniteCCn({ {Math.max( indemniteLegale, indemniteConventionnelle - ).toLocaleString(undefined, { + ).toLocaleString("fr-FR", { maximumFractionDigits: 2, minimumFractionDigits: 2 })} @@ -43,34 +47,42 @@ function IndemniteCCn({ Il s’agit du montant le plus favorable entre votre indemnité légale et votre indemnité conventionnelle.
-- Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuel de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner. + Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuels de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner.
should add a period 1`] = ` class="c4" name="absences[0].duration" size="7" + type="number" value="" /> should delete a period 1`] = ` -webkit-justify-content: flex-start; -ms-flex-pack: start; justify-content: flex-start; + -webkit-align-items: flex-start; + -webkit-box-align: flex-start; + -ms-flex-align: flex-start; + align-items: flex-start; margin-bottom: 0.25rem; } @@ -283,7 +292,7 @@ exports[`- Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuel de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner. + Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuels de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner.
should render 1`] = ` .c4 { padding: 0; font-size: 1rem; - text-align: left; + text-align: right; line-height: inherit; width: 7em; border-radius: 0.25rem; @@ -377,6 +386,10 @@ exports[`- Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuel de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner. + Les congés maternité, arrêts de travail liés à une maladie professionnelle, congés individuels de formation (Cif) et stage de fin d’étude de plus de 2 mois ne sont pas considérés comme des absences. Merci de ne pas les renseigner.
should render 1`] = ` class="c4" name="absences[0].duration" size="7" + type="number" value="3" /> should render error 1`] = ` margin-bottom: 0; } -.c2 { +.c6 { padding: 0.625rem 1rem; -webkit-appearance: none; -moz-appearance: none; @@ -41,13 +41,13 @@ exports[`