Répare les tests de non regression
parent
59e542a578
commit
50dee3a230
|
@ -16,7 +16,7 @@ scenarios:
|
|||
],
|
||||
"situation": {
|
||||
"dirigeant": "non",
|
||||
"entreprise . catégorie juridique": "non",
|
||||
"entreprise . catégorie juridique": "''",
|
||||
"entreprise . imposition": "non",
|
||||
"salarié . activité partielle": "non",
|
||||
"impôt . méthode de calcul . par défaut": {
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
bénéficiaire:
|
||||
experimental: oui
|
||||
applicable si: entreprise . imposition . IS
|
||||
valeur: non
|
||||
description: |
|
||||
Un bénéficiaire est un actionnaire dans une SAS ou un associé dans une
|
||||
SARL/EURL.
|
||||
|
||||
Attention: nous ne prenons en compte ici que le cas de figure de l'associé
|
||||
unique (SASU et EURL).
|
||||
valeur: non
|
||||
|
||||
# [TODO] [dividendes-indep]
|
||||
bénéficiaire . compte courant d'associé:
|
||||
|
@ -36,8 +36,6 @@ bénéficiaire . compte courant d'associé:
|
|||
Circulaire RSI C2014-001: https://www.secu-independants.fr/uploads/tx_rsirss/C2014-001.pdf
|
||||
|
||||
bénéficiaire . dividendes:
|
||||
valeur: oui
|
||||
applicable si: entreprise . imposition = 'IS'
|
||||
|
||||
bénéficiaire . dividendes . bruts:
|
||||
unité: €/an
|
||||
|
|
|
@ -8,12 +8,6 @@ dirigeant . gérant minoritaire:
|
|||
|
||||
dirigeant . régime social:
|
||||
experimental: oui
|
||||
|
||||
non applicable si:
|
||||
une de ces conditions:
|
||||
- entreprise . catégorie juridique . SELARL #TODO NON IMPLEMENTE
|
||||
- entreprise . catégorie juridique . SELAS #TODO NON IMPLEMENTE
|
||||
- entreprise . catégorie juridique . autre
|
||||
variations:
|
||||
- si: entreprise . catégorie juridique . EI . auto-entrepreneur
|
||||
alors: "'auto-entrepreneur'"
|
||||
|
|
|
@ -103,6 +103,7 @@ entreprise . activités:
|
|||
Artisanale : {{ artisanale }} ;
|
||||
Libérale : {{ libérale }} ;
|
||||
Agricole : {{ agricole }}
|
||||
par défaut: oui
|
||||
plusieurs possibilités:
|
||||
- artisanale
|
||||
- commerciale
|
||||
|
|
|
@ -26,7 +26,6 @@ entreprise . catégorie juridique:
|
|||
note: On se base ici sur les catégories juridiques définies par l'INSEE
|
||||
références:
|
||||
Liste des catégories juridique de l'INSEE: https://www.insee.fr/fr/information/2028129
|
||||
# par défaut: "'SARL'"
|
||||
une possibilité:
|
||||
choix obligatoire: oui
|
||||
possibilités:
|
||||
|
@ -58,6 +57,10 @@ entreprise . catégorie juridique . EI:
|
|||
par: "'micro-entreprise'"
|
||||
- règle: entreprise . imposition
|
||||
par: "'IR'"
|
||||
- règle: entreprise . imposition . IR
|
||||
par: oui
|
||||
- règle: entreprise . imposition . IS
|
||||
par: non
|
||||
par défaut:
|
||||
nom: par défaut
|
||||
experimental: oui
|
||||
|
|
|
@ -5,15 +5,16 @@ entreprise . imposition:
|
|||
possibilités:
|
||||
- IR
|
||||
- IS
|
||||
|
||||
par défaut:
|
||||
variations:
|
||||
- si:
|
||||
une de ces conditions:
|
||||
- catégorie juridique . SARL . EURL
|
||||
- catégorie juridique . SELARL . SELARL
|
||||
- catégorie juridique . EI
|
||||
alors: "'IR'"
|
||||
- sinon: "'IS'"
|
||||
|
||||
références:
|
||||
Comment seront imposés mes bénéfices ?: https://bpifrance-creation.fr/moment-de-vie/comment-seront-imposes-mes-benefices?block_id=186
|
||||
Quelle imposition selon mon statut ?: https://www.economie.gouv.fr/entreprises/impot-revenu-impot-societe-statut
|
||||
|
|
|
@ -38,20 +38,6 @@ export default function DividendesSimulation() {
|
|||
</Warning>
|
||||
<Notifications />
|
||||
<Simulation explanations={<DividendesExplanation />}>
|
||||
<div
|
||||
css={`
|
||||
display: flex;
|
||||
flex-wrap: wrap-reverse;
|
||||
> * {
|
||||
margin-top: 0.6rem;
|
||||
}
|
||||
justify-content: center;
|
||||
|
||||
@media (min-width: 590px) {
|
||||
justify-content: space-between;
|
||||
}
|
||||
`}
|
||||
></div>
|
||||
<DividendesSimulationGoals />
|
||||
</Simulation>
|
||||
</>
|
||||
|
@ -110,12 +96,10 @@ const DividendesSimulationGoals = () => (
|
|||
dottedName="impôt . foyer fiscal . revenu imposable . autres revenus imposables"
|
||||
/>
|
||||
</Condition>
|
||||
<Condition expression="oui">
|
||||
<SimulationGoal
|
||||
appear={false}
|
||||
dottedName="bénéficiaire . dividendes . nets d'impôt"
|
||||
/>
|
||||
</Condition>
|
||||
<SimulationGoal
|
||||
appear={false}
|
||||
dottedName="bénéficiaire . dividendes . nets d'impôt"
|
||||
/>
|
||||
</Condition>
|
||||
</SimulationGoals>
|
||||
)
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
import { ImmutableType } from '@/types/utils'
|
||||
|
||||
import { PageConfig } from './types'
|
||||
|
||||
// Replace type by commented line when we upgrade to typescript v5:
|
||||
export function config<
|
||||
// const Base extends ImmutableType<PageConfig>
|
||||
Base extends ImmutableType<PageConfig>
|
||||
>(base: ImmutableType<PageConfig> & Base) {
|
||||
return {
|
||||
[base.id]: base,
|
||||
} as ImmutableType<{ [k in Base['id']]: Base }>
|
||||
}
|
|
@ -14,7 +14,8 @@ export const configDividendes: SimulationConfig = {
|
|||
'unité par défaut': '€/an',
|
||||
situation: {
|
||||
bénéficiaire: 'oui',
|
||||
salarié: 'non',
|
||||
'entreprise . catégorie juridique': "'SAS'",
|
||||
'entreprise . associés': "'unique'",
|
||||
'entreprise . imposition': "'IS'",
|
||||
'impôt . méthode de calcul': "'PFU'",
|
||||
'dirigeant . rémunération . net . imposable': '0 €/an',
|
||||
|
|
|
@ -43,7 +43,6 @@ export const configIndépendant: SimulationConfig = {
|
|||
"entreprise . chiffre d'affaires",
|
||||
'entreprise . exercice . début',
|
||||
'entreprise . exercice . fin',
|
||||
'entreprise . catégorie juridique',
|
||||
'entreprise . imposition . régime',
|
||||
'entreprise . activités',
|
||||
'entreprise . activités . revenus mixtes',
|
||||
|
@ -62,6 +61,7 @@ export const configIndépendant: SimulationConfig = {
|
|||
situation: {
|
||||
'dirigeant . régime social': "'indépendant'",
|
||||
'entreprise . imposition': "'IR'",
|
||||
'entreprise . catégorie juridique': "''",
|
||||
salarié: 'non',
|
||||
},
|
||||
}
|
||||
|
@ -69,19 +69,24 @@ export const configIndépendant: SimulationConfig = {
|
|||
export const configEntrepriseIndividuelle: SimulationConfig = {
|
||||
...configIndépendant,
|
||||
situation: {
|
||||
...configIndépendant.situation,
|
||||
'entreprise . imposition': "'IR'",
|
||||
'entreprise . catégorie juridique': "'EI'",
|
||||
'entreprise . catégorie juridique . EI . auto-entrepreneur': 'non',
|
||||
},
|
||||
}
|
||||
|
||||
export const configEirl: SimulationConfig = {
|
||||
...configIndépendant,
|
||||
situation: {
|
||||
'entreprise . catégorie juridique': "'EI'",
|
||||
'entreprise . catégorie juridique . EI . auto-entrepreneur': 'non',
|
||||
},
|
||||
}
|
||||
|
||||
export const configEurl: SimulationConfig = {
|
||||
...configIndépendant,
|
||||
situation: {
|
||||
...configIndépendant.situation,
|
||||
'entreprise . catégorie juridique': "'SARL'",
|
||||
'entreprise . associés': "'unique'",
|
||||
'entreprise . imposition': "'IS'",
|
||||
},
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ export const configSalarié: SimulationConfig = {
|
|||
'unité par défaut': '€/mois',
|
||||
situation: {
|
||||
dirigeant: 'non',
|
||||
'entreprise . catégorie juridique': 'non',
|
||||
'entreprise . catégorie juridique': "''",
|
||||
'entreprise . imposition': 'non',
|
||||
'salarié . activité partielle': 'non',
|
||||
'impôt . méthode de calcul . par défaut': {
|
||||
|
|
|
@ -1,10 +1,8 @@
|
|||
import { ImmutableType } from '@/types/utils'
|
||||
|
||||
import CoutCreationEntreprise from '.'
|
||||
import { PageConfig } from '../configs/types'
|
||||
import { config } from '../configs/config'
|
||||
import { SimulatorsDataParams } from '../metadata'
|
||||
|
||||
export function configCoûtCréationEntreprise({
|
||||
export function coûtCréationEntrepriseConfig({
|
||||
t,
|
||||
sitePaths,
|
||||
}: SimulatorsDataParams) {
|
||||
|
@ -48,13 +46,3 @@ export function configCoûtCréationEntreprise({
|
|||
// Remove this "as const" when we upgrade to typescript v5:
|
||||
} as const)
|
||||
}
|
||||
|
||||
// Replace type by commented line when we upgrade to typescript v5:
|
||||
function config<
|
||||
// const Base extends ImmutableType<PageConfig>
|
||||
Base extends ImmutableType<PageConfig>
|
||||
>(base: ImmutableType<PageConfig> & Base) {
|
||||
return {
|
||||
[base.id]: base,
|
||||
} as ImmutableType<{ [k in Base['id']]: Base }>
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
import ISSimulation, { SeoExplanations } from '.'
|
||||
import { config } from '../configs/config'
|
||||
import { SimulatorsDataParams } from '../metadata'
|
||||
import ISSimulationConfig from './_simulationConfig'
|
||||
|
||||
export function impôtSociétéConfig({ t, sitePaths }: SimulatorsDataParams) {
|
||||
return config({
|
||||
id: 'coût-création-entreprise',
|
||||
beta: true,
|
||||
icône: '🗓',
|
||||
tracking: 'impot-societe',
|
||||
pathId: 'simulateurs.is',
|
||||
iframePath: 'impot-societe',
|
||||
meta: {
|
||||
title: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
|
||||
description: t(
|
||||
'pages.simulateurs.is.meta.description',
|
||||
'Calculez votre impôt sur les sociétés'
|
||||
),
|
||||
color: '#E71D66',
|
||||
},
|
||||
shortName: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
|
||||
title: t(
|
||||
'pages.simulateurs.is.title',
|
||||
"Simulateur d'impôt sur les sociétés"
|
||||
),
|
||||
nextSteps: ['salarié', 'comparaison-statuts'],
|
||||
path: sitePaths.simulateurs.is,
|
||||
component: ISSimulation,
|
||||
seoExplanations: SeoExplanations,
|
||||
simulation: ISSimulationConfig,
|
||||
})
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
import { SimulationConfig } from '../configs/types'
|
||||
|
||||
const ISSimulationConfig: SimulationConfig = {
|
||||
'unité par défaut': '€/an',
|
||||
situation: {
|
||||
salarié: 'non',
|
||||
'entreprise . catégorie juridique': "''",
|
||||
'entreprise . imposition': "'IS'",
|
||||
'entreprise . imposition . IS . éligible taux réduit': 'oui',
|
||||
'entreprise . TVA . franchise de TVA': 'non',
|
||||
},
|
||||
}
|
||||
|
||||
export default ISSimulationConfig
|
|
@ -9,31 +9,13 @@ import { SimulationGoal, SimulationGoals } from '@/components/Simulation'
|
|||
import RuleInput from '@/components/conversation/RuleInput'
|
||||
import Warning from '@/components/ui/WarningBlock'
|
||||
import { FromTop } from '@/components/ui/animate'
|
||||
import useSimulationConfig from '@/components/utils/useSimulationConfig'
|
||||
import { H2 } from '@/design-system/typography/heading'
|
||||
import { Body, Intro } from '@/design-system/typography/paragraphs'
|
||||
import { SimulationConfig } from '@/reducers/rootReducer'
|
||||
import { situationSelector } from '@/selectors/simulationSelectors'
|
||||
import { useSitePaths } from '@/sitePaths'
|
||||
|
||||
import { TrackPage } from '../../ATInternetTracking'
|
||||
|
||||
const configIS = {
|
||||
'unité par défaut': '€/an',
|
||||
situation: {
|
||||
'entreprise . imposition': "'IS'",
|
||||
'entreprise . imposition . IS . éligible taux réduit': 'oui',
|
||||
'entreprise . TVA . franchise de TVA': 'non',
|
||||
},
|
||||
} as SimulationConfig
|
||||
import { TrackPage } from '../../../ATInternetTracking'
|
||||
|
||||
export default function ISSimulation() {
|
||||
const { absoluteSitePaths } = useSitePaths()
|
||||
|
||||
useSimulationConfig({
|
||||
path: absoluteSitePaths.simulateurs.is,
|
||||
config: configIS,
|
||||
})
|
||||
|
||||
return (
|
||||
<>
|
||||
<Warning
|
||||
|
@ -130,3 +112,36 @@ function Explanations() {
|
|||
</FromTop>
|
||||
)
|
||||
}
|
||||
|
||||
export const SeoExplanations = (
|
||||
<Trans i18nKey="pages.simulateurs.is.seo">
|
||||
<H2>Comment est calculé l’impôt sur les sociétés ?</H2>
|
||||
<Body>
|
||||
L’impôt sur les sociétés s’applique aux bénéfices réalisés par les
|
||||
sociétés de capitaux (SA, SAS, SASU, SARL, etc.) et sur option facultative
|
||||
pour certaines autres sociétés (EIRL, EURL, SNC, etc.).
|
||||
</Body>
|
||||
<Body>
|
||||
Il est calculé sur la base des bénéfices réalisés en France au cours de
|
||||
l’exercice comptable. La durée d’un exercice est normalement d’un an mais
|
||||
il peut être plus court ou plus long (notamment en début d’activité ou à
|
||||
la dissolution de l’entreprise). Dans ce cas le barème de l’impôt est
|
||||
pro-ratisé en fonction de la durée de l’exercice, ce qui est pris en
|
||||
compte dans le simulateur en modifiant les dates de début et de fin de
|
||||
l’exercice.
|
||||
</Body>
|
||||
<H2>Taux réduit et régimes spécifiques</H2>
|
||||
<Body>
|
||||
Les PME réalisant moins de 7,63 millions d’euros de chiffre d’affaires et
|
||||
dont le capital est détenu à 75% par des personnes physiques bénéficient
|
||||
d’un taux réduit d’impôt sur les sociétés. Ce taux est pris en compte sur
|
||||
le simulateur et il n’est pour l’instant pas possible de simuler
|
||||
l’inéligibilité aux taux réduits.
|
||||
</Body>
|
||||
<Body>
|
||||
Enfin il existe des régimes d’impositions spécifiques avec des taux dédiés
|
||||
pour certains types de plus-values (cession de titres, cession de
|
||||
brevets). Ces régimes ne sont pas intégrés dans le simulateur.
|
||||
</Body>
|
||||
</Trans>
|
||||
)
|
|
@ -1,7 +1,8 @@
|
|||
import { ImmutableType } from '@/types/utils'
|
||||
|
||||
import { PageConfig } from './configs/types'
|
||||
import { configCoûtCréationEntreprise } from './cout-creation-entreprise/_config.js'
|
||||
import { coûtCréationEntrepriseConfig } from './cout-creation-entreprise/_config.js'
|
||||
import { impôtSociétéConfig } from './impot-societe/_config'
|
||||
import { SimulatorsDataParams } from './metadata'
|
||||
|
||||
/**
|
||||
|
@ -727,27 +728,7 @@ const getMetadataSrc = (params: SimulatorsDataParams) => {
|
|||
},
|
||||
shortName: t('pages.simulateurs.pamc.shortname', 'PAMC'),
|
||||
},
|
||||
is: {
|
||||
icône: '🗓',
|
||||
tracking: 'impot-societe',
|
||||
pathId: 'simulateurs.is',
|
||||
iframePath: 'impot-societe',
|
||||
meta: {
|
||||
title: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
|
||||
description: t(
|
||||
'pages.simulateurs.is.meta.description',
|
||||
'Calculez votre impôt sur les sociétés'
|
||||
),
|
||||
color: '#E71D66',
|
||||
},
|
||||
shortName: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
|
||||
title: t(
|
||||
'pages.simulateurs.is.title',
|
||||
"Simulateur d'impôt sur les sociétés"
|
||||
),
|
||||
|
||||
nextSteps: ['salarié', 'comparaison-statuts'],
|
||||
},
|
||||
dividendes: {
|
||||
icône: '🎩',
|
||||
tracking: 'dividendes',
|
||||
|
@ -796,7 +777,8 @@ const getMetadataSrc = (params: SimulatorsDataParams) => {
|
|||
nextSteps: ['déclaration-charges-sociales-indépendant'],
|
||||
},
|
||||
|
||||
...configCoûtCréationEntreprise(params),
|
||||
...coûtCréationEntrepriseConfig(params),
|
||||
...impôtSociétéConfig(params),
|
||||
} as const
|
||||
|
||||
// TODO: remove this Omit
|
||||
|
|
|
@ -26,7 +26,6 @@ import SchemeComparaisonPage from './ComparateurStatuts'
|
|||
import DividendesSimulation from './Dividendes'
|
||||
import ÉconomieCollaborative from './EconomieCollaborative'
|
||||
import ExonérationCovid from './ExonerationCovid'
|
||||
import ISSimulation from './ImpôtSociété'
|
||||
import IndépendantSimulation, {
|
||||
EntrepriseIndividuelle,
|
||||
IndépendantPLSimulation,
|
||||
|
@ -558,6 +557,7 @@ function getSimulatorsData(params: SimulatorsDataParams) {
|
|||
'économie-collaborative': {
|
||||
...pureSimulatorsData['économie-collaborative'],
|
||||
path: sitePaths.simulateurs.économieCollaborative.index,
|
||||
beta: true,
|
||||
component: ÉconomieCollaborative,
|
||||
},
|
||||
'choix-statut': {
|
||||
|
@ -639,46 +639,10 @@ function getSimulatorsData(params: SimulatorsDataParams) {
|
|||
simulation: configProfessionLibérale,
|
||||
component: PAMCHome,
|
||||
},
|
||||
is: {
|
||||
...pureSimulatorsData.is,
|
||||
path: sitePaths.simulateurs.is,
|
||||
component: ISSimulation,
|
||||
seoExplanations: (
|
||||
<Trans i18nKey="pages.simulateurs.is.seo">
|
||||
<H2>Comment est calculé l’impôt sur les sociétés ?</H2>
|
||||
<Body>
|
||||
L’impôt sur les sociétés s’applique aux bénéfices réalisés par les
|
||||
sociétés de capitaux (SA, SAS, SASU, SARL, etc.) et sur option
|
||||
facultative pour certaines autres sociétés (EIRL, EURL, SNC, etc.).
|
||||
</Body>
|
||||
<Body>
|
||||
Il est calculé sur la base des bénéfices réalisés en France au cours
|
||||
de l’exercice comptable. La durée d’un exercice est normalement d’un
|
||||
an mais il peut être plus court ou plus long (notamment en début
|
||||
d’activité ou à la dissolution de l’entreprise). Dans ce cas le
|
||||
barème de l’impôt est pro-ratisé en fonction de la durée de
|
||||
l’exercice, ce qui est pris en compte dans le simulateur en
|
||||
modifiant les dates de début et de fin de l’exercice.
|
||||
</Body>
|
||||
<H2>Taux réduit et régimes spécifiques</H2>
|
||||
<Body>
|
||||
Les PME réalisant moins de 7,63 millions d’euros de chiffre
|
||||
d’affaires et dont le capital est détenu à 75% par des personnes
|
||||
physiques bénéficient d’un taux réduit d’impôt sur les sociétés. Ce
|
||||
taux est pris en compte sur le simulateur et il n’est pour l’instant
|
||||
pas possible de simuler l’inéligibilité aux taux réduits.
|
||||
</Body>
|
||||
<Body>
|
||||
Enfin il existe des régimes d’impositions spécifiques avec des taux
|
||||
dédiés pour certains types de plus-values (cession de titres,
|
||||
cession de brevets). Ces régimes ne sont pas intégrés dans le
|
||||
simulateur.
|
||||
</Body>
|
||||
</Trans>
|
||||
),
|
||||
},
|
||||
|
||||
dividendes: {
|
||||
...pureSimulatorsData.dividendes,
|
||||
beta: true,
|
||||
path: sitePaths.simulateurs.dividendes,
|
||||
simulation: configDividendes,
|
||||
component: DividendesSimulation,
|
||||
|
@ -740,6 +704,7 @@ function getSimulatorsData(params: SimulatorsDataParams) {
|
|||
},
|
||||
|
||||
'coût-création-entreprise': pureSimulatorsData['coût-création-entreprise'],
|
||||
is: pureSimulatorsData['coût-création-entreprise'],
|
||||
} as const
|
||||
|
||||
return data satisfies ImmutableType<{ [key: string]: Omit<PageConfig, 'id'> }>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import { it } from 'vitest'
|
||||
|
||||
import ISSimulationConfig from '@/pages/Simulateurs/impot-societe/_simulationConfig'
|
||||
|
||||
import impotSocieteSituations from './simulations-impôt-société.yaml'
|
||||
import { runSimulations } from './utils'
|
||||
|
||||
|
@ -10,9 +12,6 @@ it('calculate simulations-impot-société', () => {
|
|||
'entreprise . imposition . IS . montant',
|
||||
'entreprise . imposition . IS . contribution sociale',
|
||||
],
|
||||
{
|
||||
'entreprise . imposition': "'IS'",
|
||||
'entreprise . imposition . IS . éligible taux réduit': 'oui',
|
||||
}
|
||||
ISSimulationConfig.situation
|
||||
)
|
||||
})
|
||||
|
|
|
@ -37,7 +37,6 @@ it('calculate simulations-indépendant', () => {
|
|||
"entreprise . activité . nature",
|
||||
"entreprise . activités",
|
||||
"entreprise . activités . commerciale",
|
||||
"entreprise . catégorie juridique",
|
||||
"entreprise . charges",
|
||||
"entreprise . chiffre d'affaires",
|
||||
"entreprise . date de création",
|
||||
|
|
Loading…
Reference in New Issue