> For the complete documentation index, see [llms.txt](https://docs.workflowgen.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.workflowgen.com/cli-fr/fichier-json-de-test.md).

# Fichier JSON de test

## **Collection de tests**

### Paramètres

| **Paramètre**    | **Type**                                                | **Description**                                                                                                        |
| ---------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `processName`    | Chaîne                                                  | Nom du processus dont vous voulez effectuer un test                                                                    |
| `processVersion` | Int                                                     | Version du processus dont vous voulez effectuer un test                                                                |
| `tests`          | Tableau de [Test](/cli-fr/fichier-json-de-test.md#test) | <p>Liste de tests qui sera exécutée</p><p></p><p>Vous pouvez définir un ou plusieurs tests dans ce tableau</p>         |
| `deleteRequest`  | Booléen                                                 | Indique si vous souhaitez effectuer la suppression des demandes qui seront lancées après l’exécution de tous les tests |

### Exemple

```json
{
    "processName": "TEST_PROCESS",
    "processVersion": 1,
    "tests": [...],
    "deleteRequest": false
}
```

## Test

### Paramètres

| **Paramètre**       | **Type**                                                                | **Description**                                                                                                                                          |
| ------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `describe`          | Chaîne                                                                  | Description du test                                                                                                                                      |
| `requestParameters` | Tableau de [Parameter](/cli-fr/fichier-json-de-test.md#parameter)       | <p>Liste des paramètres qui sera communiquée au lancement de la demande</p><p></p><p>Vous pouvez définir un ou plusieurs paramètres dans ce tableau.</p> |
| `actions`           | Tableau d'[Action](/cli-fr/fichier-json-de-test.md#action)              | <p>Liste d’actions qui sera parcourue par le test</p><p></p><p>Vous pouvez définir une ou plusieurs <code>actions</code> dans ce tableau.</p>            |
| `assertions`        | [Request assertion](/cli-fr/fichier-json-de-test.md#request-assertions) | Vérifications à effectuer sur la demande créée lors du test                                                                                              |

### Exemple

```json
"tests": [
    {
        "describe": "First test",
        "requestParameters": [...],
        "actions": [...],
        "assertions": {...}
    },
    {
        "describe": "First test",
        "requestParameters": [...],
        "actions": [...],
        "assertions": {...}
    }
]
            
```

## Action

{% hint style="info" %}
Les actions de test seront exécutées dans l'ordre que vous définissez.
{% endhint %}

### Paramètres

| **Paramètre**    | **Type**                                                               | **Description**                                                                                                                                                      |
| ---------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`           | Chaîne                                                                 | Identifiant de l'action                                                                                                                                              |
| `operation`      | Enum                                                                   | <p>Type de l’action qui sera exécutée</p><p></p><p>Valeurs possibles : <code>COMPLETE</code>, <code>CHECK</code>, <code>SUBPROCESS</code> ou<code>CANCEL</code>.</p> |
| `timeout`        | Int                                                                    | Délai maximal pour l’exécution de l’action                                                                                                                           |
| `parameters`     | Tableau de [Parameter](/cli-fr/fichier-json-de-test.md#parameter)      | <p>Liste des paramètres qui sera communiquée au lancement de la demande</p><p></p><p>Vous pouvez définir un ou plusieurs paramètres dans ce tableau.</p>             |
| `subRequestFile` | Chaîne                                                                 | Chemin vers le fichier JSON de test de la sous requête.                                                                                                              |
| `subRequest`     | [Sub request](/cli-fr/fichier-json-de-test.md#sub-request)             | Éléments de la sous requête                                                                                                                                          |
| `assertions`     | [Action assertions](/cli-fr/fichier-json-de-test.md#action-assertions) | Vérifications à effectuer sur l'action                                                                                                                               |
| `exception`      | [Action exception](/cli-fr/fichier-json-de-test.md#action-exception)   | Lancement d'une exception lors de l'exécution d'une action                                                                                                           |

### Exemple

```json
"actions": [
    {
        "name": "INITIATES",
        "operation": "COMPLETE",
        "parameters": [...],
        "assertions": {...}
    },
    {
        "name": "COPY_DATA",
        "operation": "CHECK",
        "timeout": 10,
        "assertions": {...}
    },
    {
        "name": "SUBTEST_PROCESS",
        "operation": "SUBPROCESS",
        "subRequestFile": "./Resource/Process/Test/subprocessjson.json",
        "assertions": {...}
    }
]
```

{% hint style="info" %}
Le contenu du fichier de sous requête possède seulement les actions qui seront effectuées.

Un exemple du contenu est fourni dans la section [Exemple d'usage](/cli-fr/fichier-json-de-test.md#exemple-processus-enfant).&#x20;
{% endhint %}

## Sub request

### Paramètres

| **Paramètre** | **Type**                                                                 | **Description**                                                                                                                  |
| ------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `actions`     | [Action](/cli-fr/fichier-json-de-test.md#action)                         | <p>Liste d’actions qui sera parcourue par le test</p><p></p><p>Vous pouvez définir une ou plusieurs actions dans ce tableau.</p> |
| `assertions`  | [Request assertions](/cli-fr/fichier-json-de-test.md#request-assertions) | Vérifications à effectuer sur la sous-demande créée lors du test                                                                 |

### Exemple

```json
"subRequest": {
    "actions": [...]
},
"assertions": {...}
```

## Parameter

### Paramètres

| **Paramètre**   | **Type**                                                 | **Description**                        |
| --------------- | -------------------------------------------------------- | -------------------------------------- |
| `name`          | Chaîne                                                   | Nom de la donnée                       |
| `numericValue`  | Flottant                                                 | Valeur numérique de la donnée          |
| `textValue`     | Chaîne                                                   | Valeur texte de la donnée              |
| `dateTimeValue` | Chaîne                                                   | Valeur date/heure de la donnée         |
| `fileValue`     | [File Value](/cli-fr/fichier-json-de-test.md#file-value) | Valeur du type de fichier de la donnée |

### Exemples

#### 📌 Exemple pour les paramètres de la requête de Test

```json
"requestParameters": [
    {
        "name": "IN_TEXT",
        "textValue": "Text"
    },
    {
        "name": "IN_NUMERIC",
        "numericValue": 11.1
    },
    {
        "name": "IN_DATETIME",
        "dateTimeValue": "1977-04-22T06:00:00Z"
    },
    {
        "name": "IN_FILE",
        "fileValue": {...}
    }
]
```

#### 📌 Exemple pour les paramètres de l'action de Test

```json
"parameters": [
    {
        "name": "IN_TEXT",
        "textValue": "Text"
    },
    {
        "name": "IN_NUMERIC",
        "numericValue": 11.1
    },
    {
        "name": "IN_DATETIME",
        "dateTimeValue": "1977-04-22T06:00:00Z"
    },
    {
        "name": "IN_FILE",
        "fileValue": {...}
    }
]
```

## Action assertions

### Paramètres

| **Paramètre** | **Type**                                     | **Description**                                                                                                                                                                                                         |
| ------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status`      | Enum                                         | <p>Statut de complétion attendu de l'action qui sera exécutée</p><p></p><p>Valeurs possibles : <code>OPEN</code> ou <code>CLOSED</code></p>                                                                             |
| `substatus`   | Enum                                         | <p>Sous statut de complétion attendu de l'action qui sera exécutée</p><p></p><p>Valeurs possibles : <code>COMPLETED</code>, <code>ABORTED</code>, <code>RUNNING</code>, ou <code>NOT\_RUNNING\_NOT\_STARTED</code>.</p> |
| `data`        | [Data](/cli-fr/fichier-json-de-test.md#data) | Liste de données à verifier pour l’action testée                                                                                                                                                                        |

{% hint style="info" %}
Le nœud `assertions` vérifie si les données retournées par l’action sont exactement les mêmes que celles spécifiées dans ses paramètres. Si elles ne correspondent pas, le test sera évalué comme étant échoué.
{% endhint %}

### Exemple

```json
"assertions": {
    "status": "CLOSED",
    "subStatus": "COMPLETED",
    "data": [...]
}
```

## Request assertions

### Paramètres

| **Paramètre**          | **Type**                                     | **Description**                                                                                                                                                                                                    |
| ---------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `completedActionCount` | Int                                          | Nombre d'actions complétées attendues                                                                                                                                                                              |
| `status`               | Enum                                         | <p>Statut de complétion attendu de la demande créée lors du test</p><p></p><p>Types possibles : <code>OPEN</code> ou <code>CLOSED</code>.</p>                                                                      |
| `substatus`            | Enum                                         | <p>Statut de complétion attendu de la demande créée lors du test</p><p></p><p>Types possibles : <code>COMPLETED</code>, <code>ABORTED</code>, <code>RUNNING</code>  ou <code>NOT\_RUNNING\_NOT\_STARTED</code></p> |
| `data`                 | [Data](/cli-fr/fichier-json-de-test.md#data) | Liste des données à vérifier pour la demande créée lors du test                                                                                                                                                    |

{% hint style="info" %}
Le nœud `assertions` vérifie si les données retournées par la demande créée lors du test sont exactement les mêmes que celles spécifiées dans ses paramètres. Si elles ne correspondent pas, le test sera évalué comme étant échoué.
{% endhint %}

### Exemple

```json
"assertions": {
    "completedActionCount": 3,
    "requestStatus": "CLOSED",
    "requestSubStatus": "ABORTED",
    "requestData": [...]
}
```

## Data

### Paramètres

| **Paramètre**   | **Type** | **Description**                |
| --------------- | -------- | ------------------------------ |
| `name`          | Chaîne   | Nom de la donnée               |
| `numericValue`  | Flottant | Valeur numérique de la donnée  |
| `textValue`     | Chaîne   | Valeur texte de la donnée      |
| `dateTimeValue` | Chaîne   | Valeur date/heure de la donnée |

### Exemple

```json
"requestData": [
    {
        "name": "REQUEST_SUBJECT",
        "textValue": "OK"
    },
    {
        "name": "COPYDATA_VALUE",
        "textValue": "OK"
    }
]
```

## File value

### Paramètres

| **Paramètre** | **Type** | **Description**                                 |
| ------------- | -------- | ----------------------------------------------- |
| `name`        | Chaîne   | Nom du fichier incluant l'extension de celui-ci |
| `description` | Chaîne   | Description du fichier                          |
| `content`     | Chaîne   | Contenu du fichier encodé en base64             |
| `contentType` | Chaîne   | Type de contenu du fichier                      |
| `size`        | Int      | Taille du fichier en Mo                         |

### Exemple

```json
"fileValue": {
    "content": "R3JhcGhRTCBGaWxl",
    "contentType": "plain/text",
    "description": "desc",
    "name": "test.txt",
    "size": 12
}
```

## Action exception

### Paramètres

| **Paramètre** | **Type** | **Description**                                                                                                 |
| ------------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| `type`        | Enum     | <p>Type de l'exception à envoyer</p><p></p><p>Valeurs possibles : <code>ERROR</code> ou <code>CANCEL</code></p> |
| `message`     | Chaîne   | Message d'erreur à envoyer à l'action                                                                           |
| `source`      | Chaîne   | Source de l'exception à envoyer à l'action                                                                      |

### Exemple

```json
"exception": {
    "type": "ERROR",
    "message": "Message",
    "source": "Source"
}
```

## **Exemple d'usage**

La commande `process test` est basée sur un fichier `json`. Ce document de définition vous permet de définir les flux qui seront exécutés pour vos tests et les résultats attendus. Celui-ci est constitué de 10 différents aspects.

Voici le workflow que nous allons utiliser pour les explications :

![](/files/-Mbc2wWn7VxVnLae24iQ)

### Fichier de test

Ceci est le contenu du fichier de test du process parent :

```json
{
    "processName": "TEST_PROCESS",
    "processVersion": 1,
    "tests": [
        {
            "describe": "First test",
            "requestParameters": [],
            "actions": [
                {
                    "name": "INITIATES",
                    "operation": "COMPLETE",
                    "parameters": [
                        {
                            "name": "REQUEST_SUBJECT",
                            "textValue": "OK"
                        }
                    ],
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED"
                    }
                },
                {
                    "name": "COPY_DATA",
                    "operation": "CHECK",
                    "timeout": 10,
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED",
                        "data": [
                            {
                                "name": "COPYDATA_VALUE",
                                "textValue": "OK"
                            }
                        ]
                    }
                },
                {
                    "name": "SUBTEST_PROCESS",
                    "operation": "SUBPROCESS",
                    "subRequestFile": "./Resource/Process/Test/subprocessjson.json",
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED"
                    }
                }
            ],
            "assertions": {
                "completedActionCount": 3,
                "requestStatus": "CLOSED",
                "requestSubStatus": "COMPLETED",
                "requestData": [
                    {
                        "name": "REQUEST_SUBJECT",
                        "textValue": "OK"
                    },
                    {
                        "name": "COPYDATA_VALUE",
                        "textValue": "OK"
                    }
                ]
            }
        },
        {
            "describe": "Second test",
            "requestParameters": [],
            "actions": [
                {
                    "name": "INITIATES",
                    "operation": "COMPLETE",
                    "parameters": [
                        {
                            "name": "REQUEST_SUBJECT",
                            "textValue": "OK"
                        }
                    ]
                },
                {
                    "name": "COPY_DATA",
                    "operation": "CHECK",
                    "timeout": 10,
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED",
                        "data": [
                            {
                                "name": "COPYDATA_VALUE",
                                "textValue": "OK"
                            }
                        ]
                    }
                },
                {
                    "name": "SUBTEST_PROCESS",
                    "operation": "SUBPROCESS",
                    "subRequest": {
                        "actions": [
                            {
                                "name": "INITIATES",
                                "operation": "COMPLETE",
                                "parameters": [
                                    {
                                        "name": "REQUEST_SUBJECT",
                                        "textValue": "OK"
                                    }
                                ]
                            },
                            {
                                "name": "VALIDATES",
                                "operation": "COMPLETE",
                                "parameters": [
                                    {
                                        "name": "APPROVAL_DECISION",
                                        "textValue": "MORE_INFO"
                                    }
                                ]
                            },
                            {
                                "name": "UPDATES",
                                "operation": "COMPLETE",
                                "timeout": 5,
                                "parameters": [
                                    {
                                        "name": "REQUEST_SUBJECT",
                                        "textValue": "OK"
                                    }
                                ]
                            },
                            {
                                "name": "VALIDATES",
                                "operation": "COMPLETE",
                                "parameters": [
                                    {
                                        "name": "APPROVAL_DECISION",
                                        "textValue": "YES"
                                    }
                                ]
                            }
                        ]
                    },
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED"
                    }
                }
            ],
            "assertions": {
                "completedActionCount": 3,
                "requestStatus": "CLOSED",
                "requestSubStatus": "COMPLETED",
                "requestData": [
                    {
                        "name": "REQUEST_SUBJECT",
                        "textValue": "OK"
                    },
                    {
                        "name": "COPYDATA_VALUE",
                        "textValue": "OK"
                    }
                ]
            }
        },
        {
            "describe": "Third test",
            "requestParameters": [],
            "actions": [
                {
                    "name": "INITIATES",
                    "operation": "COMPLETE",
                    "parameters": [
                        {
                            "name": "REQUEST_SUBJECT",
                            "textValue": "OK"
                        }
                    ]
                },
                {
                    "name": "COPY_DATA",
                    "operation": "CHECK",
                    "timeout": 10,
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED",
                        "data": [
                            {
                                "name": "COPYDATA_VALUE",
                                "textValue": "OK"
                            }
                        ]
                    }
                },
                {
                    "name": "SUBTEST_PROCESS",
                    "operation": "SUBPROCESS",
                    "subRequest": {
                        "actions": [
                            {
                                "name": "INITIATES",
                                "operation": "COMPLETE",
                                "parameters": [
                                    {
                                        "name": "REQUEST_SUBJECT",
                                        "textValue": "OK"
                                    }
                                ]
                            },
                            {
                                "name": "VALIDATES",
                                "operation": "CANCEL",
                                "exception": {
                                    "type": "ERROR",
                                    "message": "Message",
                                    "source": "Source"
                                },
                                "assertions": {
                                    "status": "CLOSED",
                                    "subStatus": "ABORTED"
                                }
                            }
                        ]
                    },
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "ABORTED"
                    }
                }
            ],
            "assertions": {
                "completedActionCount": 3,
                "requestStatus": "CLOSED",
                "requestSubStatus": "ABORTED",
                "requestData": [
                    {
                        "name": "REQUEST_SUBJECT",
                        "textValue": "OK"
                    },
                    {
                        "name": "COPYDATA_VALUE",
                        "textValue": "OK"
                    }
                ]
            }
        },
        {
            "describe": "Fourth test",
            "requestParameters": [],
            "actions": [
                {
                    "name": "INITIATES",
                    "operation": "COMPLETE",
                    "parameters": [
                        {
                            "name": "REQUEST_SUBJECT",
                            "textValue": "OK"
                        }
                    ]
                },
                {
                    "name": "COPY_DATA",
                    "operation": "CHECK",
                    "timeout": 10,
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "COMPLETED",
                        "data": [
                            {
                                "name": "COPYDATA_VALUE",
                                "textValue": "OK"
                            }
                        ]
                    }
                },
                {
                    "name": "SUBTEST_PROCESS",
                    "operation": "SUBPROCESS",
                    "subRequest": {
                        "actions": [
                            {
                                "name": "INITIATES",
                                "operation": "COMPLETE",
                                "parameters": [
                                    {
                                        "name": "REQUEST_SUBJECT",
                                        "textValue": "OK"
                                    }
                                ]
                            },
                            {
                                "name": "VALIDATES",
                                "operation": "CANCEL",
                                "assertions": {
                                    "status": "CLOSED",
                                    "subStatus": "ABORTED"
                                }
                            }
                        ]
                    },
                    "assertions": {
                        "status": "CLOSED",
                        "subStatus": "ABORTED"
                    }
                }
            ],
            "assertions": {
                "completedActionCount": 3,
                "requestStatus": "CLOSED",
                "requestSubStatus": "ABORTED",
                "requestData": [
                    {
                        "name": "REQUEST_SUBJECT",
                        "textValue": "OK"
                    },
                    {
                        "name": "COPYDATA_VALUE",
                        "textValue": "OK"
                    }
                ]
            }
        }
    ],
    "deleteRequest": false
}
```

### subRequestFile

Ceci est le contenu du fichier de test `subprocessjson.json`,  utilisé dans le premier test pour l'action `SUBTEST_PROCESS` :

```json
{
    "actions": [
        {
            "name": "INITIATES",
            "operation": "COMPLETE",
            "parameters": [
                {
                    "name": "REQUEST_SUBJECT",
                    "textValue": "OK"
                }
            ]
        },
        {
            "name": "VALIDATES",
            "operation": "COMPLETE",
            "parameters": [
                {
                    "name": "APPROVAL_DECISION",
                    "textValue": "YES"
                }
            ]
        }
    ]
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workflowgen.com/cli-fr/fichier-json-de-test.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
