diff --git a/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx b/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx index a2fc13ddb1c..6d90b6a33b7 100644 --- a/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx +++ b/front/src/applications/stdcm/components/StdcmForm/StdcmConsist.tsx @@ -144,7 +144,7 @@ const StdcmConsist = ({ isDebugMode, consistErrors = {}, disabled = false }: Std status: 'error', tooltip: 'left', message: t(consistErrors.totalMass, { - low: Math.floor( + low: Math.ceil( kgToT((rollingStock?.mass ?? 0) + (towedRollingStock?.mass ?? 0)) ), high: CONSIST_TOTAL_MASS_MAX, @@ -168,7 +168,7 @@ const StdcmConsist = ({ isDebugMode, consistErrors = {}, disabled = false }: Std status: 'error', tooltip: 'left', message: t(consistErrors.totalLength, { - low: Math.floor((rollingStock?.length ?? 0) + (towedRollingStock?.length ?? 0)), + low: Math.ceil((rollingStock?.length ?? 0) + (towedRollingStock?.length ?? 0)), high: CONSIST_TOTAL_LENGTH_MAX, }), } diff --git a/front/src/applications/stdcm/hooks/useStdcmConsist.ts b/front/src/applications/stdcm/hooks/useStdcmConsist.ts index 5d35f211f3a..f0c01ea8b62 100644 --- a/front/src/applications/stdcm/hooks/useStdcmConsist.ts +++ b/front/src/applications/stdcm/hooks/useStdcmConsist.ts @@ -51,12 +51,12 @@ const useStdcmConsist = () => { maxSpeedTag?: string | null ) => { if (!totalMassChanged) { - const consistMass = Math.floor(kgToT((rollingStock?.mass ?? 0) + (towed?.mass ?? 0))); + const consistMass = Math.ceil(kgToT((rollingStock?.mass ?? 0) + (towed?.mass ?? 0))); dispatch(updateTotalMass(consistMass > 0 ? consistMass : undefined)); } if (!totalLengthChanged) { - const consistLength = Math.floor((rollingStock?.length ?? 0) + (towed?.length ?? 0)); + const consistLength = Math.ceil((rollingStock?.length ?? 0) + (towed?.length ?? 0)); dispatch(updateTotalLength(consistLength > 0 ? consistLength : undefined)); } diff --git a/front/src/applications/stdcm/utils/consistValidation.ts b/front/src/applications/stdcm/utils/consistValidation.ts index 711986698d7..3926f99d7f2 100644 --- a/front/src/applications/stdcm/utils/consistValidation.ts +++ b/front/src/applications/stdcm/utils/consistValidation.ts @@ -22,7 +22,7 @@ export const validateTotalMass = ({ } const tractionMassInTons = kgToT(tractionEngineMass); - const consistMassInTons = Math.floor(kgToT(tractionEngineMass + towedMass)); + const consistMassInTons = Math.ceil(kgToT(tractionEngineMass + towedMass)); const massLimit = towedMass ? consistMassInTons : tractionMassInTons; if (totalMass < massLimit || totalMass > CONSIST_TOTAL_MASS_MAX) { @@ -49,7 +49,7 @@ export const validateTotalLength = ({ return 'consist.errors.totalLength.negative'; } - const consistLength = Math.floor(tractionEngineLength + towedLength); + const consistLength = Math.ceil(tractionEngineLength + towedLength); if (totalLength < consistLength || totalLength > CONSIST_TOTAL_LENGTH_MAX) { return 'consist.errors.totalLength.range'; diff --git a/front/tests/006-stdcm.spec.ts b/front/tests/006-stdcm.spec.ts index a1f60dff63e..10f69f0e1a0 100644 --- a/front/tests/006-stdcm.spec.ts +++ b/front/tests/006-stdcm.spec.ts @@ -35,7 +35,7 @@ test.describe('Verify train schedule elements and filters', () => { }; const fastRollingStockPrefilledValues = { tonnage: '190', - length: '45', + length: '46', maxSpeed: '220', }; const towedRollingStockPrefilledValues = {