From a66da0b4c1b1577c1c5c79ae395e2ded94078b7a Mon Sep 17 00:00:00 2001 From: Johan Girod Date: Thu, 14 Apr 2022 14:09:21 +0200 Subject: [PATCH] Ajoute les tests de non regression --- modele-social/règles/dirigeant.yaml | 21 +++- modele-social/règles/protection-sociale.yaml | 2 +- site/source/locales/ui-en.yaml | 7 +- site/source/locales/ui-fr.yaml | 7 +- .../configs/profession-libérale.yaml | 3 + .../__snapshots__/simulations.test.ts.snap | 112 +++++++++++++----- .../simulations-professions-libérales.yaml | 35 +++++- site/test/regressions/simulations.test.ts | 2 +- 8 files changed, 142 insertions(+), 47 deletions(-) diff --git a/modele-social/règles/dirigeant.yaml b/modele-social/règles/dirigeant.yaml index 0a1368009..40fe0c0ff 100644 --- a/modele-social/règles/dirigeant.yaml +++ b/modele-social/règles/dirigeant.yaml @@ -603,14 +603,23 @@ dirigeant . indépendant . cotisations et contributions . exonérations . ACRE . dirigeant . indépendant . conjoint collaborateur: question: Avez-vous un conjoint collaborateur ? description: | - Permet au conjoint du dirigeant d'être couvert par la protection sociale moyennant le paiement de cotisations sociales supplémentaires. - Pour en bénéficier, l'époux(se) ou partenaire de Pacs du dirigeant doit: - - exercer une activité professionnelle régulière et habituelle dans l'entreprise - - faire l'objet d'une mention au RCS pour les commerçants ou au répertoire des métiers (RM) pour les artisans - - ne pas être rémunéré - - ne pas être associé de la société. + En tant que collaborateur, le conjoint d'un indépendant verse des cotisations en matière de retraite et d'invalidité-décès et bénéficie en contrepartie de droits propres. Il s'acquitte aussi d'une cotisation indemnités journalières et peut être indemnisé en cas d'arrêt de travail. + + ### Conjoint collaborateur : pour qui ? + + Pour que le conjoint puisse choisir le statut de conjoint collaborateur, le chef d'entreprise doit exercer en entreprise individuelle, être le gérant majoritaire ou appartenir à un collège de gérance majoritaire, d'une entreprise en SARL ou EURL sans limitation de l'effectif salarié. + + Le conjoint doit : + - participer de manière régulière à l'activité de l'entreprise ; + - ne pas être rémunéré pour cette activité ; + - doit être marié ou lié par un pacte civil de solidarité (Pacs) au chef d'entreprise, ou être le concubin. + + > #### Avantages du statut conjoint collaborateur + > Ce statut du conjoint collaborateur est souple, simple (peu de formalités administratives) et d’un faible coût pour l’entreprise pour une protection sociale complète. Il peut être choisi même si le conjoint exerce une activité hors de l’entreprise. + par défaut: non références: + urssaf.fr: https://www.urssaf.fr/portail/home/artisan-commercant/conjoint-du-chef-dentreprise/conjoint-collaborateur.html secu-independants.fr: https://www.secu-independants.fr/cotisations/conjoint/conjoint-collaborateur/?reg=lorraine&pro=artisan&act=retraite&ae=non#c46535 service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F33429 diff --git a/modele-social/règles/protection-sociale.yaml b/modele-social/règles/protection-sociale.yaml index 6a21d688d..4d977b5d1 100644 --- a/modele-social/règles/protection-sociale.yaml +++ b/modele-social/règles/protection-sociale.yaml @@ -234,7 +234,7 @@ protection sociale . retraite . CNAVPL: protection sociale . retraite . CIPAV: applicable si: dirigeant . indépendant . PL . CIPAV - remplace: protection sociale . retraite . complémentaire indépendants . points acquis + remplace: complémentaire indépendants . points acquis unité: points variations: - si: dirigeant . indépendant . PL . CIPAV . retraite complémentaire . classe = 'Classe A' diff --git a/site/source/locales/ui-en.yaml b/site/source/locales/ui-en.yaml index a874443a8..86c03ff69 100644 --- a/site/source/locales/ui-en.yaml +++ b/site/source/locales/ui-en.yaml @@ -1617,14 +1617,15 @@ pages: description: Calculation of net income after tax and contributions based on turnover and vice versa title: "Self-employed: income simulator" - retraite-droits-acquis: '<0>Retirement: rights acquired during the - year<1><0>Basic pension : <2><0><1>Supplementary pension + retraite-droits-acquis: '<0>Retirement: rights acquired over the + year<1><0>Basic pension : <2><0><1><0>Basic pension + points earned : <2><2>Acquired complementary pension points : <2><0><0> points acquired<3><0>not known<1><0>The number of "free points" received during your disability pension depends on your previous income. <2>To find out more, click here.<2><0>This simulator does not manage the acquired rights of complementary pension for liberal - professions' + professions' shortname: Independent title: Income simulator for the self-employed is: diff --git a/site/source/locales/ui-fr.yaml b/site/source/locales/ui-fr.yaml index 451700a3f..f1eab7197 100644 --- a/site/source/locales/ui-fr.yaml +++ b/site/source/locales/ui-fr.yaml @@ -1306,13 +1306,14 @@ pages: chiffre d'affaires et inversement title: "Indépendant : simulateur de revenus" retraite-droits-acquis: "<0>Retraite : droits acquis sur - l'année<1><0>Retraite de base : <2><0><1>Retraite - complémentaire : <2><0><0> points acquis<3><0>non + l'année<1><0>Retraite de base : <2><0><1><0>Points de + retraite de base acquis : <2><2>Points de retraite + complémentaire acquis : <2><0><0> points acquis<3><0>non connue<1><0>Le nombre de \"points gratuits\" reçus pendant votre pension d'invalidité dépend de vos revenus antérieurs. <2>En savoir plus.<2><0>Ce simulateur ne gère pas les droits acquis de retraite complémentaire pour les professions - libérales" + libérales" shortname: Indépendant title: Simulateur de revenus pour indépendant is: diff --git a/site/source/pages/Simulateurs/configs/profession-libérale.yaml b/site/source/pages/Simulateurs/configs/profession-libérale.yaml index b6d509c52..e02bfef3f 100644 --- a/site/source/pages/Simulateurs/configs/profession-libérale.yaml +++ b/site/source/pages/Simulateurs/configs/profession-libérale.yaml @@ -5,6 +5,9 @@ objectifs: - dirigeant . rémunération . nette - impôt . montant - dirigeant . rémunération . nette après impôt + - protection sociale . retraite . complémentaire indépendants . points acquis + - protection sociale . retraite . base . trimestres . indépendant + - protection sociale . retraite . CNAVPL questions: liste noire: diff --git a/site/test/regressions/__snapshots__/simulations.test.ts.snap b/site/test/regressions/__snapshots__/simulations.test.ts.snap index accde5de6..9703f3f1c 100644 --- a/site/test/regressions/__snapshots__/simulations.test.ts.snap +++ b/site/test/regressions/__snapshots__/simulations.test.ts.snap @@ -303,90 +303,138 @@ exports[`calculate simulations-indépendant > échelle de revenus 8`] = ` Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > CIPAV 1`] = `"[3277,0,2777,500,0,500]"`; +exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 1`] = `"[1598,0,1098,500,0,500,0,2,61]"`; -exports[`calculate simulations-professions-libérales > CIPAV 2`] = `"[3838,0,2838,1000,0,1000]"`; +exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 2`] = `"[13289,0,3289,10000,0,10000,9,4,133]"`; -exports[`calculate simulations-professions-libérales > CIPAV 3`] = `"[4398,0,2898,1500,0,1500]"`; +exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 3`] = `"[16239,0,6239,10000,0,10000,72,4,135]"`; -exports[`calculate simulations-professions-libérales > CIPAV 4`] = `"[4959,0,2959,2000,0,2000]"`; - -exports[`calculate simulations-professions-libérales > CIPAV 5`] = `"[8377,0,3377,5000,0,5000]"`; - -exports[`calculate simulations-professions-libérales > CIPAV 6`] = `"[14552,0,4552,10000,0,10000]"`; - -exports[`calculate simulations-professions-libérales > CIPAV 7`] = ` -"[147523,0,47523,100000,28363,71637] +exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 4`] = ` +"[73230,0,23230,50000,9518,40482,180,4,531] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > CIPAV 8`] = ` -"[1239427,0,239427,1000000,473298,526702] +exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 5`] = ` +"[147523,0,47523,100000,28363,71637,432,4,538] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > auxiliaire médical 1`] = `"[30000,0,8078,21922,1208,20714]"`; +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 1`] = `"[3277,0,2777,500,0,500,36,2,61]"`; -exports[`calculate simulations-professions-libérales > auxiliaire médical 2`] = `"[30000,0,8398,21602,1157,20445]"`; +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 2`] = `"[3838,0,2838,1000,0,1000,36,2,61]"`; -exports[`calculate simulations-professions-libérales > auxiliaire médical 3`] = `"[300000,0,62883,237117,89673,147444]"`; +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 3`] = `"[4398,0,2898,1500,0,1500,36,2,61]"`; + +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 4`] = `"[4959,0,2959,2000,0,2000,36,2,61]"`; + +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 5`] = `"[8377,0,3377,5000,0,5000,36,3,67]"`; + +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 6`] = `"[14552,0,4552,10000,0,10000,36,4,134]"`; + +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 7`] = ` +"[147523,0,47523,100000,28363,71637,432,4,538] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > CIPAV échelle de revenu 8`] = ` +"[1239427,0,239427,1000000,473298,526702,468,4,550] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > auxiliaire médical 1`] = `"[30000,0,8078,21922,1208,20714,0,4,293]"`; + +exports[`calculate simulations-professions-libérales > auxiliaire médical 2`] = `"[30000,0,8398,21602,1157,20445,0,4,289]"`; + +exports[`calculate simulations-professions-libérales > auxiliaire médical 3`] = `"[300000,0,62883,237117,89673,147444,0,4,550]"`; exports[`calculate simulations-professions-libérales > avocat 1`] = ` -"[50000,0,11135,38865,5988,32877] +"[50000,0,11135,38865,5988,32877,0,4,518] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; exports[`calculate simulations-professions-libérales > avocat 2`] = ` -"[50000,0,11805,38195,5787,32408] +"[50000,0,11805,38195,5787,32408,0,4,510] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > expert-comptable 1`] = `"[20000,0,5014,14986,57,14929]"`; +exports[`calculate simulations-professions-libérales > conjoint collaborateur 1`] = ` +"[90886,0,30886,60000,12661,47339,180,4,533] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 2`] = ` +"[90334,0,30334,60000,12657,47343,180,4,533] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 3`] = ` +"[90012,0,30012,60000,12654,47346,180,4,708] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 4`] = ` +"[92076,0,32076,60000,12671,47329,180,4,533] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 5`] = ` +"[90530,0,30530,60000,12658,47342,180,4,805] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 6`] = `"[4895,0,3895,1000,0,1000,36,2,122]"`; + +exports[`calculate simulations-professions-libérales > conjoint collaborateur 7`] = ` +"[93016,0,33016,60000,12679,47321,180,4,533] +Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" +`; + +exports[`calculate simulations-professions-libérales > expert-comptable 1`] = `"[20000,0,5014,14986,57,14929,0,4,200]"`; exports[`calculate simulations-professions-libérales > expert-comptable 2`] = ` -"[50000,0,14816,35184,4884,30300] +"[50000,0,14816,35184,4884,30300,0,4,471] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > médecin 1`] = `"[50000,0,14385,35615,5011,30604]"`; +exports[`calculate simulations-professions-libérales > médecin 1`] = `"[50000,0,14385,35615,5011,30604,0,4,476]"`; -exports[`calculate simulations-professions-libérales > médecin 2`] = `"[50000,0,22059,27941,2710,25231]"`; +exports[`calculate simulations-professions-libérales > médecin 2`] = `"[50000,0,22059,27941,2710,25231,0,4,378]"`; -exports[`calculate simulations-professions-libérales > médecin 3`] = `"[300000,0,87915,212085,78409,133676]"`; +exports[`calculate simulations-professions-libérales > médecin 3`] = `"[300000,0,87915,212085,78409,133676,0,4,550]"`; -exports[`calculate simulations-professions-libérales > médecin 4`] = `"[400000,0,108031,291969,117164,174805]"`; +exports[`calculate simulations-professions-libérales > médecin 4`] = `"[400000,0,108031,291969,117164,174805,0,4,550]"`; exports[`calculate simulations-professions-libérales > médecin 5`] = ` -"[120000,0,36415,83585,21327,62258] +"[120000,0,36415,83585,21327,62258,0,4,536] Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement" `; -exports[`calculate simulations-professions-libérales > médecin 6`] = `"[50000,0,14385,35615,5011,30604]"`; +exports[`calculate simulations-professions-libérales > médecin 6`] = `"[50000,0,14385,35615,5011,30604,0,4,476]"`; -exports[`calculate simulations-professions-libérales > sage-femme 1`] = `"[50000,0,12479,37521,5584,31937]"`; +exports[`calculate simulations-professions-libérales > sage-femme 1`] = `"[50000,0,12479,37521,5584,31937,0,4,501]"`; exports[`calculate simulations-professions-libérales > sage-femme 2`] = ` -"[20000,0,5190,14810,29,14781] +"[20000,0,5190,14810,29,14781,0,4,198] Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable" `; exports[`calculate simulations-professions-libérales > sage-femme 3`] = ` -"[4000,0,1315,2685,0,2685] +"[4000,0,1315,2685,0,2685,0,2,61] Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable, dirigeant . indépendant . PL . CARCDSF . sage-femme . exonération PCV" `; exports[`calculate simulations-professions-libérales > sage-femme 4`] = ` -"[20000,0,5190,14810,29,14781] +"[20000,0,5190,14810,29,14781,0,4,198] Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable" `; exports[`calculate simulations-professions-libérales > sage-femme 5`] = ` -"[20000,0,5267,14733,17,14716] +"[20000,0,5267,14733,17,14716,0,4,197] Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable" `; exports[`calculate simulations-professions-libérales > sage-femme 6`] = ` -"[20000,0,5343,14657,4,14653] +"[20000,0,5343,14657,4,14653,0,4,196] Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable" `; diff --git a/site/test/regressions/simulations-professions-libérales.yaml b/site/test/regressions/simulations-professions-libérales.yaml index 99652beab..5ce7c78b5 100644 --- a/site/test/regressions/simulations-professions-libérales.yaml +++ b/site/test/regressions/simulations-professions-libérales.yaml @@ -73,7 +73,7 @@ expert-comptable: - dirigeant . indépendant . PL . métier: "'expert-comptable'" dirigeant . rémunération . totale: 50000 €/an -CIPAV: +CIPAV échelle de revenu: - dirigeant . rémunération . nette: 500 €/an - dirigeant . rémunération . nette: 1000 €/an - dirigeant . rémunération . nette: 1500 €/an @@ -82,3 +82,36 @@ CIPAV: - dirigeant . rémunération . nette: 10000 €/an - dirigeant . rémunération . nette: 100000 €/an - dirigeant . rémunération . nette: 1000000 €/an + +CIPAV réduction et surcotisation: + - dirigeant . rémunération . nette: 500 €/an + dirigeant . indépendant . PL . CIPAV . retraite complémentaire . réduction: oui + - dirigeant . rémunération . nette: 10000 €/an + dirigeant . indépendant . PL . CIPAV . retraite complémentaire . réduction: oui + - dirigeant . rémunération . nette: 10000 €/an + dirigeant . indépendant . PL . CIPAV . retraite complémentaire . option surcotisation: oui + - dirigeant . rémunération . nette: 50000 €/an + dirigeant . indépendant . PL . CIPAV . retraite complémentaire . option surcotisation: oui + - dirigeant . rémunération . nette: 100000 €/an + dirigeant . indépendant . PL . CIPAV . retraite complémentaire . option surcotisation: oui + +conjoint collaborateur: + - &CNAVPL-conjoint-collaborateur + dirigeant . rémunération . nette: 60000 €/an + dirigeant . indépendant . conjoint collaborateur: oui + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . conjoint collaborateur . assiette: "'revenu sans partage'" + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . conjoint collaborateur . assiette: "'revenu avec partage'" + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . conjoint collaborateur . assiette: "'revenu sans partage'" + dirigeant . indépendant . PL . CNAVPL . conjoint collaborateur . proportion: "'moitié'" + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . conjoint collaborateur . assiette: "'revenu avec partage'" + dirigeant . indépendant . PL . CNAVPL . conjoint collaborateur . proportion: "'moitié'" + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . conjoint collaborateur . assiette: "'revenu avec partage'" + dirigeant . rémunération . nette: 1000 €/an + dirigeant . indépendant . PL . CNAVPL . conjoint collaborateur . proportion: "'moitié'" + - <<: *CNAVPL-conjoint-collaborateur + dirigeant . indépendant . PL . CIPAV . conjoint collaborateur . proportion: "'moitié'" diff --git a/site/test/regressions/simulations.test.ts b/site/test/regressions/simulations.test.ts index 24b356d96..71c47972c 100644 --- a/site/test/regressions/simulations.test.ts +++ b/site/test/regressions/simulations.test.ts @@ -5,8 +5,8 @@ // We only persist targets values in the file system, in order to be resilient to rule renaming (if a rule is // renamed the test configuration may be adapted but the persisted snapshot will remain unchanged). -import { expect, it } from 'vitest' import rules, { DottedName } from 'modele-social' +import { expect, it } from 'vitest' import { engineFactory } from '../../source/components/utils/EngineContext' import aideDéclarationConfig from '../../source/pages/gerer/declaration-charges-sociales-independant/_config.yaml' import artisteAuteurConfig from '../../source/pages/Simulateurs/configs/artiste-auteur.yaml'