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 13, 2024
1 parent 05937b4 commit 7e58ed9
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
dirigeant . indépendant . PL:
titre: Profession libérale
applicable si: entreprise . activité . nature = 'libérale'
rend non applicable: entreprise . activités . revenus mixtes
formule: oui
dirigeant . indépendant . PL: oui

dirigeant . indépendant . PL . métier:
applicable si: entreprise . activité . nature . libérale . réglementée
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'}`
)
}
68 changes: 68 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,68 @@
import rules, { DottedName } from 'modele-social'
import Engine from 'publicodes'
import { beforeEach, describe, expect, it } from 'vitest'

import { logApplicability, logValue } from './helpers/logValue'

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)

logValue(e, 'dirigeant . indépendant')
logValue(
e,
'dirigeant . indépendant . cotisations et contributions . retraite de base'
)
logValue(
e,
'dirigeant . indépendant . cotisations et contributions . retraite de base . taux'
)
logValue(e, 'protection sociale . retraite . base . cotisée')

logValue(
e,
'protection sociale . retraite . base . cotisée . indépendant'
)
logValue(e, 'entreprise . activité . nature')
logValue(e, 'entreprise . activité . nature . libérale . réglementée')

logApplicability(e, 'dirigeant . indépendant')
logApplicability(e, 'dirigeant . indépendant . PL')

logValue(e, 'dirigeant . indépendant . PL . métier')
logValue(e, 'dirigeant . indépendant')
logValue(e, 'dirigeant . indépendant . PL')
logValue(e, 'dirigeant . indépendant . PL . régime général')
logValue(e, 'dirigeant . indépendant . PL . CNAVPL')

expect(e).toEvaluate('protection sociale . retraite . base . CNAVPL', 38)
expect(e).toEvaluate('protection sociale . retraite . base', 38)
})
})
})

0 comments on commit 7e58ed9

Please sign in to comment.