# Artillery.io config, run with
# npx artillery run artilleryio-config.yaml

scenarios:
  - name: 'Evaluate'
    flow:
      - post:
          url: '/evaluate'
          headers: { 'content-type': 'application/json' }
          body: |
            {
              "expressions": [
                "salarié . coût total employeur",
                "salarié . rémunération . net . à payer avant impôt",
                "salarié . rémunération . net . payé après impôt"
              ],
              "situation": {
                "dirigeant": "non",
                "entreprise . catégorie juridique": "''",
                "entreprise . imposition": "non",
                "salarié . activité partielle": "non",
                "impôt . méthode de calcul . par défaut": {
                  "variations": [
                    {
                      "si": "salarié . contrat . salaire brut <= 6000 €/mois",
                      "alors": "'taux neutre'"
                    },
                    { "sinon": "'barème standard'" }
                  ]
                },
                "salarié . contrat . salaire brut": {
                  "valeur": {{$randomNumber(1000,10000)}},
                  "unité": "€/mois"
                },
                "salarié . contrat": "'CDD'",
                "salarié . contrat . CDD . durée": {
                  "explanation": {
                    "type": "number",
                    "fullPrecision": true,
                    "isNullable": false,
                    "missingVariables": {},
                    "nodeValue": 6,
                    "nodeKind": "constant",
                    "rawNode": { "constant": { "type": "number", "nodeValue": 6 } }
                  },
                  "unit": { "numerators": ["mois"], "denominators": [] },
                  "nodeKind": "unité",
                  "rawNode": "6 mois"
                },
                "salarié . contrat . CDD . congés pris": {
                  "explanation": {
                    "type": "number",
                    "fullPrecision": true,
                    "isNullable": false,
                    "missingVariables": {},
                    "nodeValue": 0,
                    "nodeKind": "constant",
                    "rawNode": { "constant": { "type": "number", "nodeValue": 0 } }
                  },
                  "unit": { "numerators": ["jour ouvré"], "denominators": [] },
                  "nodeKind": "unité",
                  "rawNode": "0 jours ouvrés"
                }
              }
            }

config:
  http:
    timeout: 30
  target: https://mon-entreprise.urssaf.fr/api/v1
  phases:
    - duration: 1
      arrivalRate: 1
      name: Test
    - duration: 600
      arrivalRate: 5
      name: Warm up
    - duration: 600
      arrivalRate: 15
      name: Ramp up load
    - duration: 600
      arrivalRate: 30
      name: Sustained load