Skip to content
Snippets Groups Projects
Unverified Commit 74c98af8 authored by BITARD Michaël's avatar BITARD Michaël Committed by GitHub
Browse files

fix(api): ne vérifie plus avec TDE quand on a une machine (#1315)

parent e42ea088
Branches
Tags v0.93.0
No related merge requests found
......@@ -1036,15 +1036,6 @@ const demarcheEtapesTypesGet = async (titreDemarcheId: DemarcheId, date: CaminoD
if (titreEtapeId && !titreEtape) throw new Error("l'étape n'existe pas")
// si on modifie une étape
// vérifie que son type est possible sur la démarche
if (titreEtape) {
if (!isTDEExist(titre.typeId, titreDemarche.typeId, titreEtape.typeId)) {
const demarcheType = DemarchesTypes[titreDemarche.typeId]
throw new Error(`étape ${EtapesTypes[titreEtape.typeId].nom} inexistante pour une démarche ${demarcheType.nom} pour un titre ${titre.typeId}.`)
}
}
const demarcheDefinition = demarcheDefinitionFind(titre.typeId, titreDemarche.typeId, titreDemarche.etapes, titreDemarche.id)
const etapesTypes: EtapeTypeEtapeStatutWithMainStep[] = []
......@@ -1053,6 +1044,14 @@ const demarcheEtapesTypesGet = async (titreDemarcheId: DemarcheId, date: CaminoD
const etapes = titreDemarche.etapes.map(etape => titreEtapeForMachineValidator.parse(etape))
etapesTypes.push(...etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(demarcheDefinition.machine, etapes, titreEtapeId, date))
} else {
// si on modifie une étape
// vérifie que son type est possible sur la démarche
if (titreEtape) {
if (!isTDEExist(titre.typeId, titreDemarche.typeId, titreEtape.typeId)) {
const demarcheType = DemarchesTypes[titreDemarche.typeId]
throw new Error(`étape ${EtapesTypes[titreEtape.typeId].nom} inexistante pour une démarche ${demarcheType.nom} pour un titre ${titre.typeId}.`)
}
}
// dans un premier temps on récupère toutes les étapes possibles pour cette démarche
let etapesTypesTDE = getEtapesTDE(titre.typeId, titreDemarche.typeId)
......
......@@ -19,7 +19,6 @@ import { titresActivitesRelanceSend } from './processes/titres-activites-relance
import type { Pool } from 'pg'
import { demarchesDefinitionsCheck } from '../tools/demarches/definitions-check.js'
import { titreTypeDemarcheTypeEtapeTypeCheck } from '../tools/demarches/tde-check.js'
import { etapeStatutCheck } from '../tools/demarches/etape-statut-check.js'
export const daily = async (pool: Pool) => {
try {
......@@ -49,7 +48,6 @@ export const daily = async (pool: Pool) => {
await demarchesDefinitionsCheck()
await titreTypeDemarcheTypeEtapeTypeCheck()
await etapeStatutCheck()
logsUpdate({
titresEtapesOrdreUpdated,
......
......@@ -4,7 +4,7 @@ import type { ITitre, ITitreEtape } from '../../types.js'
import { demarcheDefinitionFind } from '../rules-demarches/definitions.js'
import { titreEtapeForMachineValidator, toMachineEtapes } from '../rules-demarches/machine-common.js'
import { titreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate.js'
import { tdeOldTitreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate.js'
import { DemarcheId } from 'camino-common/src/demarche.js'
import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
......@@ -62,7 +62,7 @@ export const titreDemarcheUpdatedEtatValidate = (
return []
}
// le type d'étape correspond à la démarche et au type de titre
const titreEtapeTypeAndStatusErrors = titreEtapeTypeAndStatusValidate(titre.typeId, titreDemarche.typeId, titreEtape.typeId, titreEtape.statutId)
const titreEtapeTypeAndStatusErrors = tdeOldTitreEtapeTypeAndStatusValidate(titre.typeId, titreDemarche.typeId, titreEtape.typeId, titreEtape.statutId)
titreDemarchesErrors.push(...titreEtapeTypeAndStatusErrors)
return titreDemarchesErrors
......
import { titreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate.js'
import { tdeOldTitreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate.js'
import { describe, test, expect } from 'vitest'
describe("valide le type et le statut d'une étape en fonction du type de titre et du type de démarche", () => {
test('le statut est obligatoire', () => {
expect(titreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', undefined)).toEqual(['le statut est obligatoire'])
expect(tdeOldTitreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', undefined)).toEqual(['le statut est obligatoire'])
})
test("le type et le statut de l'étape correspondent au type de titre et de démarche", () => {
expect(titreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', 'fai')).toHaveLength(0)
expect(tdeOldTitreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', 'fai')).toHaveLength(0)
})
test("le statut de l'étape ne correspond pas au type de titre et de démarche", () => {
expect(titreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', 'rej')).toEqual(['statut de l\'étape "rej" invalide pour une étape mdp pour une démarche de type octroi'])
expect(tdeOldTitreEtapeTypeAndStatusValidate('arm', 'oct', 'mdp', 'rej')).toEqual(['statut de l\'étape "rej" invalide pour une étape mdp pour une démarche de type octroi'])
})
test("le type de l'étape n'est pas compatible avec le type de titre et de démarche", () => {
expect(titreEtapeTypeAndStatusValidate('arm', 'oct', 'dex', 'fai')).toEqual(['étape "dex" invalide pour une démarche "octroi"'])
expect(tdeOldTitreEtapeTypeAndStatusValidate('arm', 'oct', 'dex', 'fai')).toEqual(['étape "dex" invalide pour une démarche "octroi"'])
})
})
......@@ -6,7 +6,7 @@ import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_
import { DemarcheTypeId, DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
export const titreEtapeTypeAndStatusValidate = (titreTypeId: TitreTypeId, demarcheTypeId: DemarcheTypeId, etapeTypeId: EtapeTypeId, etapeStatutId: EtapeStatutId | undefined): string[] => {
export const tdeOldTitreEtapeTypeAndStatusValidate = (titreTypeId: TitreTypeId, demarcheTypeId: DemarcheTypeId, etapeTypeId: EtapeTypeId, etapeStatutId: EtapeStatutId | undefined): string[] => {
if (!etapeStatutId) {
return [`le statut est obligatoire`]
}
......
import '../init.js'
import { etapeStatutCheck } from '../tools/demarches/etape-statut-check.js'
etapeStatutCheck()
.then(() => {
process.exit()
})
.catch(err => {
console.error(err)
process.exit(1)
})
import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
import { userSuper } from '../../database/user-super.js'
import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
export const etapeStatutCheck = async () => {
console.info()
console.info('- - -')
console.info('vérification des statuts des étapes en bdd')
console.info()
const etapes = await titresEtapesGet(
{},
{
fields: {
demarche: { titre: { id: {} } },
},
},
userSuper
)
let errorsNb = 0
etapes.forEach(etape => {
const tdeExists = isTDEExist(etape.demarche!.titre!.typeId, etape.demarche!.typeId, etape.typeId)
const etapesStatuts = getEtapesStatuts(etape.typeId)
const etapeType = EtapesTypes[etape.typeId]
if (tdeExists && !etapesStatuts!.map(es => es.id).includes(etape.statutId)) {
console.info(`erreur sur le titre https://camino.beta.gouv.fr/titres/${etape.demarche!.titreId}, étape « ${etapeType.nom} » a un statut inconnu`)
errorsNb++
}
})
console.info(`erreurs : ${errorsNb} statuts inconnus`)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment