Skip to content

Commit

Permalink
wip profession-libérale
Browse files Browse the repository at this point in the history
  • Loading branch information
JalilArfaoui committed Nov 19, 2024
1 parent 05937b4 commit 16b790e
Show file tree
Hide file tree
Showing 8 changed files with 292 additions and 216 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,14 @@ entreprise . catégorie juridique . EI:

avec:
auto-entrepreneur:
question: Êtes-vous auto-entrepreneur ?
acronyme: AE
par défaut: non
non applicable si:
par défaut: non
une de ces conditions:
- salarié = oui
- entreprise . imposition . IR . type de bénéfices = 'BA'
- toutes ces conditions:
- activité . nature . libérale . réglementée
- dirigeant . indépendant . PL . métier . rattaché CIPAV = non
références:
S'informer sur le statut: https://www.autoentrepreneur.urssaf.fr/portail/accueil/sinformer-sur-le-statut/lessentiel-du-statut.html
Les étapes de la création d'une auto-entreprise: https://www.autoentrepreneur.urssaf.fr/portail/accueil/creer-mon-auto-entreprise.html
Expand Down
2 changes: 1 addition & 1 deletion site/test/modele-social/auto-entrepreneur.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ describe('Auto-entrepreneur', function () {

expect(engine).toEvaluate(
'dirigeant . auto-entrepreneur . revenu net',
16125
17440
)
})
})
Expand Down
18 changes: 17 additions & 1 deletion site/test/modele-social/helpers/logValue.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,23 @@ import Engine from 'publicodes'
export const logValue = (e: Engine, rule: DottedName) => {
const result = e.evaluate(rule)
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
const unit = `${result.unit?.numerators}/${result.unit?.denominators}`

const unit = result.unit?.denominators
? `${result.unit?.numerators}/-${result.unit?.denominators}`

Check failure on line 9 in site/test/modele-social/helpers/logValue.ts

View workflow job for this annotation

GitHub Actions / lint

Invalid type "string[]" of template literal expression

Check failure on line 9 in site/test/modele-social/helpers/logValue.ts

View workflow job for this annotation

GitHub Actions / lint

Invalid type "string[]" of template literal expression
: result.unit?.numerators
? `${result.unit?.numerators}`

Check failure on line 11 in site/test/modele-social/helpers/logValue.ts

View workflow job for this annotation

GitHub Actions / lint

Invalid type "string[]" of template literal expression
: ''

// eslint-disable-next-line no-console,@typescript-eslint/restrict-template-expressions
console.log(`${rule} = ${result.nodeValue} ${unit}`)
}

export const logApplicability = (e: Engine, rule: DottedName) => {
const result = e.evaluate({ 'est applicable': rule })
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions

// eslint-disable-next-line no-console,@typescript-eslint/restrict-template-expressions
console.log(
`${rule} ${result.nodeValue ? 'est applicable' : 'n’est pas applicable'}`
)
}
19 changes: 19 additions & 0 deletions site/test/modele-social/matchers/toEvaluate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,25 @@ const toEvaluate = function <T extends PublicodesTypes>(
}
}

const toBeApplicable = function (engine: Engine, rule: DottedName) {
const pass = engine.evaluate({
'est applicable': rule,
}).nodeValue

if (pass) {
return {
message: () => `La règle ${rule} ne devrait pas être applicable`,
pass: true,
}
} else {
return {
message: () => `La règle ${rule} devrait être applicable`,
pass: false,
}
}
}

expect.extend({
toEvaluate,
toBeApplicable,
})
39 changes: 39 additions & 0 deletions site/test/modele-social/profession-libérale.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import rules, { DottedName } from 'modele-social'
import Engine from 'publicodes'
import { beforeEach, describe, expect, it } from 'vitest'

const situationProfessionLibérale = {
salarié: 'non',
'entreprise . activité . nature': "'libérale'",
'entreprise . catégorie juridique': "'EI'",
'entreprise . imposition': "'IR'",
'entreprise . catégorie juridique . EI . auto-entrepreneur': 'non',
}

describe('Une profession libérale', () => {
let engine: Engine<DottedName>
beforeEach(() => {
engine = new Engine(rules)
})

const situationCIPAV = {
...situationProfessionLibérale,
'entreprise . activité . nature . libérale . réglementée': 'oui',
}

describe('en CIPAV ACRE', () => {
const situationCIPAVACRE = {
...situationCIPAV,
'dirigeant . rémunération . net': '5000 €/an',
'dirigeant . exonérations . ACRE': 'oui',
'entreprise . date de création': '11/11/2023',
}

it('paie une retraite de base', () => {
const e = engine.setSituation(situationCIPAVACRE)

expect(e).toBeApplicable('dirigeant . indépendant . PL')
expect(e).toEvaluate('protection sociale . retraite . base', 38)
})
})
})
Loading

0 comments on commit 16b790e

Please sign in to comment.