From c64d136fe9c0c87be3f8ce6175719808675fea1e Mon Sep 17 00:00:00 2001 From: Benjamin Levesque <14175665+benjlevesque@users.noreply.github.com> Date: Wed, 18 Sep 2024 17:48:28 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Annuler=20t=C3=A2che=20raccordem?= =?UTF-8?q?ent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bootstrap/src/setupT\303\242che.ts" | 1 + .../raccordement/supprimer-raccordement.ts | 5 +++ .../saga/t\303\242cheRaccordement.saga.ts" | 19 +++++++++++- .../stepDefinitions/raccordement.given.ts | 31 ++++++++++++++----- .../supprimerRaccordement.feature | 12 +++++-- .../src/t\303\242che/t\303\242che.world.ts" | 5 ++- 6 files changed, 61 insertions(+), 12 deletions(-) diff --git "a/packages/applications/bootstrap/src/setupT\303\242che.ts" "b/packages/applications/bootstrap/src/setupT\303\242che.ts" index 59d49beb5d..906f258ffc 100644 --- "a/packages/applications/bootstrap/src/setupT\303\242che.ts" +++ "b/packages/applications/bootstrap/src/setupT\303\242che.ts" @@ -92,6 +92,7 @@ const registerTâcheRaccordementSaga = async () => { 'RéférenceDossierRacordementModifiée-V1', 'GestionnaireRéseauRaccordementModifié-V1', 'GestionnaireRéseauInconnuAttribué-V1', + 'RaccordementSupprimé-V1', ], eventHandler: async (event) => { await mediator.publish({ diff --git a/packages/applications/scheduled-tasks/src/raccordement/supprimer-raccordement.ts b/packages/applications/scheduled-tasks/src/raccordement/supprimer-raccordement.ts index d32c0b30e2..48e52062a4 100644 --- a/packages/applications/scheduled-tasks/src/raccordement/supprimer-raccordement.ts +++ b/packages/applications/scheduled-tasks/src/raccordement/supprimer-raccordement.ts @@ -87,4 +87,9 @@ registerRéseauQueries({ console.log(`Projet sans raccordement existant : ${projet}`), ); projetsEnErreurs.forEach((projet) => console.table(projet)); + + if (projetsEnErreurs.length > 0) { + process.exit(1); + } + process.exit(0); })(); diff --git "a/packages/domain/t\303\242che/src/saga/t\303\242cheRaccordement.saga.ts" "b/packages/domain/t\303\242che/src/saga/t\303\242cheRaccordement.saga.ts" index 221598eadf..d44d460fdb 100644 --- "a/packages/domain/t\303\242che/src/saga/t\303\242cheRaccordement.saga.ts" +++ "b/packages/domain/t\303\242che/src/saga/t\303\242cheRaccordement.saga.ts" @@ -10,7 +10,8 @@ import * as Tâche from '../typeTâche.valueType'; export type SubscriptionEvent = | Raccordement.RéférenceDossierRacordementModifiéeEvent | Raccordement.GestionnaireRéseauRaccordementModifiéEvent - | Raccordement.GestionnaireRéseauInconnuAttribuéEvent; + | Raccordement.GestionnaireRéseauInconnuAttribuéEvent + | Raccordement.RaccordementSuppriméEvent; export type Execute = Message<'System.Saga.TâcheRaccordement', SubscriptionEvent>; @@ -47,6 +48,22 @@ export const register = () => { }, }); break; + case 'RaccordementSupprimé-V1': + await mediator.send({ + type: 'System.Tâche.Command.AcheverTâche', + data: { + identifiantProjet: IdentifiantProjet.convertirEnValueType(identifiantProjet), + typeTâche: Tâche.raccordementRéférenceNonTransmise, + }, + }); + await mediator.send({ + type: 'System.Tâche.Command.AcheverTâche', + data: { + identifiantProjet: IdentifiantProjet.convertirEnValueType(identifiantProjet), + typeTâche: Tâche.raccordementGestionnaireRéseauInconnuAttribué, + }, + }); + break; } }; diff --git a/packages/specifications/src/raccordement/stepDefinitions/raccordement.given.ts b/packages/specifications/src/raccordement/stepDefinitions/raccordement.given.ts index a760e84bbf..b8cf4d378a 100644 --- a/packages/specifications/src/raccordement/stepDefinitions/raccordement.given.ts +++ b/packages/specifications/src/raccordement/stepDefinitions/raccordement.given.ts @@ -135,18 +135,17 @@ EtantDonné( raisonSocialeGestionnaireRéseau: string, nomProjet: string, ) { - const { identifiantProjet } = this.lauréatWorld.rechercherLauréatFixture(nomProjet); const { codeEIC } = this.gestionnaireRéseauWorld.rechercherGestionnaireRéseauFixture( raisonSocialeGestionnaireRéseau, ); + await attribuerGestionnaireRéseau.call(this, nomProjet, codeEIC); + }, +); - await mediator.send({ - type: 'Réseau.Raccordement.UseCase.AttribuerGestionnaireRéseau', - data: { - identifiantProjetValue: identifiantProjet.formatter(), - identifiantGestionnaireRéseauValue: codeEIC, - }, - }); +EtantDonné( + 'le gestionnaire de réseau inconnu attribué au raccordement du projet lauréat {string}', + async function (this: PotentielWorld, nomProjet: string) { + await attribuerGestionnaireRéseau.call(this, nomProjet, 'inconnu'); }, ); @@ -181,3 +180,19 @@ EtantDonné( }); }, ); + +async function attribuerGestionnaireRéseau( + this: PotentielWorld, + nomProjet: string, + codeEIC: string, +) { + const { identifiantProjet } = this.lauréatWorld.rechercherLauréatFixture(nomProjet); + + await mediator.send({ + type: 'Réseau.Raccordement.UseCase.AttribuerGestionnaireRéseau', + data: { + identifiantProjetValue: identifiantProjet.formatter(), + identifiantGestionnaireRéseauValue: codeEIC, + }, + }); +} diff --git a/packages/specifications/src/raccordement/supprimerRaccordement.feature b/packages/specifications/src/raccordement/supprimerRaccordement.feature index cc6fba9375..aecba0b748 100644 --- a/packages/specifications/src/raccordement/supprimerRaccordement.feature +++ b/packages/specifications/src/raccordement/supprimerRaccordement.feature @@ -1,11 +1,13 @@ # language: fr Fonctionnalité: Supprimer le raccordement d'un projet - Scénario: Le système supprime le raccordement d'un projet si celui-ci a un abandon accordé + Contexte: Etant donné le projet lauréat "Du boulodrome de Marseille" Et le porteur "Barbara Gordon" ayant accés au projet lauréat "Du boulodrome de Marseille" Et le DGEC validateur "Bruce Wayne" - Et un gestionnaire de réseau + + Scénario: Le système supprime le raccordement d'un projet si celui-ci a un abandon accordé + Etant donné un gestionnaire de réseau | Code EIC | 17X0000009352859 | | Raison sociale | Arc Energies Maurienne | Et le gestionnaire de réseau "Arc Energies Maurienne" attribué au raccordement du projet lauréat "Du boulodrome de Marseille" @@ -22,3 +24,9 @@ Fonctionnalité: Supprimer le raccordement d'un projet Et une demande d'abandon en cours pour le projet lauréat Quand le DGEC validateur accorde l'abandon pour le projet lauréat Alors le dossier ayant comme référence "OUE-RP-2022-000033" ne devrait plus être consultable dans le raccordement du projet lauréat "Du boulodrome de Marseille" + + Scénario: Le système supprime les tâches de raccordement d'un projet si celui-ci a un abandon accordé + Etant donné le gestionnaire de réseau inconnu attribué au raccordement du projet lauréat "Du boulodrome de Marseille" + Et une demande d'abandon en cours pour le projet lauréat + Quand le DGEC validateur accorde l'abandon pour le projet lauréat + Alors une tâche indiquant de "mettre à jour le gestionnaire de réseau" n'est plus consultable dans la liste des tâches du porteur pour le projet diff --git "a/packages/specifications/src/t\303\242che/t\303\242che.world.ts" "b/packages/specifications/src/t\303\242che/t\303\242che.world.ts" index 1592af56cd..73ea165fdd 100644 --- "a/packages/specifications/src/t\303\242che/t\303\242che.world.ts" +++ "b/packages/specifications/src/t\303\242che/t\303\242che.world.ts" @@ -5,7 +5,8 @@ export type RechercherTypeTâche = | 'confirmer un abandon' | 'transmettre les garanties financières' | 'mettre à jour le gestionnaire de réseau' - | 'échoir les garanties financières'; + | 'échoir les garanties financières' + | 'transmettre une référence de raccordement'; export class TâcheWorld { rechercherTypeTâche(value: RechercherTypeTâche): TypeTâche.ValueType { @@ -20,6 +21,8 @@ export class TâcheWorld { return TypeTâche.garantiesFinancièresDemander; case 'mettre à jour le gestionnaire de réseau': return TypeTâche.raccordementGestionnaireRéseauInconnuAttribué; + case 'transmettre une référence de raccordement': + return TypeTâche.raccordementRéférenceNonTransmise; default: return TypeTâche.inconnue; }