Ajout de snapshots pour les variables manquantes (#2115)
* Ajout de snapshots pour les variables manquantes * Parallelise l'execution des tests de non regression Sur mon ordi le temps total d'exectution des tests est divisé par 2 : ~60s → ~30s * Déplace les tests de régression "rémunération dirigeant" Au sein des différentes catégories auto-entrepreneur, indépendant et assimilé salarié. Évite de jouer certains tests en double, ainsi que certains tests qui correspondent à des situations impossibles (exemple dirigeant SASU avec ACRE).pull/2126/head
parent
103f47f64f
commit
1aba41ebf1
|
@ -0,0 +1,19 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > bnc 1`] = `"[763]"`;
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > bnc 2`] = `"[1156]"`;
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > bnc 3`] = `
|
||||
"[578]
|
||||
Notifications affichées : artiste-auteur . cotisations . avertissement trimestres retraite"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > salarié 1`] = `
|
||||
"[99]
|
||||
Notifications affichées : artiste-auteur . cotisations . avertissement trimestres retraite"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > salarié 2`] = `"[988]"`;
|
||||
|
||||
exports[`calculate simulations-artiste-auteur > salarié 3`] = `"[9880]"`;
|
|
@ -0,0 +1,72 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > ACRE 1`] = `"[22962,247,20000,0,20000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > ACRE 2`] = `
|
||||
"[22630,219,20000,0,20000]
|
||||
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > ACRE 3`] = `"[34443,370,30000,0,30000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > ACRE 4`] = `
|
||||
"[45273,439,40000,0,40000]
|
||||
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > ACRE 5`] = `
|
||||
"[21390,116,20000,0,20000]
|
||||
Notifications affichées : dirigeant . auto-entrepreneur . notification calcul ACRE annuel"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 1`] = `"[20000,292,16500,0,16500]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 2`] = `"[20000,318,16180,0,16180]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 3`] = `"[20000,301,16388,0,16388]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activité mixte 4`] = `"[null,715,null,null,null]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 1`] = `"[20000,370,15560,0,15560]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 2`] = `"[20000,373,15520,0,15520]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 3`] = `"[20000,222,17332,0,17332]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 4`] = `"[20000,380,15444,0,15444]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 5`] = `"[20000,215,17420,0,17420]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > activités 6`] = `"[20000,369,15568,0,15568]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > aides 1`] = `"[5741,62,5000,0,5000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > aides 2`] = `"[57419,618,50000,237,49763]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > impôt sur le revenu 1`] = `"[32134,594,25000,707,24293]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 1`] = `"[574,6,500,0,500]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 2`] = `"[1148,12,1000,0,1000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 3`] = `"[2296,25,2000,0,2000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 4`] = `"[5741,62,5000,0,5000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 5`] = `"[11481,123,10000,0,10000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 6`] = `"[22962,247,20000,0,20000]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 7`] = `"[57419,618,50000,237,49763]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 8`] = `"[80381,865,70000,1301,68699]"`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 9`] = `
|
||||
"[114824,1235,100000,3912,96088]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-auto-entrepreneur > échelle de revenus 10`] = `
|
||||
"[1148298,12358,1000000,131652,868348]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement, entreprise . imposition . régime . micro-entreprise . alerte seuil dépassés"
|
||||
`;
|
|
@ -0,0 +1,21 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 1`] = `"[200,166,34,0,112,112,0]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 2`] = `"[20000000,11149363,3440000,5410637,11184000,11184000,48]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 3`] = `"[200,112,34,40,112,112,36]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème couple 2 enfants 4`] = `"[20000,14985,3440,613,11184,11184,5]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème défauts 1`] = `"[200,166,34,0,112,112,0]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème défauts 2`] = `"[20000000,11113031,3440000,5446969,11184000,11184000,49]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème défauts 3`] = `"[200,111,34,47,112,112,42]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > barème défauts 4`] = `"[20000,13205,3440,2244,11184,11184,20]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > pfu 1`] = `"[200,140,34,26,120,120,0]"`;
|
||||
|
||||
exports[`calculate simulations-dividendes > pfu 2`] = `"[20000000,14000000,3440000,2560000,12000000,12000000,0]"`;
|
|
@ -0,0 +1,24 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 1`] = `
|
||||
"[0,0]
|
||||
Notifications affichées : entreprise . imposition . IS . information sur le report de déficit"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 2`] = `"[0,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 3`] = `"[300,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 4`] = `"[3000,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 5`] = `"[48628,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 6`] = `"[525628,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > bénéfices 7`] = `"[5295628,149646]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > prorata temporis 1`] = `"[260628,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > prorata temporis 2`] = `"[277936,0]"`;
|
||||
|
||||
exports[`calculate simulations-impot-société > prorata temporis 3`] = `"[272981,0]"`;
|
|
@ -0,0 +1,124 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-indépendant > acre 1`] = `"[73019,23019,50000,51980,9516,40484,0,73019,1408]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > activité 1`] = `"[29086,9086,20000,20787,898,19102,0,29086,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > activité 2`] = `"[29102,9102,20000,20787,898,19102,0,29102,3575]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 1`] = `"[77175,27175,50000,52092,9550,40450,0,77175,7308]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 2`] = `"[78236,28236,50000,52121,9558,40442,0,78236,4487]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 3`] = `"[80757,30757,50000,52189,9579,40421,0,80757,4811]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 4`] = `"[75298,25298,50000,52041,9534,40466,0,75298,3809]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 5`] = `"[75297,25297,50000,52041,9534,40466,0,75297,3951]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > conjoint collaborateur 6`] = `
|
||||
"[652221,152221,500000,517706,220485,279515,0,652221,4487]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 1`] = `"[30000,13181,16819,17881,433,16386,10000,40000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 2`] = `"[30000,14381,15619,17881,433,15186,10000,40000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 3`] = `"[30000,10381,19619,20431,841,18778,10000,40000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 4`] = `"[20000,6732,13268,13809,0,13268,1000,21000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 5`] = `
|
||||
"[300000,79617,220383,228526,82145,138238,15000,315000,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 6`] = `"[20000,6832,13168,13709,0,13168,500,20500,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > contrats madelin 7`] = `"[20000,13132,6868,9695,0,6868,0,20000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 1`] = `"[30000,13181,16819,17881,433,16386,0,30000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 2`] = `"[30000,14381,15619,17881,433,15186,0,30000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 3`] = `"[30000,10381,19619,20431,841,18778,0,30000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 4`] = `"[20000,6732,13268,13809,0,13268,0,20000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 5`] = `
|
||||
"[300000,79617,220383,228526,82145,138238,0,300000,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations facultatives 6`] = `
|
||||
"[300000,83117,216883,225026,80570,136313,0,300000,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations minimales 1`] = `"[1375,1275,100,135,0,100,0,1375,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > cotisations minimales 2`] = `"[244,144,100,104,0,100,0,244,3211]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > exonération covid 1`] = `"[71347,21347,50000,51815,9550,40450,0,71347,103]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > exonération covid 2`] = `"[500,12977,50000,51032,9315,40685,0,62977,103]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > exonération covid 3`] = `"[50000,17475,50000,51440,9438,40562,0,67475,140]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > exonération pension invalidité 1`] = `
|
||||
"[45000,10908,34092,35311,4515,29577,0,45000,2350]
|
||||
Notifications affichées : dirigeant . indépendant . cotisations et contributions . exonérations . pension invalidité"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > imposition à l'IS 1`] = `
|
||||
"[100000,30100,69900,72612,15030,54870,0,100000,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > imposition à l'IS 2`] = `
|
||||
"[100000,30100,69900,72612,15030,54870,0,100000,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > impôt sur le revenu 1`] = `"[29086,9086,20000,20787,603,19397,0,29086,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > impôt sur le revenu 2`] = `"[73019,23019,50000,51980,8213,41787,0,73019,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > impôt sur le revenu 3`] = `"[29086,9086,20000,20787,2079,17921,0,29086,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 1`] = `"[2000,1386,614,666,0,614,0,2000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 2`] = `"[50000,16004,33996,35351,4527,29469,0,50000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 3`] = `"[14597,4597,10000,10394,0,10000,0,14597,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 4`] = `"[72000,22703,49297,51249,9297,40000,0,72000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 5`] = `"[14597,4597,10000,10394,0,10000,1000,15597,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 6`] = `"[19000,5929,13071,13584,0,13071,1000,20000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > inversions 7`] = `"[18000,5627,12373,12860,0,12373,2000,20000,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 1`] = `"[1861,1361,500,548,0,500,0,1861,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 2`] = `"[2466,1466,1000,1064,0,1000,0,2466,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 3`] = `"[3075,1575,1500,1581,0,1500,0,3075,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 4`] = `"[3683,1683,2000,2097,0,2000,0,3683,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 5`] = `"[7428,2428,5000,5199,0,5000,0,7428,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 6`] = `"[14597,4597,10000,10394,0,10000,0,14597,3559]"`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 7`] = `
|
||||
"[139589,39589,100000,103788,28275,71725,0,139589,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-indépendant > échelle de revenus 8`] = `
|
||||
"[1239948,239948,1000000,1033666,473305,526695,0,1239948,3559]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
|
@ -0,0 +1,146 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV ACRE 1`] = `"[7434,0,2434,5000,0,5000,36,3,67]"`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV ACRE 2`] = `"[24242,0,4242,20000,876,19124,36,4,266]"`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV ACRE 3`] = `
|
||||
"[69846,0,19846,50000,9490,40510,108,4,531]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV 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 > CIPAV 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 > CIPAV 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 > CIPAV 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 > CIPAV 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 > CIPAV conjoint collaborateur 6`] = `"[4895,0,3895,1000,0,1000,36,2,122]"`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV 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 > CIPAV exonération incapacité 1`] = `
|
||||
"[47070,0,7070,40000,6304,33696,36,4,400]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 1`] = `"[16239,0,6239,10000,0,10000,72,4,135]"`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > CIPAV réduction et surcotisation 2`] = `
|
||||
"[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 réduction et surcotisation 3`] = `
|
||||
"[149211,0,49211,100000,28382,71618,468,4,538]
|
||||
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
|
||||
`;
|
||||
|
||||
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 > CIPAV échelle de revenu 2`] = `"[3838,0,2838,1000,0,1000,36,2,61]"`;
|
||||
|
||||
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,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,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,0,4,200]"`;
|
||||
|
||||
exports[`calculate simulations-professions-libérales > expert-comptable 2`] = `
|
||||
"[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,0,4,476]"`;
|
||||
|
||||
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,0,4,550]"`;
|
||||
|
||||
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,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,0,4,476]"`;
|
||||
|
||||
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,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,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,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,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,0,4,196]
|
||||
Notifications affichées : dirigeant . indépendant . PL . CARCDSF . retraite complémentaire . cotisation forfaitaire . réduction applicable"
|
||||
`;
|
|
@ -0,0 +1,439 @@
|
|||
// Vitest Snapshot v1
|
||||
|
||||
exports[`calculate simulations-salarié > CCN HCR 1`] = `
|
||||
"[3499,0,2500,2005,1894]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN batiment 1`] = `
|
||||
"[3912,0,2500,1987,1878]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN batiment 2`] = `
|
||||
"[3881,0,2500,1972,1864]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN batiment 3`] = `
|
||||
"[3939,0,2500,1979,1867]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN compta 1`] = `
|
||||
"[3394,0,2500,2006,1898]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN optique 1`] = `
|
||||
"[3585,0,2500,2068,1953]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN spectacle vivant 1`] = `
|
||||
"[3796,0,2500,2155,2039]
|
||||
Notifications affichées : contrat salarié . CDD . information, contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > CCN sport 1`] = `
|
||||
"[535,0,500,374,374]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > JEI 1`] = `"[3434,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > JEI 2`] = `
|
||||
"[26535,0,20000,15969,10359]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 1`] = `
|
||||
"[53,0,1560,1281,1281]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 2`] = `"[980,0,4000,2220,2098]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 3`] = `"[2154,0,8000,4462,3639]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 4`] = `"[1614,0,4000,2405,2217]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 5`] = `"[2867,0,4000,2683,2406]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 6`] = `"[740,3750,3000,1660,1609]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 7`] = `"[980,0,4000,2220,2185]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 8`] = `"[351,0,2000,1578,1544]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 9`] = `"[1216,0,2000,1570,1536]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 10`] = `"[2360,0,6000,4182,3498]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > activité partielle 11`] = `"[4323,0,9000,6147,4790]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 1`] = `"[2296,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 2`] = `
|
||||
"[12819,0,10000,8911,7538]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé, contrat salarié . régime des impatriés . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 3`] = `"[1966,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 4`] = `
|
||||
"[2573,0,2000,1720,1656]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 5`] = `"[1800,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides 6`] = `"[2050,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides embauche covid 1`] = `
|
||||
"[1232,0,1500,1165,1165]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides embauche covid 2`] = `"[7079,0,5000,3948,3298]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides embauche covid 3`] = `
|
||||
"[1407,0,1500,1284,1284]
|
||||
Notifications affichées : contrat salarié . CDD . information, contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > aides embauche covid 4`] = `
|
||||
"[881,0,1500,1457,1457]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > apprentissage 1`] = `
|
||||
"[1547,0,1500,1457,1457]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > apprentissage 2`] = `
|
||||
"[1381,0,1500,1457,1457]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > atmp 1`] = `"[2438,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > avantages 1`] = `"[2571,0,2000,1540,1490]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > avantages 2`] = `"[2581,0,2000,1539,1489]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > avantages 3`] = `"[2491,0,2000,1549,1500]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > cadre 1`] = `"[4116,0,3000,2348,2160]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 1`] = `
|
||||
"[3198,0,2200,1894,1815]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 2`] = `
|
||||
"[3472,0,2200,2009,1897]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 3`] = `
|
||||
"[3765,0,2200,2197,2084]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 4`] = `
|
||||
"[4416,0,2200,2370,2179]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > cdd 5`] = `
|
||||
"[3759,0,2200,1920,1841]
|
||||
Notifications affichées : contrat salarié . CDD . information, contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > contrat pro 1`] = `"[899,0,1500,1165,1165]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > contrat pro 2`] = `"[1566,0,1500,1165,1165]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > effectif 1`] = `"[2383,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > effectif 2`] = `"[2430,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > effectif 3`] = `"[2442,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > effectif 4`] = `"[2442,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 1`] = `"[2105,0,2000,1625,1625]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 2`] = `"[2212,0,2000,1584,1549]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 3`] = `"[2158,0,2000,1601,1553]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 4`] = `"[2158,0,2000,1601,1553]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 5`] = `"[2383,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 6`] = `"[1765,0,1700,1354,1354]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - DFS 7`] = `"[3258,0,2600,2125,2092]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abo transports + transports personnels 1`] = `"[4382,0,3200,2553,2356]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abo transports + transports personnels 2`] = `"[5012,0,3200,2916,2619]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abo transports + transports personnels 3`] = `"[4688,0,3200,2836,2637]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abonnement transports publics 1`] = `"[4380,0,3200,2551,2354]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abonnement transports publics 2`] = `"[5090,0,3200,3261,3064]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abonnement transports publics 3`] = `"[4380,0,3200,2551,2354]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - abonnement transports publics 4`] = `"[4356,0,3200,2527,2330]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - titres restaurant 1`] = `"[2423,0,2000,1521,1487]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - titres restaurant 2`] = `"[4300,0,3000,2135,1945]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - titres restaurant 3`] = `"[2467,0,2000,1493,1458]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 1`] = `"[4382,0,3200,2553,2356]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 2`] = `"[4382,0,3200,2553,2356]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 3`] = `"[5008,0,3200,2913,2617]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 4`] = `"[4382,0,3200,2553,2356]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 5`] = `"[4390,0,3200,2548,2349]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > frais pro - transports personnels seul 6`] = `"[4135,0,3200,2589,2480]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 1`] = `"[2484,0,2000,1636,1601]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 2`] = `"[2444,0,2000,1606,1572]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 3`] = `"[2554,0,2000,1636,1601]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 4`] = `
|
||||
"[2481,0,2000,1632,1598]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 5`] = `
|
||||
"[2448,0,2000,1606,1572]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 6`] = `
|
||||
"[2432,0,2000,1601,1566]
|
||||
Notifications affichées : contrat salarié . convention collective . contrôle décharge"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 7`] = `
|
||||
"[3330,2446,2000,1919,1886]
|
||||
Notifications affichées : contrat salarié . temps de travail . contrôle heures complémentaires 10 pourcents"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > heures supplémentaires et complémentaires 8`] = `
|
||||
"[3279,2286,2000,1889,1856]
|
||||
Notifications affichées : contrat salarié . temps de travail . contrôle heures complémentaires 10 pourcents"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 1`] = `"[4070,0,3000,2353,2336]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 2`] = `"[4070,0,3000,2353,2353]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 3`] = `"[4070,0,3000,2353,2353]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 4`] = `"[4070,0,3000,2353,1911]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 5`] = `"[4070,0,3000,2353,2219]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 6`] = `"[12886,0,9000,7156,6052]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 7`] = `"[12886,0,9000,7156,6342]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 8`] = `"[12886,0,9000,7156,6859]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 9`] = `"[4070,0,3000,2353,2178]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu - quotient familial 10`] = `"[4070,0,3000,2353,2353]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 1`] = `"[4070,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 2`] = `
|
||||
"[41833,0,30000,24227,14685]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 3`] = `
|
||||
"[4960,0,3000,2846,2559]
|
||||
Notifications affichées : contrat salarié . CDD . information"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 4`] = `"[3782,0,3000,2353,2252]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 5`] = `
|
||||
"[41833,0,30000,24227,14685]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 6`] = `"[4070,0,3000,2626,2485]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 7`] = `
|
||||
"[41833,0,30000,26966,16655]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > impôt sur le revenu 8`] = `"[4070,0,3000,2353,2107]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > inversions 1`] = `"[2000,0,1797,1400,1393]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > inversions 2`] = `"[3426,0,2554,2000,1889]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > inversions 3`] = `"[3668,0,2703,2117,2000]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom 1`] = `
|
||||
"[1588,0,1521,1182,1182]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom 2`] = `"[2081,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom 3`] = `"[3782,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom 4`] = `"[5428,0,4000,3146,2755]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom 5`] = `"[7784,0,5500,4349,3634]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom compétitivité renforcée 1`] = `
|
||||
"[1588,0,1521,1182,1182]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom compétitivité renforcée 2`] = `"[2081,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom compétitivité renforcée 3`] = `"[3281,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom compétitivité renforcée 4`] = `"[5186,0,4000,3146,2755]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom compétitivité renforcée 5`] = `"[7784,0,5500,4349,3634]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom innovation et croissance 1`] = `
|
||||
"[1588,0,1521,1182,1182]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom innovation et croissance 2`] = `"[2081,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom innovation et croissance 3`] = `"[3171,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom innovation et croissance 4`] = `"[4529,0,4000,3146,2755]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > lodeom innovation et croissance 5`] = `"[7643,0,5500,4349,3634]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > stage 1`] = `
|
||||
"[500,0,500,500,500]
|
||||
Notifications affichées : contrat salarié . stage . avertissement, contrat salarié . stage . contrôle gratification minimale"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > stage 2`] = `
|
||||
"[2484,0,2000,1750,1750]
|
||||
Notifications affichées : contrat salarié . stage . avertissement"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > taux spécifiques retraite complémentaire 1`] = `
|
||||
"[1601,0,1521,1195,1195]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > taux spécifiques retraite complémentaire 2`] = `"[3346,0,2500,1979,1869]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > taux spécifiques retraite complémentaire 3`] = `
|
||||
"[1588,0,1521,1170,1170]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > taux spécifiques retraite complémentaire 4`] = `"[3306,0,2500,1938,1830]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > temps partiel 1`] = `"[2503,2188,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > temps partiel 2`] = `"[2475,2500,1857,1448,1428]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > temps partiel 3`] = `
|
||||
"[1101,1750,1000,770,770]
|
||||
Notifications affichées : contrat salarié . temps de travail . temps partiel . contrôle temps min"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > treizième mois 1`] = `"[3308,0,2300,1950,1842]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > treizième mois 2`] = `"[3794,2965,2300,2186,2071]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > treizième mois 3`] = `"[2948,0,2300,1799,1733]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 1`] = `
|
||||
"[123,0,100,57,57]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 2`] = `
|
||||
"[278,0,250,176,176]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 3`] = `
|
||||
"[535,0,500,374,374]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 4`] = `
|
||||
"[793,0,750,572,572]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 5`] = `
|
||||
"[1050,0,1000,770,770]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 6`] = `
|
||||
"[1308,0,1250,968,968]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 7`] = `
|
||||
"[1566,0,1500,1165,1165]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle smic"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 8`] = `"[2383,0,2000,1561,1527]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 9`] = `"[3324,0,2500,1957,1848]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 10`] = `"[4070,0,3000,2353,2168]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 11`] = `"[5428,0,4000,3146,2755]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 12`] = `"[7079,0,5000,3948,3298]"`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 13`] = `
|
||||
"[14315,0,10000,7958,5892]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 14`] = `
|
||||
"[28342,0,20000,15969,10359]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 15`] = `
|
||||
"[128588,0,100000,87157,45821]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
||||
|
||||
exports[`calculate simulations-salarié > échelle de salaires 16`] = `
|
||||
"[1244012,0,1000000,896257,445643]
|
||||
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
|
||||
`;
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
|||
import { it } from 'vitest'
|
||||
import artisteAuteurConfig from '../../source/pages/Simulateurs/configs/artiste-auteur.yaml'
|
||||
import artisteAuteurSituations from './simulations-artiste-auteur.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-artiste-auteur', () => {
|
||||
runSimulations(
|
||||
artisteAuteurSituations,
|
||||
artisteAuteurConfig.objectifs,
|
||||
artisteAuteurConfig.situation
|
||||
)
|
||||
})
|
|
@ -0,0 +1,15 @@
|
|||
import { it } from 'vitest'
|
||||
import remunerationDirigeantConfig from '../../source/pages/Simulateurs/configs/rémunération-dirigeant.yaml'
|
||||
import remunerationDirigeantSituations from './simulations-rémunération-dirigeant.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate assimilé salarié', () => {
|
||||
runSimulations(
|
||||
remunerationDirigeantSituations,
|
||||
remunerationDirigeantConfig.objectifs,
|
||||
{
|
||||
...remunerationDirigeantConfig.situation,
|
||||
'dirigeant . régime social': "'assimilé salarié'",
|
||||
}
|
||||
)
|
||||
})
|
|
@ -0,0 +1,31 @@
|
|||
échelle de rémunération:
|
||||
- dirigeant . rémunération . totale: 100 €/an
|
||||
- dirigeant . rémunération . totale: 1000 €/an
|
||||
- dirigeant . rémunération . totale: 2000 €/an
|
||||
- dirigeant . rémunération . totale: 5000 €/an
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
- dirigeant . rémunération . totale: 50000 €/an
|
||||
- dirigeant . rémunération . totale: 100000 €/an
|
||||
|
||||
avec charges:
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
entreprise . charges: 2000 €/an
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 15000 €/an
|
||||
|
||||
ACRE:
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
entreprise . date de création: 01/01/2022
|
||||
entreprise . ACRE: oui
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . date de création: 01/01/2022
|
||||
entreprise . ACRE: oui
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . date de création: 01/06/2021
|
||||
entreprise . ACRE: oui
|
||||
|
||||
JEI:
|
||||
- dirigeant . rémunération . totale: 4000 €/mois
|
||||
dirigeant . régime social: "'assimilé salarié'"
|
||||
contrat salarié . statut JEI: oui
|
|
@ -0,0 +1,35 @@
|
|||
import { expect, it } from 'vitest'
|
||||
import autoentrepreneurConfig from '../../source/pages/Simulateurs/configs/auto-entrepreneur.yaml'
|
||||
import autoEntrepreneurSituations from './simulations-auto-entrepreneur.yaml'
|
||||
import { engine, getMissingVariables, runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-auto-entrepreneur', () => {
|
||||
runSimulations(
|
||||
autoEntrepreneurSituations,
|
||||
autoentrepreneurConfig.objectifs,
|
||||
autoentrepreneurConfig.situation
|
||||
)
|
||||
|
||||
expect(
|
||||
getMissingVariables(
|
||||
engine
|
||||
.setSituation({
|
||||
...autoentrepreneurConfig.situation,
|
||||
"dirigeant . auto-entrepreneur . chiffre d'affaires": '30000 €/an',
|
||||
})
|
||||
.evaluate('dirigeant . auto-entrepreneur . net après impôt')
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
[
|
||||
"entreprise . activité . mixte",
|
||||
"entreprise . activité",
|
||||
"impôt . foyer fiscal . enfants à charge",
|
||||
"entreprise . activité . service ou vente",
|
||||
"impôt . foyer fiscal . situation de famille",
|
||||
"dirigeant . auto-entrepreneur . impôt . versement libératoire",
|
||||
"entreprise . date de création",
|
||||
"impôt . foyer fiscal . revenu imposable . autres revenus imposables",
|
||||
"impôt . méthode de calcul",
|
||||
]
|
||||
`)
|
||||
})
|
|
@ -38,6 +38,25 @@ ACRE:
|
|||
entreprise . date de création: 01/01/2022
|
||||
entreprise . ACRE: oui
|
||||
|
||||
activités:
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'libérale'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'libérale'"
|
||||
entreprise . activité . libérale réglementée: oui
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'artisanale'"
|
||||
entreprise . activité . service ou vente: "'vente'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'artisanale'"
|
||||
entreprise . activité . service ou vente: "'service'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'commerciale'"
|
||||
entreprise . activité . service ou vente: "'vente'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'commerciale'"
|
||||
entreprise . activité . service ou vente: "'service'"
|
||||
|
||||
activité mixte:
|
||||
- dirigeant . auto-entrepreneur . chiffre d'affaires: 20000 €/an
|
||||
entreprise . activité . mixte: oui
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
import { it } from 'vitest'
|
||||
import dividendesConfig from '../../source/pages/Simulateurs/configs/dividendes.yaml'
|
||||
import dividendesSituations from './simulations-dividendes.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-dividendes', () => {
|
||||
runSimulations(
|
||||
dividendesSituations,
|
||||
[
|
||||
...dividendesConfig.objectifs,
|
||||
'bénéficiaire . dividendes . cotisations et contributions',
|
||||
'impôt . montant',
|
||||
'impôt . revenu imposable',
|
||||
'bénéficiaire . dividendes . imposables',
|
||||
"impôt . taux d'imposition",
|
||||
],
|
||||
dividendesConfig.situation
|
||||
)
|
||||
})
|
|
@ -0,0 +1,17 @@
|
|||
import { it } from 'vitest'
|
||||
import impotSocieteSituations from './simulations-impôt-société.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-impot-société', () => {
|
||||
runSimulations(
|
||||
impotSocieteSituations,
|
||||
[
|
||||
'entreprise . imposition . IS . montant',
|
||||
'entreprise . imposition . IS . contribution sociale',
|
||||
],
|
||||
{
|
||||
'entreprise . imposition': "'IS'",
|
||||
'entreprise . imposition . IS . éligible taux réduit': 'oui',
|
||||
}
|
||||
)
|
||||
})
|
|
@ -0,0 +1,20 @@
|
|||
import { DottedName } from 'modele-social'
|
||||
import { it } from 'vitest'
|
||||
import independantConfig from '../../source/pages/Simulateurs/configs/indépendant.yaml'
|
||||
import independentSituations from './simulations-indépendant.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-indépendant', () => {
|
||||
const objectifs = [
|
||||
'dirigeant . rémunération . totale',
|
||||
'dirigeant . rémunération . cotisations',
|
||||
'dirigeant . rémunération . nette',
|
||||
'dirigeant . indépendant . revenu professionnel',
|
||||
'impôt . montant',
|
||||
'dirigeant . rémunération . nette après impôt',
|
||||
'entreprise . charges',
|
||||
"entreprise . chiffre d'affaires",
|
||||
'dirigeant . indépendant . cotisations et contributions . début activité',
|
||||
] as DottedName[]
|
||||
runSimulations(independentSituations, objectifs, independantConfig.situation)
|
||||
})
|
|
@ -120,3 +120,47 @@ imposition à l'IS:
|
|||
exonération pension invalidité:
|
||||
- dirigeant . rémunération . totale: 45000 €/an
|
||||
dirigeant . indépendant . cotisations et contributions . exonérations . pension invalidité: oui
|
||||
|
||||
contrats madelin:
|
||||
# Cas retraite: la cotisation Madelin est inferieure au plafond => le revenu net de
|
||||
# cotisations (résultat comptable) n'est pas affecté car l'assiette des
|
||||
# cotisations ne change pas:
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 3800 €/an # plafond: 10% PSS donc environ 4100
|
||||
# Cas retraite: la cotisation Madelin est supérieure au plafond => le revenu net de
|
||||
# cotisations est affecté car l'assiette des cotisations est plus élevée
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 5000 €/an # plafond: 10% PSS donc environ 4100
|
||||
# Cas mutuelle
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 1000 €/an
|
||||
# Cas global madelin faible
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 1000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 200 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 300 €/an
|
||||
# Cas global madelin grand (plafonds calculés différemment)
|
||||
- dirigeant . rémunération . totale: 300000 €/an
|
||||
entreprise . charges: 15000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 1500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 5000 €/an
|
||||
# Cas charges plus faibles que total madelin
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 300 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 300 €/an
|
||||
# PER
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . PER: 5500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 900 €/an
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
import { it } from 'vitest'
|
||||
import professionLibéraleConfig from '../../source/pages/Simulateurs/configs/profession-libérale.yaml'
|
||||
import professionsLibéralesSituations from './simulations-professions-libérales.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-professions-libérales', () => {
|
||||
runSimulations(
|
||||
professionsLibéralesSituations,
|
||||
professionLibéraleConfig.objectifs,
|
||||
{
|
||||
...professionLibéraleConfig.situation,
|
||||
'entreprise . activité . libérale réglementée': 'oui',
|
||||
}
|
||||
)
|
||||
})
|
|
@ -1,94 +0,0 @@
|
|||
échelle de rémunération:
|
||||
- dirigeant . rémunération . totale: 100 €/an
|
||||
- dirigeant . rémunération . totale: 1000 €/an
|
||||
- dirigeant . rémunération . totale: 2000 €/an
|
||||
- dirigeant . rémunération . totale: 5000 €/an
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
- dirigeant . rémunération . totale: 50000 €/an
|
||||
- dirigeant . rémunération . totale: 100000 €/an
|
||||
|
||||
avec charges:
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
entreprise . charges: 2000 €/an
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 15000 €/an
|
||||
|
||||
ACRE:
|
||||
- dirigeant . rémunération . totale: 10000 €/an
|
||||
entreprise . date de création: 01/01/2022
|
||||
entreprise . ACRE: oui
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . date de création: 01/01/2022
|
||||
entreprise . ACRE: oui
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . date de création: 01/06/2021
|
||||
entreprise . ACRE: oui
|
||||
|
||||
activités:
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'libérale'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'libérale'"
|
||||
entreprise . activité . libérale réglementée: oui
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'artisanale'"
|
||||
entreprise . activité . service ou vente: "'vente'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'artisanale'"
|
||||
entreprise . activité . service ou vente: "'service'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'commerciale'"
|
||||
entreprise . activité . service ou vente: "'vente'"
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . activité: "'commerciale'"
|
||||
entreprise . activité . service ou vente: "'service'"
|
||||
|
||||
Contrats Madelin:
|
||||
# Cas retraite: la cotisation Madelin est inferieure au plafond => le revenu net de
|
||||
# cotisations (résultat comptable) n'est pas affecté car l'assiette des
|
||||
# cotisations ne change pas:
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 3800 €/an # plafond: 10% PSS donc environ 4100
|
||||
# Cas retraite: la cotisation Madelin est supérieure au plafond => le revenu net de
|
||||
# cotisations est affecté car l'assiette des cotisations est plus élevée
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 5000 €/an # plafond: 10% PSS donc environ 4100
|
||||
# Cas mutuelle
|
||||
- dirigeant . rémunération . totale: 30000 €/an
|
||||
entreprise . charges: 10000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 1000 €/an
|
||||
# Cas global madelin faible
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 1000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 200 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 300 €/an
|
||||
# Cas global madelin grand (plafonds calculés différemment)
|
||||
- dirigeant . rémunération . totale: 300000 €/an
|
||||
entreprise . charges: 15000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 1500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 5000 €/an
|
||||
# Cas charges plus faibles que total madelin
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
entreprise . charges: 500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 300 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 300 €/an
|
||||
# PER
|
||||
- dirigeant . rémunération . totale: 20000 €/an
|
||||
dirigeant . indépendant . cotisations facultatives: oui
|
||||
dirigeant . indépendant . cotisations facultatives . PER: 5500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . prévoyance: 500 €/an
|
||||
dirigeant . indépendant . cotisations facultatives . contrats madelin . retraite: 900 €/an
|
||||
|
||||
JEI:
|
||||
- dirigeant . rémunération . totale: 4000 €/mois
|
||||
dirigeant . régime social: "'assimilé salarié'"
|
||||
contrat salarié . statut JEI: oui
|
|
@ -0,0 +1,45 @@
|
|||
import { expect, it } from 'vitest'
|
||||
import employeeConfig from '../../source/pages/Simulateurs/configs/salarié.yaml'
|
||||
import employeeSituations from './simulations-salarié.yaml'
|
||||
import { engine, getMissingVariables, runSimulations } from './utils'
|
||||
|
||||
it('calculate simulations-salarié', () => {
|
||||
runSimulations(
|
||||
employeeSituations,
|
||||
employeeConfig.objectifs,
|
||||
employeeConfig.situation
|
||||
)
|
||||
|
||||
expect(
|
||||
getMissingVariables(
|
||||
engine
|
||||
.setSituation({
|
||||
...employeeConfig.situation,
|
||||
'contrat salarié . rémunération . brut de base': '3000 €/mois',
|
||||
})
|
||||
.evaluate('contrat salarié . rémunération . net après impôt')
|
||||
)
|
||||
).toMatchInlineSnapshot(`
|
||||
[
|
||||
"contrat salarié",
|
||||
"contrat salarié . convention collective",
|
||||
"contrat salarié . temps de travail . temps partiel",
|
||||
"contrat salarié . rémunération . primes . activité . base",
|
||||
"contrat salarié . temps de travail . heures supplémentaires",
|
||||
"contrat salarié . frais professionnels . abonnement transports publics . montant",
|
||||
"contrat salarié . frais professionnels . transports personnels . carburant faible émission . montant",
|
||||
"contrat salarié . déduction forfaitaire spécifique",
|
||||
"contrat salarié . frais professionnels . titres-restaurant",
|
||||
"contrat salarié . frais professionnels . transports personnels . forfait mobilités durables . montant",
|
||||
"contrat salarié . rémunération . avantages en nature",
|
||||
"contrat salarié . rémunération . primes . fin d'année . treizième mois",
|
||||
"contrat salarié . complémentaire santé . forfait",
|
||||
"contrat salarié . complémentaire santé . part employeur",
|
||||
"situation personnelle . domiciliation fiscale à l'étranger",
|
||||
"contrat salarié . statut cadre",
|
||||
"contrat salarié . régime des impatriés",
|
||||
"établissement . localisation",
|
||||
"impôt . méthode de calcul",
|
||||
]
|
||||
`)
|
||||
})
|
|
@ -1,200 +0,0 @@
|
|||
// The goal of these tests is to avoid deploying unwanted changes in the calculations. We run a number
|
||||
// of simulations and persist their results in a snapshot (ie, a file commited in git). Our test runner,
|
||||
// Jest, then compare the existing snapshot with the current Engine calculation and reports any difference.
|
||||
//
|
||||
// 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 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'
|
||||
import autoentrepreneurConfig from '../../source/pages/Simulateurs/configs/auto-entrepreneur.yaml'
|
||||
import dividendesConfig from '../../source/pages/Simulateurs/configs/dividendes.yaml'
|
||||
import independantConfig from '../../source/pages/Simulateurs/configs/indépendant.yaml'
|
||||
import professionLibéraleConfig from '../../source/pages/Simulateurs/configs/profession-libérale.yaml'
|
||||
import remunerationDirigeantConfig from '../../source/pages/Simulateurs/configs/rémunération-dirigeant.yaml'
|
||||
import employeeConfig from '../../source/pages/Simulateurs/configs/salarié.yaml'
|
||||
import { Simulation } from '../../source/reducers/rootReducer'
|
||||
import aideDéclarationIndépendantsSituations from './assistant-charges-sociales.yaml'
|
||||
import artisteAuteurSituations from './simulations-artiste-auteur.yaml'
|
||||
import autoEntrepreneurSituations from './simulations-auto-entrepreneur.yaml'
|
||||
import dividendesSituations from './simulations-dividendes.yaml'
|
||||
import impotSocieteSituations from './simulations-impôt-société.yaml'
|
||||
import independentSituations from './simulations-indépendant.yaml'
|
||||
import professionsLibéralesSituations from './simulations-professions-libérales.yaml'
|
||||
import remunerationDirigeantSituations from './simulations-rémunération-dirigeant.yaml'
|
||||
import employeeSituations from './simulations-salarié.yaml'
|
||||
|
||||
type SituationsSpecs = Record<string, Simulation['situation'][]>
|
||||
const roundResult = (arr: number[]) => arr.map((x) => Math.round(x))
|
||||
const engine = engineFactory(rules, {
|
||||
logger: {
|
||||
warn: () => undefined,
|
||||
error: (m: string) => console.error(m),
|
||||
log: () => undefined,
|
||||
},
|
||||
})
|
||||
const runSimulations = (
|
||||
situationsSpecs: SituationsSpecs,
|
||||
objectifs: DottedName[],
|
||||
baseSituation: Simulation['situation'] = {}
|
||||
) =>
|
||||
Object.entries(situationsSpecs).map(([name, situations]) =>
|
||||
situations.forEach((situation) => {
|
||||
Object.keys(situation).forEach((situationRuleName) => {
|
||||
// TODO: This check may be moved in the `engine.setSituation` method
|
||||
if (!Object.keys(engine.getParsedRules()).includes(situationRuleName)) {
|
||||
throw new Error(
|
||||
`La règle ${situationRuleName} n'existe pas dans la base de règles.`
|
||||
)
|
||||
}
|
||||
})
|
||||
engine.setSituation({ ...baseSituation, ...situation })
|
||||
const res = objectifs.map(
|
||||
(objectif) => engine.evaluate(objectif).nodeValue
|
||||
)
|
||||
|
||||
const evaluatedNotifications = Object.values(engine.getParsedRules())
|
||||
.filter(
|
||||
(rule) =>
|
||||
rule.rawNode.type === 'notification' &&
|
||||
engine.evaluate(rule.dottedName).nodeValue === true
|
||||
)
|
||||
.map((node) => node.dottedName)
|
||||
|
||||
const snapshotedDisplayedNotifications = evaluatedNotifications.length
|
||||
? `\nNotifications affichées : ${evaluatedNotifications.join(', ')}`
|
||||
: ''
|
||||
// Stringify is not required, but allows the result to be displayed in a single
|
||||
// line in the snapshot, which considerably reduce the number of lines of this snapshot
|
||||
// and improve its readability.
|
||||
expect(
|
||||
JSON.stringify(roundResult(res as number[])) +
|
||||
snapshotedDisplayedNotifications
|
||||
).toMatchSnapshot(name)
|
||||
})
|
||||
)
|
||||
|
||||
it('calculate simulations-salarié', () => {
|
||||
runSimulations(
|
||||
employeeSituations,
|
||||
employeeConfig.objectifs,
|
||||
employeeConfig.situation
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-indépendant', () => {
|
||||
const objectifs = [
|
||||
'dirigeant . rémunération . totale',
|
||||
'dirigeant . rémunération . cotisations',
|
||||
'dirigeant . rémunération . nette',
|
||||
'dirigeant . indépendant . revenu professionnel',
|
||||
'impôt . montant',
|
||||
'dirigeant . rémunération . nette après impôt',
|
||||
'entreprise . charges',
|
||||
"entreprise . chiffre d'affaires",
|
||||
'dirigeant . indépendant . cotisations et contributions . début activité',
|
||||
] as DottedName[]
|
||||
runSimulations(independentSituations, objectifs, independantConfig.situation)
|
||||
})
|
||||
|
||||
it('calculate simulations-auto-entrepreneur', () => {
|
||||
runSimulations(
|
||||
autoEntrepreneurSituations,
|
||||
autoentrepreneurConfig.objectifs,
|
||||
autoentrepreneurConfig.situation
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-rémunération-dirigeant (assimilé salarié)', () => {
|
||||
runSimulations(
|
||||
remunerationDirigeantSituations,
|
||||
remunerationDirigeantConfig.objectifs,
|
||||
{
|
||||
...remunerationDirigeantConfig.situation,
|
||||
'dirigeant . régime social': "'assimilé salarié'",
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-rémunération-dirigeant (auto-entrepreneur)', () => {
|
||||
runSimulations(
|
||||
remunerationDirigeantSituations,
|
||||
remunerationDirigeantConfig.objectifs,
|
||||
{
|
||||
...remunerationDirigeantConfig.situation,
|
||||
'entreprise . catégorie juridique': "'EI'",
|
||||
'entreprise . catégorie juridique . EI . auto-entrepreneur': 'oui',
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-rémunération-dirigeant (indépendant)', () => {
|
||||
runSimulations(
|
||||
remunerationDirigeantSituations,
|
||||
remunerationDirigeantConfig.objectifs,
|
||||
remunerationDirigeantConfig.situation
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-artiste-auteur', () => {
|
||||
runSimulations(
|
||||
artisteAuteurSituations,
|
||||
artisteAuteurConfig.objectifs,
|
||||
artisteAuteurConfig.situation
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate assistant-charges-sociales', () => {
|
||||
runSimulations(
|
||||
aideDéclarationIndépendantsSituations,
|
||||
aideDéclarationConfig.objectifs,
|
||||
{
|
||||
'déclaration charge sociales . comptabilité': "'engagement'",
|
||||
'entreprise . imposition . régime . micro-fiscal': "'non'",
|
||||
...aideDéclarationConfig.situation,
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-professions-libérales', () => {
|
||||
runSimulations(
|
||||
professionsLibéralesSituations,
|
||||
professionLibéraleConfig.objectifs,
|
||||
{
|
||||
...professionLibéraleConfig.situation,
|
||||
'entreprise . activité . libérale réglementée': 'oui',
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-impot-société', () => {
|
||||
runSimulations(
|
||||
impotSocieteSituations,
|
||||
[
|
||||
'entreprise . imposition . IS . montant',
|
||||
'entreprise . imposition . IS . contribution sociale',
|
||||
],
|
||||
{
|
||||
'entreprise . imposition': "'IS'",
|
||||
'entreprise . imposition . IS . éligible taux réduit': 'oui',
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
it('calculate simulations-dividendes', () => {
|
||||
runSimulations(
|
||||
dividendesSituations,
|
||||
[
|
||||
...dividendesConfig.objectifs,
|
||||
'bénéficiaire . dividendes . cotisations et contributions',
|
||||
'impôt . montant',
|
||||
'impôt . revenu imposable',
|
||||
'bénéficiaire . dividendes . imposables',
|
||||
"impôt . taux d'imposition",
|
||||
],
|
||||
dividendesConfig.situation
|
||||
)
|
||||
})
|
|
@ -0,0 +1,69 @@
|
|||
// The goal of these tests is to avoid deploying unwanted changes in the calculations. We run a number
|
||||
// of simulations and persist their results in a snapshot (ie, a file commited in git). Our test runner,
|
||||
// Jest, then compare the existing snapshot with the current Engine calculation and reports any difference.
|
||||
//
|
||||
// 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 rules, { DottedName } from 'modele-social'
|
||||
import { expect } from 'vitest'
|
||||
import { engineFactory } from '../../source/components/utils/EngineContext'
|
||||
import { Simulation } from '../../source/reducers/rootReducer'
|
||||
|
||||
type SituationsSpecs = Record<string, Simulation['situation'][]>
|
||||
const roundResult = (arr: number[]) => arr.map((x) => Math.round(x))
|
||||
|
||||
export const engine = engineFactory(rules, {
|
||||
logger: {
|
||||
warn: () => undefined,
|
||||
error: (m: string) => console.error(m),
|
||||
log: () => undefined,
|
||||
},
|
||||
})
|
||||
export const runSimulations = (
|
||||
situationsSpecs: SituationsSpecs,
|
||||
objectifs: DottedName[],
|
||||
baseSituation: Simulation['situation'] = {}
|
||||
) =>
|
||||
Object.entries(situationsSpecs).map(([name, situations]) =>
|
||||
situations.forEach((situation) => {
|
||||
Object.keys(situation).forEach((situationRuleName) => {
|
||||
// TODO: This check may be moved in the `engine.setSituation` method
|
||||
if (!Object.keys(engine.getParsedRules()).includes(situationRuleName)) {
|
||||
throw new Error(
|
||||
`La règle ${situationRuleName} n'existe pas dans la base de règles.`
|
||||
)
|
||||
}
|
||||
})
|
||||
engine.setSituation({ ...baseSituation, ...situation })
|
||||
const res = objectifs.map(
|
||||
(objectif) => engine.evaluate(objectif).nodeValue
|
||||
)
|
||||
|
||||
const evaluatedNotifications = Object.values(engine.getParsedRules())
|
||||
.filter(
|
||||
(rule) =>
|
||||
rule.rawNode.type === 'notification' &&
|
||||
engine.evaluate(rule.dottedName).nodeValue === true
|
||||
)
|
||||
.map((node) => node.dottedName)
|
||||
|
||||
const snapshotedDisplayedNotifications = evaluatedNotifications.length
|
||||
? `\nNotifications affichées : ${evaluatedNotifications.join(', ')}`
|
||||
: ''
|
||||
// Stringify is not required, but allows the result to be displayed in a single
|
||||
// line in the snapshot, which considerably reduce the number of lines of this snapshot
|
||||
// and improve its readability.
|
||||
expect(
|
||||
JSON.stringify(roundResult(res as number[])) +
|
||||
snapshotedDisplayedNotifications
|
||||
).toMatchSnapshot(name)
|
||||
})
|
||||
)
|
||||
|
||||
export const getMissingVariables = (
|
||||
evaluatedNode: ReturnType<typeof engine['evaluate']>
|
||||
) =>
|
||||
Object.entries(evaluatedNode.missingVariables)
|
||||
.sort(([, scoreA], [, scoreB]) => scoreB - scoreA)
|
||||
.map(([name]) => name)
|
Loading…
Reference in New Issue