Met à jour les tests de non-regression

pull/2059/head
Johan Girod 2022-03-13 15:31:38 +01:00
parent 3aa11ace73
commit 730f5bfa06
32 changed files with 188 additions and 295 deletions

View File

@ -27,7 +27,7 @@
"build": "node ../scripts/build-rules.js",
"start": "onchange 'règles/**/*.yaml' -- yarn run build",
"clean": "rimraf dist node_modules",
"prepack": "yarn run build",
"postinstall": "yarn run build",
"up": "yarn version --minor && echo \" N'oubliez pas de poussez le tag git\"",
"test": "node ../scripts/check-changelog.js"
}

View File

@ -28,7 +28,7 @@
"build": "node ../scripts/build-rules.js",
"start": "onchange 'règles/**/*.yaml' -- yarn run build",
"clean": "rimraf dist node_modules",
"prepack": "yarn run build",
"postinstall": "yarn run build",
"up": "yarn version --minor && echo \" N'oubliez pas de poussez le tag git\"",
"test": "node ../scripts/check-changelog.js"
}

View File

@ -208,11 +208,10 @@ entreprise . chiffre d'affaires . franchise de TVA . seuil service:
entreprise . chiffre d'affaires . franchise de TVA . dépassement:
type: notification
formule:
une de ces conditions:
- chiffre d'affaires > seuil vente + seuil service
- vente restauration hébergement > seuil vente
- service > seuil service
une de ces conditions:
- chiffre d'affaires > seuil vente + seuil service
- vente restauration hébergement > seuil vente
- service > seuil service
résumé: |
Le seuil annuel de chiffre d'affaires pour la franchise de TVA est dépassé.
description: |

View File

@ -9,11 +9,7 @@ entreprise . imposition:
possibilités:
- IR
- IS
par défaut:
variations:
- si: catégorie juridique . EI
alors: "'IR'"
- sinon: "'IS'"
par défaut: "'IR'"
entreprise . imposition . IR:
applicable si: imposition = 'IR'

View File

@ -32,9 +32,7 @@
},
"resolutions": {
"prettier": "^2.5.1",
"@mui/styled-engine": "npm:@mui/styled-engine-sc@latest",
"publicodes": "portal:/home/johan/Projets/publicodes/packages/core",
"publicodes-react": "portal:/home/johan/Projets/publicodes/packages/react-ui"
"@mui/styled-engine": "npm:@mui/styled-engine-sc@latest"
},
"packageManager": "yarn@3.2.0",
"devDependencies": {

View File

@ -59,7 +59,7 @@ describe(`Navigation to income simulator using company name (${
).click()
cy.get('input').first().type('menoz')
cy.contains('834364291').click()
cy.contains('SASU').click()
cy.contains('SAS(U)').click()
cy.location().should((loc) => {
expect(loc.pathname).to.match(/sasu$/)
})

View File

@ -1,6 +1,6 @@
const searchInputPath = '[data-testid=company-search-input]'
const searchResultsPath = '[data-testid=company-search-results]'
const currentCompanyPath = '[data-testid=currently-selected-company]'
const searchInputPath = '[data-test-id=company-search-input]'
const searchResultsPath = '[data-test-id=company-search-results]'
const currentCompanyPath = '[data-test-id=currently-selected-company]'
const FIXTURES_FOLDER = 'cypress/fixtures/landing'
@ -51,7 +51,7 @@ describe('Landing page', function () {
cy.go('back')
cy.get(currentCompanyPath).should('exist')
cy.get(currentCompanyPath).click()
cy.contains('Continuer avec cette entreprise').click()
cy.url().should('include', '/g%C3%A9rer')

View File

@ -12,7 +12,11 @@ describe('Simulateur salarié', function () {
before(function () {
cy.get('button').contains('SMIC').click()
cy.contains('Voir ma situation').click()
cy.get('div[role="dialog"]').contains('Temps partiel').click()
cy.get('div[role="dialog"]')
.contains('Temps partiel')
.next()
.find('button')
.click()
cy.contains('Oui').click()
cy.wait(100)
})

View File

@ -123,7 +123,7 @@ function ActivitéMixte() {
)
return (
<div key={defaultChecked}>
<div key={Boolean(defaultChecked).toString()}>
<StyledActivitéMixteContainer>
<Trans>
<Switch

View File

@ -1,31 +1,36 @@
import { Message } from '@/design-system'
import { CardContainer } from '@/design-system/card/Card'
import { Strong } from '@/design-system/typography'
import { H4 } from '@/design-system/typography/heading'
import { Body, Intro } from '@/design-system/typography/paragraphs'
import { Body } from '@/design-system/typography/paragraphs'
import { Trans } from 'react-i18next'
import styled from 'styled-components'
import Value from '../EngineValue'
export function CompanyDetails() {
return (
<StyledCompanyContainer>
<H4>
<H4 data-test-id="currently-selected-company">
{' '}
<Value expression="entreprise . nom" linkToRule={false} />{' '}
<Value expression="entreprise . SIREN" linkToRule={false} />
</H4>
<Body>
Crée le{' '}
<Strong>
<Value
expression="entreprise . date de création"
linkToRule={false}
/>
</Strong>{' '}
et domiciliée à{' '}
<Strong>
<Value expression="établissement . localisation" linkToRule={false} />
</Strong>
<Trans>
Créee le{' '}
<Strong>
<Value
expression="entreprise . date de création"
linkToRule={false}
/>
</Strong>{' '}
et domiciliée à{' '}
<Strong>
<Value
expression="établissement . localisation"
linkToRule={false}
/>
</Strong>
</Trans>
</Body>
</StyledCompanyContainer>
)

View File

@ -63,7 +63,7 @@ export function CompanySearchField(props: {
<Grid container>
<Grid item xs={12}>
<SearchField
data-testid="company-search-input"
data-test-id="company-search-input"
state={state}
isSearchStalled={searchPending}
onClear={onClear}
@ -98,7 +98,7 @@ function Results({
</FromTop>
) : (
<FromTop>
<Grid container spacing={2} data-testid="company-search-results">
<Grid container spacing={2} data-test-id="company-search-results">
{results.map((etablissement) => (
<Grid key={etablissement.siren} item xs={12}>
<StyledCard onPress={() => onSubmit?.(etablissement)} compact>

View File

@ -24,14 +24,10 @@ import { ExplicableRule } from './Explicable'
import SeeAnswersButton from './SeeAnswersButton'
export type ConversationProps = {
displayNotification: boolean
customEndMessages?: React.ReactNode
}
export default function Conversation({
customEndMessages,
displayNotification = true,
}: ConversationProps) {
export default function Conversation({ customEndMessages }: ConversationProps) {
const dispatch = useDispatch()
const engine = useContext(EngineContext)
const currentQuestion = useNextQuestions()[0]
@ -111,7 +107,7 @@ export default function Conversation({
<SeeAnswersButton />
</Grid>
</Grid>
{displayNotification && <Notifications />}
<Notifications />
</form>
<QuickLinks />
</>

View File

@ -209,17 +209,19 @@ export function InstitutionsPartenairesArtisteAuteur() {
<section>
<H3>Vos cotisations</H3>
<Grid container>
<Grid item lg={12} xl={10}>
<Grid item lg={12}>
<Message border={false}>
<CotisationsUrssaf
rule="artiste-auteur . cotisations"
extraNotice={
<Condition expression="artiste-auteur . revenus . traitements et salaires > 0">
<Trans i18nKey="simulateurs.explanation.institutions.précompte-artiste-auteur">
Pour vos revenus en traitement et salaires, ces cotisations
sont « précomptées », c'est à dire payées à la source par le
diffuseur.
</Trans>
<SmallBody>
<Trans i18nKey="simulateurs.explanation.institutions.précompte-artiste-auteur">
Pour vos revenus en traitement et salaires, ces
cotisations sont « précomptées », c'est à dire payées à la
source par le diffuseur.
</Trans>
</SmallBody>
</Condition>
}
/>

View File

@ -5710,22 +5710,22 @@ dirigeant . indépendant . cotisations et contributions . cotisations:
titre.fr: cotisations
dirigeant . indépendant . cotisations et contributions . début activité:
description.en: >
[automatic] When you start your activity, your **professional income is not
known
[automatic] When you start your activity, your **professional income** is
not known**.
income is not known**, the contributions for the first two years are calculated on a
are not known**, the contributions and fees for the first two years are calculated on a
are calculated on a **lump sum basis**.
These contributions will be adjusted and regularized according to your real income of the year of exercise.
These contributions will be adjusted and regularized according to your actual income for the year of
the year of the exercise. If your income is higher than the flat rate used to calculate your provisional
for the calculation of the provisional contributions, you will have to pay an **additional
for the calculation of the provisional contributions, you will be required to pay an
of contributions**.
**additional contributions**.
@ -5735,7 +5735,7 @@ dirigeant . indépendant . cotisations et contributions . début activité:
**plan your cash flow** accordingly.
description.fr: >
Lorsque vous commencez votre activité, vos **revenus professionnels
Lorsque vous commencez votre activité, vos **revenus professionnels**
nétant pas connus**, les cotisations et contributions des deux premières
@ -5747,9 +5747,9 @@ dirigeant . indépendant . cotisations et contributions . début activité:
lannée dexercice. Si votre revenu est supérieur à la base forfaitaire prise en compte
pour le calcul des cotisations provisionnelles alors vous serez redevable dun **complément
pour le calcul des cotisations provisionnelles alors vous serez redevable dun
de cotisations**.
**complément de cotisations**.

View File

@ -62,6 +62,7 @@ Covid 19: Covid 19
Coût pour l'entreprise: Cost to the company
Crée le: Created on
"Crée le :": "Created on :"
Créee le <2><0></0></2> et domiciliée à <6><0></0></6>: Created on <2><0></0></2> and domiciled at <6><0></0></6>
Créer une: Create a
De: From
Demande de mobilité: Demand for mobility
@ -859,9 +860,9 @@ gérer:
cta: Go to monIdeNum.fr
title: Get a Kbis extract
kbis-autoentrepreneur:
body: Self-employed entrepreneurs do not have a Kbis. However, they can obtain
and present a K extract. See the service-public website for more
information.
body: Sole proprietorships and auto-entrepreneurs do not have a Kbis. However,
they can get and present a K extract. See the service-public website for
more information.
cta: Visit the site
title: How to get a Kbis extract?
sécuritéSociale:

View File

@ -32,6 +32,7 @@ Continuer: Continuer
Cotisations sociales: Cotisations sociales
Crée le: Crée le
"Crée le :": "Crée le :"
Créee le <2><0></0></2> et domiciliée à <6><0></0></6>: Créee le <2><0></0></2> et domiciliée à <6><0></0></6>
Créer une: Créer une
Devenir: Devenir
"Domiciliée à l'adresse :": "Domiciliée à l'adresse :"
@ -622,9 +623,9 @@ gérer:
cta: Aller sur monIdeNum.fr
title: Récupérer un extrait de Kbis
kbis-autoentrepreneur:
body: Les auto-entrepreneurs n'ont pas de Kbis. Ils peuvent cependant récupérer
et présenter un extrait K. Voir le site du service-public pour plus
d'informations.
body: Les entreprises individuelles et les auto-entrepreneurs n'ont pas de Kbis.
Ils peuvent cependant récupérer et présenter un extrait K. Voir le site
du service-public pour plus d'informations.
cta: Visiter le site
title: Récupérer un extrait de Kbis?
sécuritéSociale:

View File

@ -2,10 +2,6 @@ objectifs:
- déclaration indépendants . cotisations obligatoires déductibles
- dirigeant . rémunération . totale
- dirigeant . rémunération . nette
- déclaration indépendants . formulaire 2033
- déclaration indépendants . formulaire 2050
- déclaration indépendants . formulaire 2042
- déclaration indépendants . formulaire 2035
situation:
dirigeant . régime social: "'indépendant'"

View File

@ -1,56 +0,0 @@
import { FromTop } from '@/components/ui/animate'
import { Button } from '@/design-system/buttons'
import { H2 } from '@/design-system/typography/heading'
import { Body } from '@/design-system/typography/paragraphs'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { RootState } from '@/reducers/rootReducer'
import aideOrganismeSvg from './aideOrganisme.svg'
const aideMidiPyrenéesAutoEntrepreneur = (state: RootState) => {
const company = state.choixStatutJuridique.existingCompany
if (!company) {
return false
}
return (
company.isAutoEntrepreneur &&
company.localisation &&
['09', '12', '31', '32', '46', '65', '81', '82'].includes(
company.localisation.departement.code
)
)
}
export default function AideOrganismeLocal() {
const aideLocale = useSelector(aideMidiPyrenéesAutoEntrepreneur)
const {
i18n: { language },
} = useTranslation()
if (language !== 'fr' || !aideLocale) {
return null
}
return (
<FromTop>
<section>
<img
src={aideOrganismeSvg}
className="ui__ hide-mobile"
css="width: 230px; position: absolute; left: -230px; bottom: 0; padding: 1rem;"
/>
<H2>
COVID-19 et auto-entrepreneurs : l'Urssaf Midi-Pyrénées vous
accompagne
</H2>
<Body>
Assistez au webinar dédié aux auto-entrepreneur pour faire le point
sur vos échéances et les mesures daccompagnement.
</Body>
<Button
size="XS"
href="https://webikeo.fr/webinar/covid-19-auto-entrepreneurs-le-point-sur-vos-echeances-et-les-mesures-d-accompagnement"
>
En savoir plus
</Button>
</section>
</FromTop>
)
}

View File

@ -411,6 +411,7 @@ détachement . pays hors UE:
détachement . pays hors UE . convention bilatérale:
non applicable si: pays = 'Autre'
titre: ''
valeur: oui
type: groupe
description: >-
### Conditions particulières concernant les accords de protections social bilatéraux
@ -771,7 +772,7 @@ pluriactivité:
- demande . PAM
- demande . PAM . détachement possible = non
- demande . salarié = 'pluriactivité'
formule: oui
valeur: oui
titre: Demande de pluriactivité
type: groupe

View File

@ -106,6 +106,7 @@ function FormulairePublicodes() {
{}
)
).map((dottedName) => engine.getRule(dottedName))
console.log(missingValues)
return (
<>
<Grid container spacing={2}>

View File

@ -22,7 +22,6 @@ import styled from 'styled-components'
import { TrackPage } from '../../ATInternetTracking'
import { SimulateurCard } from '../Simulateurs/Home'
import useSimulatorsData, { SimulatorData } from '../Simulateurs/metadata'
import AideOrganismeLocal from './AideOrganismeLocal'
import { AutoEntrepreneurCard } from './cards/AutoEntrepeneurCard'
import { DemarcheEmbaucheCard } from './cards/DemarcheEmbauche'
import { KbisCard } from './cards/KBISCard'
@ -193,8 +192,6 @@ export default function Gérer() {
</FromTop>
)}
<AideOrganismeLocal />
<H2>
<Trans>Ressources utiles</Trans>
</H2>
@ -214,15 +211,11 @@ export default function Gérer() {
<AutoEntrepreneurCard />
</Grid>
</WhenApplicable>
<Grid item sm={12} md={4}>
<SecuriteSocialeCard />
</Grid>
<Spacing lg />
<Grid item sm={12} md={4}>
<KbisCard dirigeant={dirigeantSimulateur} />
<KbisCard />
</Grid>
</Grid>

View File

@ -1,51 +1,51 @@
import { WhenApplicable, WhenNotApplicable } from '@/components/EngineValue'
import { Article } from '@/design-system/card'
import { Trans, useTranslation } from 'react-i18next'
import { DirigeantOrNull } from '../Home'
type KbisCardProps = {
dirigeant: DirigeantOrNull
}
export function KbisCard({ dirigeant }: KbisCardProps) {
export function KbisCard() {
const { t, i18n } = useTranslation()
if (dirigeant === 'auto-entrepreneur') {
return (
<Article
title={t(
'gérer.ressources.kbis-autoentrepreneur.title',
'Récupérer un extrait de Kbis?'
)}
href={`https://www.service-public.fr/professionnels-entreprises/vosdroits/F21000${
i18n.language === 'fr' ? '' : '?lang=en'
}`}
ctaLabel={t(
'gérer.ressources.kbis-autoentrepreneur.cta',
'Visiter le site'
)}
>
<Trans i18nKey="gérer.ressources.kbis-autoentrepreneur.body">
Les auto-entrepreneurs n'ont pas de Kbis. Ils peuvent cependant
récupérer et présenter un extrait K. Voir le site du service-public
pour plus d'informations.
</Trans>
</Article>
)
}
return (
<Article
title={t('gérer.ressources.kbis.title', 'Récupérer un extrait de Kbis')}
ctaLabel={t('gérer.ressources.kbis.cta', 'Aller sur monIdeNum.fr')}
href="https://www.monidenum.fr"
>
<Trans i18nKey="gérer.ressources.kbis.body">
Le Kbis est un document permettant de justifier de l'enregistrement de
l'entreprise au{' '}
<abbr title="Registre du Commerce et des Sociétés">RCS</abbr> et de
prouver son existence légale. Ce document peut être récupéré
gratuitement pour votre entreprise via le site MonIdeNum.
</Trans>
</Article>
<>
<WhenApplicable dottedName="entreprise . catégorie juridique . EI">
<Article
title={t(
'gérer.ressources.kbis-autoentrepreneur.title',
'Récupérer un extrait de Kbis?'
)}
href={`https://www.service-public.fr/professionnels-entreprises/vosdroits/F21000${
i18n.language === 'fr' ? '' : '?lang=en'
}`}
ctaLabel={t(
'gérer.ressources.kbis-autoentrepreneur.cta',
'Visiter le site'
)}
>
<Trans i18nKey="gérer.ressources.kbis-autoentrepreneur.body">
Les entreprises individuelles et les auto-entrepreneurs n'ont pas de
Kbis. Ils peuvent cependant récupérer et présenter un extrait K.
Voir le site du service-public pour plus d'informations.
</Trans>
</Article>
</WhenApplicable>
<WhenNotApplicable dottedName="entreprise . catégorie juridique . EI">
<Article
title={t(
'gérer.ressources.kbis.title',
'Récupérer un extrait de Kbis'
)}
ctaLabel={t('gérer.ressources.kbis.cta', 'Aller sur monIdeNum.fr')}
href="https://www.monidenum.fr"
>
<Trans i18nKey="gérer.ressources.kbis.body">
Le Kbis est un document permettant de justifier de l'enregistrement
de l'entreprise au{' '}
<abbr title="Registre du Commerce et des Sociétés">RCS</abbr> et de
prouver son existence légale. Ce document peut être récupéré
gratuitement pour votre entreprise via le site MonIdeNum.
</Trans>
</Article>
</WhenNotApplicable>
</>
)
}

View File

@ -1,38 +0,0 @@
import { Grid } from '@mui/material'
import CompanySearchDetails from '@/components/company/SearchDetails'
import { SitePathsContext } from '@/components/utils/SitePathsContext'
import { Card } from '@/design-system/card'
import { H3 } from '@/design-system/typography/heading'
import { useContext } from 'react'
import { Trans } from 'react-i18next'
import { Company } from '@/reducers/choixStatutJuridiqueReducer'
type ContinueWithCompanyProps = {
company: Company
}
export const ContinueWithCompany = ({ company }: ContinueWithCompanyProps) => {
const sitePaths = useContext(SitePathsContext)
return (
<>
<H3 as="h2">
<Trans i18nKey="landing.choice.continue">
Continuer avec l'entreprise
</Trans>
</H3>
<Grid container>
<Grid item xs={12} md={8} lg={6}>
<Card
compact
to={sitePaths.gérer.index}
data-testid="currently-selected-company"
bodyAs="div"
>
<CompanySearchDetails entreprise={company} />
</Card>
</Grid>
</Grid>
</>
)
}

View File

@ -1,4 +1,3 @@
import { Grid } from '@mui/material'
import Footer from '@/components/layout/Footer/Footer'
import Header from '@/components/layout/Header'
import PageHeader from '@/components/PageHeader'
@ -9,14 +8,12 @@ import { Container, Spacing } from '@/design-system/layout'
import { H2 } from '@/design-system/typography/heading'
import { Link } from '@/design-system/typography/link'
import { Body, Intro } from '@/design-system/typography/paragraphs'
import { Grid } from '@mui/material'
import { useContext } from 'react'
import { Trans } from 'react-i18next'
import { useSelector } from 'react-redux'
import { RootState } from '@/reducers/rootReducer'
import { TrackPage } from '../../ATInternetTracking'
import { SimulateurCard } from '../Simulateurs/Home'
import useSimulatorsData from '../Simulateurs/metadata'
import { ContinueWithCompany } from './ContinueWithCompany'
import illustrationSvg from './illustration.svg'
import illustration2Svg from './illustration2.svg'
import SearchOrCreate from './SearchOrCreate'

View File

@ -1,6 +1,6 @@
situation:
dirigeant: non
contrat salarié: non
unité par défaut: €/an
objectifs:
- artiste-auteur . cotisations

View File

@ -25,6 +25,7 @@ questions:
unité par défaut: €/mois
situation:
dirigeant: non
entreprise . catégorie juridique: non
contrat salarié . activité partielle: non
impôt . méthode de calcul . par défaut:
# On utilise le taux neutre qui est plus rapide à calculer et qui correspond

View File

@ -29,7 +29,6 @@ const initialSimulation: Simulation = {
url: '/someurl',
hiddenNotifications: [],
situation: {},
companySituation: {},
targetUnit: '€/mois',
foldedSteps: ['somestep' as DottedName],
unfoldedStep: null,

View File

@ -1,79 +1,79 @@
// Vitest Snapshot v1
exports[`calculate aide-déclaration-indépendant > ACRE 1`] = `"[9020,50000,36345,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 1`] = `"[9020,50000,36345]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 2`] = `"[913,15000,12630,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 2`] = `"[913,15000,12630]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 3`] = `"[300,5000,4152,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 3`] = `"[300,5000,4152]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 4`] = `"[1487,10000,7511,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 4`] = `"[1487,10000,7511]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 5`] = `"[606,10000,8392,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > ACRE 5`] = `"[606,10000,8392]"`;
exports[`calculate aide-déclaration-indépendant > IJSS (indemnité sécurité sociale) 1`] = `"[11409,50000,34048,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > IJSS (indemnité sécurité sociale) 1`] = `"[11409,50000,34048]"`;
exports[`calculate aide-déclaration-indépendant > RSA 1`] = `"[82,500,279,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > RSA 1`] = `"[82,500,279]"`;
exports[`calculate aide-déclaration-indépendant > RSA 2`] = `"[1021,5000,3431,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > RSA 2`] = `"[1021,5000,3431]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 1`] = `"[14093,50000,31238,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 1`] = `"[14093,50000,31238]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 2`] = `"[13578,50000,31753,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 2`] = `"[13578,50000,31753]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 3`] = `"[11461,50000,33870,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 3`] = `"[11461,50000,33870]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 4`] = `"[14097,50000,31254,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 4`] = `"[14097,50000,31254]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 5`] = `"[11461,50000,33870,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > conjoint collaborateur 5`] = `"[11461,50000,33870]"`;
exports[`calculate aide-déclaration-indépendant > débit de tabac 1`] = `"[5652,50000,39713,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > débit de tabac 1`] = `"[5652,50000,39713]"`;
exports[`calculate aide-déclaration-indépendant > international 1`] = `
"[14610,50000,35287,0,1,1,0]
"[14610,50000,35287]
Notifications affichées : impôt . domiciliation étranger non implémentée"
`;
exports[`calculate aide-déclaration-indépendant > international 2`] = `"[11875,50000,36215,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > international 2`] = `"[11875,50000,36215]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 1`] = `"[11365,50000,33986,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 1`] = `"[11365,50000,33986]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 2`] = `"[1368,5000,3069,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 2`] = `"[1368,5000,3069]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 3`] = `"[11369,50000,33996,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 3`] = `"[11369,50000,33996]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 4`] = `"[1369,5000,3083,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 4`] = `"[1369,5000,3083]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 5`] = `"[11369,50000,33996,0,0,1,1]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 5`] = `"[11369,50000,33996]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 6`] = `"[1369,5000,3083,0,0,1,1]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 6`] = `"[1369,5000,3083]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 7`] = `"[9454,50000,35911,0,0,1,1]"`;
exports[`calculate aide-déclaration-indépendant > nature de l'activité 7`] = `"[9454,50000,35911]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 1`] = `
"[1042,500,-681,0,1,1,0]
"[1042,500,-681]
Notifications affichées : entreprise . imposition . IR . information sur le report de déficit"
`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 2`] = `
"[1042,1000,-226,0,1,1,0]
"[1042,1000,-226]
Notifications affichées : entreprise . imposition . IR . information sur le report de déficit"
`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 3`] = `"[1067,1500,203,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 3`] = `"[1067,1500,203]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 4`] = `"[1110,2000,614,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 4`] = `"[1110,2000,614]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 5`] = `"[1369,5000,3083,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 5`] = `"[1369,5000,3083]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 6`] = `"[2204,10000,6794,0,1,1,0]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 6`] = `"[2204,10000,6794]"`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 7`] = `
"[20928,100000,69895,0,1,1,0]
"[20928,100000,69895]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate aide-déclaration-indépendant > échelle de revenus 8`] = `
"[106447,1000000,802635,0,1,1,0]
"[106447,1000000,802635]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
@ -187,30 +187,15 @@ 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]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-impot-société > bénéfices 6`] = `"[525628,0]"`;
exports[`calculate simulations-impot-société > bénéfices 7`] = `
"[5295628,149646]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-impot-société > bénéfices 7`] = `"[5295628,149646]"`;
exports[`calculate simulations-impot-société > prorata temporis 1`] = `
"[260628,0]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-impot-société > prorata temporis 1`] = `"[260628,0]"`;
exports[`calculate simulations-impot-société > prorata temporis 2`] = `
"[277936,0]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-impot-société > prorata temporis 2`] = `"[277936,0]"`;
exports[`calculate simulations-impot-société > prorata temporis 3`] = `
"[272981,0]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-impot-société > prorata temporis 3`] = `"[272981,0]"`;
exports[`calculate simulations-indépendant > acre 1`] = `"[73019,23019,50000,51980,9516,40484,0,73019,1408]"`;
@ -422,12 +407,17 @@ exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > C
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > Contrats Madelin 4`] = `"[917,10998,0,10679,4,20]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > Contrats Madelin 5`] = `"[14490,173883,0,151717,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > Contrats Madelin 5`] = `
"[14490,173883,0,151717,4,47]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > Contrats Madelin 6`] = `"[917,10998,0,10679,4,20]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > Contrats Madelin 7`] = `"[917,10998,0,10679,4,20]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > JEI 1`] = `"[2829,33949,0,32329,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > activités 1`] = `"[917,10998,0,10679,4,20]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > activités 2`] = `"[917,10998,0,10679,4,0]"`;
@ -458,7 +448,10 @@ exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) >
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > échelle de rémunération 7`] = `"[2341,28096,0,26893,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > échelle de rémunération 8`] = `"[4758,57101,0,52069,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (assimilé salarié) > échelle de rémunération 8`] = `
"[4758,57101,0,52069,4,47]
Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement"
`;
exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > ACRE 1`] = `
"[0,9350,9350,1450,2,0]
@ -492,6 +485,8 @@ exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > Co
exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > Contrats Madelin 7`] = `"[0,17420,17420,2900,3,8]"`;
exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > JEI 1`] = `"[2829,33949,0,32329,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > activités 1`] = `"[0,15560,15560,6600,4,18]"`;
exports[`calculate simulations-rémunération-dirigeant (auto-entrepreneur) > activités 2`] = `"[0,15520,15520,6600,4,0]"`;
@ -550,6 +545,8 @@ exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrat
exports[`calculate simulations-rémunération-dirigeant (indépendant) > Contrats Madelin 7`] = `"[0,6868,0,10095,4,21]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > JEI 1`] = `"[2829,33949,0,32329,4,47]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 1`] = `"[0,13768,0,10095,4,21]"`;
exports[`calculate simulations-rémunération-dirigeant (indépendant) > activités 2`] = `"[0,14409,0,null,4,0]"`;
@ -638,8 +635,6 @@ exports[`calculate simulations-salarié > JEI 2`] = `
Notifications affichées : contrat salarié . rémunération . contrôle salaire élevé"
`;
exports[`calculate simulations-salarié > JEI 3`] = `"[4511,0,4000,3141,2745]"`;
exports[`calculate simulations-salarié > activité partielle 1`] = `
"[20,0,1560,1247,1247]
Notifications affichées : contrat salarié . rémunération . contrôle smic"
@ -710,12 +705,6 @@ exports[`calculate simulations-salarié > apprentissage 2`] = `
Notifications affichées : contrat salarié . rémunération . contrôle smic"
`;
exports[`calculate simulations-salarié > assimilé salarié 1`] = `"[7010,0,5000,3943,3286]"`;
exports[`calculate simulations-salarié > assimilé salarié 2`] = `"[2121,0,1500,1163,1163]"`;
exports[`calculate simulations-salarié > assimilé salarié 3`] = `"[4222,0,3000,2348,2161]"`;
exports[`calculate simulations-salarié > atmp 1`] = `"[2474,0,2000,1561,1527]"`;
exports[`calculate simulations-salarié > avantages 1`] = `"[2607,0,2000,1540,1490]"`;

View File

@ -87,3 +87,8 @@ Contrats Madelin:
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

View File

@ -255,9 +255,6 @@ JEI:
contrat salarié . statut JEI: oui
- contrat salarié . rémunération . brut de base: 20000 €/mois
contrat salarié . statut JEI: oui
- contrat salarié . rémunération . brut de base: 4000 €/mois
dirigeant . régime social: "'assimilé salarié'"
contrat salarié . statut JEI: oui
frais pro - titres restaurant:
- contrat salarié . rémunération . brut de base: 2000 €/mois

View File

@ -30,7 +30,11 @@ 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: () => {}, error: (m) => console.error(m), log: () => {} },
logger: {
warn: () => undefined,
error: (m: string) => console.error(m),
log: () => undefined,
},
})
const runSimulations = (
situationsSpecs: SituationsSpecs,
@ -56,7 +60,7 @@ const runSimulations = (
.filter(
(rule) =>
rule.rawNode['type'] === 'notification' &&
!!engine.evaluate(rule.dottedName).nodeValue
engine.evaluate(rule.dottedName).nodeValue === true
)
.map((node) => node.dottedName)

View File

@ -15827,28 +15827,30 @@ __metadata:
languageName: node
linkType: hard
"publicodes-react@portal:/home/johan/Projets/publicodes/packages/react-ui::locator=root%40workspace%3A.":
version: 0.0.0-use.local
resolution: "publicodes-react@portal:/home/johan/Projets/publicodes/packages/react-ui::locator=root%40workspace%3A."
"publicodes-react@npm:^1.0.0-beta.32":
version: 1.0.0-beta.32
resolution: "publicodes-react@npm:1.0.0-beta.32"
dependencies:
styled-components: ^5.1.0
peerDependencies:
publicodes: 1.0.0-beta.32
react: ^17.0.2
checksum: 2cdf91420982e909869cf9ddc1754943d4e5e8bef7545e4d5afdfc202eb1bbdcb33197bb4ad2978f6cfd02aad3229ec53061ff06680c9f2917638fde79b98b28
languageName: node
linkType: soft
linkType: hard
"publicodes@portal:/home/johan/Projets/publicodes/packages/core::locator=root%40workspace%3A.":
version: 0.0.0-use.local
resolution: "publicodes@portal:/home/johan/Projets/publicodes/packages/core::locator=root%40workspace%3A."
"publicodes@npm:^1.0.0-beta.32":
version: 1.0.0-beta.32
resolution: "publicodes@npm:1.0.0-beta.32"
dependencies:
moo: ^0.5.1
nearley: ^2.19.2
yaml: ^1.9.2
peerDependencies:
"@types/mocha": ^9.0.0
checksum: 674a5f1ee9f755cf8f9fd2312523ee70f3963b1c8cb9e0249919ad48269f3dbe831d4fe3e1c13400216bd21b34d2bbd5f71e571b3adc210ebdb1c2dc18ee72d6
languageName: node
linkType: soft
linkType: hard
"pump@npm:^2.0.0":
version: 2.0.1