Merge pull request #4 from MatthieuTD/codex/add-e2e-tests-for-type-creation-and-editing
Add e2e coverage for machine creation flow and CI
This commit is contained in:
24
.github/workflows/ci.yml
vendored
Normal file
24
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- develop
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: 'npm'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
- name: Run unit tests
|
||||||
|
run: npm test -- --runInBand
|
||||||
|
- name: Run e2e tests
|
||||||
|
run: npm run test:e2e -- --runInBand
|
||||||
57
README.md
57
README.md
@@ -81,6 +81,63 @@ Site → Machine → Composant → Sous-composant → ...
|
|||||||
- `PATCH /api/machines/:id` - Modifier une machine
|
- `PATCH /api/machines/:id` - Modifier une machine
|
||||||
- `DELETE /api/machines/:id` - Supprimer une machine
|
- `DELETE /api/machines/:id` - Supprimer une machine
|
||||||
|
|
||||||
|
#### Payloads `componentSelections` / `pieceSelections`
|
||||||
|
|
||||||
|
Lors de la création d'une machine à partir d'un type, il est possible de fournir des sélections de composants et de pièces qui viendront remplir les exigences définies dans le type de machine.
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"name": "Presse HP-2000",
|
||||||
|
"siteId": "<identifiant du site>",
|
||||||
|
"typeMachineId": "<identifiant du type de machine>",
|
||||||
|
"componentSelections": [
|
||||||
|
{
|
||||||
|
"requirementId": "<id d'une TypeMachineComponentRequirement>",
|
||||||
|
"componentModelId": "<optionnel : modèle existant>",
|
||||||
|
"definition": {
|
||||||
|
"name": "Bloc moteur série X",
|
||||||
|
"reference": "COMP-001",
|
||||||
|
"emplacement": "Module A",
|
||||||
|
"prix": "12000.00",
|
||||||
|
"customFields": [
|
||||||
|
{
|
||||||
|
"name": "Puissance nominale",
|
||||||
|
"type": "text",
|
||||||
|
"required": true,
|
||||||
|
"defaultValue": "7 kW"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pieceSelections": [
|
||||||
|
{
|
||||||
|
"requirementId": "<id d'une TypeMachinePieceRequirement>",
|
||||||
|
"pieceModelId": "<optionnel : modèle existant>",
|
||||||
|
"definition": {
|
||||||
|
"name": "Kit maintenance niveau 1",
|
||||||
|
"reference": "KIT-001",
|
||||||
|
"customFields": [
|
||||||
|
{
|
||||||
|
"name": "Référence fournisseur",
|
||||||
|
"type": "text",
|
||||||
|
"defaultValue": "STD-002"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Principales règles de validation :
|
||||||
|
|
||||||
|
- `requirementId` doit correspondre à une exigence déclarée dans le type de machine (composant ou pièce).
|
||||||
|
- Le nombre de sélections pour une exigence doit respecter `minCount` et `maxCount` (si défini). Les exigences marquées `required` imposent au moins une sélection.
|
||||||
|
- Si `allowNewModels` vaut `false`, il est obligatoire de fournir un `componentModelId`/`pieceModelId` existant. Sinon un `definition` sans modèle peut être utilisé pour créer un nouvel élément.
|
||||||
|
- Les modèles sélectionnés doivent appartenir au type attendu (`typeComposantId` ou `typePieceId`) sous peine d'échec de la création.
|
||||||
|
- Les champs personnalisés du `definition.customFields` permettent de surcharger la valeur par défaut définie au niveau du type; la valeur est automatiquement injectée dans les `customFieldValues` de la machine, du composant ou de la pièce créée.
|
||||||
|
|
||||||
### Composants
|
### Composants
|
||||||
- `GET /api/composants` - Liste tous les composants
|
- `GET /api/composants` - Liste tous les composants
|
||||||
- `GET /api/composants/:id` - Détails d'un composant
|
- `GET /api/composants/:id` - Détails d'un composant
|
||||||
|
|||||||
1083
test/app.e2e-spec.ts
1083
test/app.e2e-spec.ts
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user