From 16afb64c2033f2f850c27ba6ebe2a8b0d9dd8604 Mon Sep 17 00:00:00 2001 From: "Yassine R." Date: Thu, 19 Jun 2025 00:31:50 +0200 Subject: [PATCH 1/3] fix(backend): fix hours of dates for all dates --- packages/backend/package.json | 1 - ...ureStatsReportingQuestionsTable.typeorm.ts | 2 +- .../statsDeploiementExporter.ts | 4 +- .../schema/core/dateUtcSchema.yup.ts | 46 +++++++++++++------ .../backend/src/util/functions/stringUtils.ts | 5 +- .../modules/shared/services/auth.service.ts | 2 - .../etat-civil-parent-form.component.spec.ts | 4 +- .../etat-civil-parent-form.component.ts | 5 +- .../frontend/src/app/shared/bootstrap-util.ts | 17 ++++--- yarn.lock | 8 ---- 10 files changed, 51 insertions(+), 43 deletions(-) diff --git a/packages/backend/package.json b/packages/backend/package.json index 07a0a65416..f806c8d389 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -83,7 +83,6 @@ "lodash.set": "^4.3.2", "luhn": "^2.4.1", "mammoth": "^1.4.17", - "moment": "^2.30.1", "multer": "^2.0.1", "node-pdftk": "^2.1.3", "nodemailer": "^6.10.0", diff --git a/packages/backend/src/database/entities/structure/StructureStatsReportingQuestionsTable.typeorm.ts b/packages/backend/src/database/entities/structure/StructureStatsReportingQuestionsTable.typeorm.ts index fdbb85f387..e614c3ca66 100644 --- a/packages/backend/src/database/entities/structure/StructureStatsReportingQuestionsTable.typeorm.ts +++ b/packages/backend/src/database/entities/structure/StructureStatsReportingQuestionsTable.typeorm.ts @@ -4,13 +4,13 @@ import { } from "@domifa/common"; import { + ValueTransformer, Entity, Column, Index, JoinColumn, ManyToOne, Unique, - ValueTransformer, } from "typeorm"; import { AppTypeormTable } from "../_core"; import { StructureTable } from "./StructureTable.typeorm"; diff --git a/packages/backend/src/excel/export-stats-deploiement/statsDeploiementExporter.ts b/packages/backend/src/excel/export-stats-deploiement/statsDeploiementExporter.ts index 2afaa8eb5a..ef383bc02b 100644 --- a/packages/backend/src/excel/export-stats-deploiement/statsDeploiementExporter.ts +++ b/packages/backend/src/excel/export-stats-deploiement/statsDeploiementExporter.ts @@ -27,9 +27,7 @@ async function generateExcelDocument({ users: UsersForAdminList[]; }): Promise { try { - const workbook = await renderWorkbook({ structures, users }); - - return workbook; + return renderWorkbook({ structures, users }); } catch (err) { appLogger.error("[statsDeploiementExporter] ERROR - Report NOT created", { sentry: true, diff --git a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.ts b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.ts index 94e889b36b..fe225d1a31 100644 --- a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.ts +++ b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.ts @@ -1,13 +1,10 @@ -import * as moment from "moment"; +import { isValid, parse } from "date-fns"; import * as yup from "yup"; import { appLogger } from "../../../../../../util"; import { ValidationRegexp } from "./ValidationRegexp.data"; -const DEFAULT_PARSE_FORMATS = "DD/MM/YYYY"; -// @see https://github.com/jquense/yup/blob/master/docs/extending.md export const dateUtcSchema = () => yup.date().transform((value, originalValue) => { - // Si c'est du texte, Original value sera vide, mais value non if (!originalValue && value) { originalValue = value; } @@ -20,20 +17,43 @@ export const dateUtcSchema = () => return yup.date.INVALID_DATE; } - const momentDate = moment - .utc(originalValue, DEFAULT_PARSE_FORMATS) - .startOf("day"); + let parsedDate: Date; - if (!momentDate.isValid) { - appLogger.warn(`Invalid date (moment)`, { + try { + if (typeof originalValue === "string") { + parsedDate = parse(originalValue, "dd/MM/yyyy", new Date()); + } else if (originalValue instanceof Date) { + parsedDate = originalValue; + } else { + parsedDate = new Date(originalValue); + } + + if (!isValid(parsedDate)) { + appLogger.warn(`Invalid date (date-fns)`, { + sentry: true, + context: { originalValue }, + }); + return yup.date.INVALID_DATE; + } + + return new Date( + Date.UTC( + parsedDate.getFullYear(), + parsedDate.getMonth(), + parsedDate.getDate(), + 12, + 0, + 0, + 0 + ) + ); + } catch (error) { + appLogger.warn(`Error parsing date`, { sentry: true, - context: { - originalValue, - }, + context: { originalValue }, }); return yup.date.INVALID_DATE; } - return momentDate.toDate(); } return null; }); diff --git a/packages/backend/src/util/functions/stringUtils.ts b/packages/backend/src/util/functions/stringUtils.ts index eaae26dd6c..8b8a030ce3 100644 --- a/packages/backend/src/util/functions/stringUtils.ts +++ b/packages/backend/src/util/functions/stringUtils.ts @@ -1,6 +1,6 @@ import { TimeZone } from "@domifa/common"; import { format } from "date-fns"; -import { utcToZonedTime, zonedTimeToUtc } from "date-fns-tz"; +import { utcToZonedTime } from "date-fns-tz"; import { fr } from "date-fns/locale"; export const formatBoolean = (element: boolean): string => { @@ -50,9 +50,6 @@ export const dateFormat = ( if (typeof date === "string") { date = new Date(date); } - // On Repasse en UTC pour convertir correctement - date = zonedTimeToUtc(date, "Europe/Paris"); - // On repasse sur la bonne timezone date = utcToZonedTime(date, timeZone); return format(date, displayFormat, { diff --git a/packages/frontend/src/app/modules/shared/services/auth.service.ts b/packages/frontend/src/app/modules/shared/services/auth.service.ts index c5a1aab835..a42f78a5b0 100644 --- a/packages/frontend/src/app/modules/shared/services/auth.service.ts +++ b/packages/frontend/src/app/modules/shared/services/auth.service.ts @@ -1,9 +1,7 @@ import { HttpClient } from "@angular/common/http"; import { Injectable } from "@angular/core"; import { Router, RouterStateSnapshot } from "@angular/router"; - import jwtDecode from "jwt-decode"; - import { BehaviorSubject, Observable, firstValueFrom, of } from "rxjs"; import { catchError, map } from "rxjs/operators"; import { environment } from "../../../../environments/environment"; diff --git a/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.spec.ts b/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.spec.ts index d8124bd28e..568a9d7c73 100644 --- a/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.spec.ts +++ b/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.spec.ts @@ -89,7 +89,7 @@ describe("EtatCivilParentFormComponent", () => { expect(component.getEtatCivilForm(testForm)).toEqual({ ayantsDroits: [ { - dateNaissance: new Date("2022-08-01T21:59:59.999Z"), + dateNaissance: new Date("2022-08-01T12:00:00.000Z"), lien: "ENFANT", nom: "AD NOM", prenom: "AD PRENOM", @@ -98,7 +98,7 @@ describe("EtatCivilParentFormComponent", () => { referrerId: null, contactByPhone: true, customRef: null, - dateNaissance: new Date("2022-08-03T21:59:59.999Z"), + dateNaissance: new Date("2022-08-03T12:00:00.000Z"), nationalite: null, email: null, langue: "ar", diff --git a/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.ts b/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.ts index 726f91744d..53ad888f04 100644 --- a/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.ts +++ b/packages/frontend/src/app/modules/usager-shared/components/etat-civil-parent-form/etat-civil-parent-form.component.ts @@ -20,7 +20,6 @@ import { NgbDatepickerI18n, NgbDateStruct, } from "@ng-bootstrap/ng-bootstrap"; -import { endOfDay } from "date-fns"; import { SearchCountryField, CountryISO, @@ -265,7 +264,7 @@ export class EtatCivilParentFormComponent implements OnDestroy { lien: ayantDroit.lien, nom: ayantDroit.nom.trim(), prenom: ayantDroit.prenom.trim(), - dateNaissance: endOfDay(parseDateFromNgb(ayantDroit.dateNaissance)), + dateNaissance: parseDateFromNgb(ayantDroit.dateNaissance), }; } ); @@ -292,7 +291,7 @@ export class EtatCivilParentFormComponent implements OnDestroy { : null, ayantsDroits, contactByPhone: formValue?.contactByPhone, - dateNaissance: endOfDay(parseDateFromNgb(formValue.dateNaissance)), + dateNaissance: parseDateFromNgb(formValue.dateNaissance), }; return data; diff --git a/packages/frontend/src/app/shared/bootstrap-util.ts b/packages/frontend/src/app/shared/bootstrap-util.ts index 83c634617f..4c9f9a64d7 100644 --- a/packages/frontend/src/app/shared/bootstrap-util.ts +++ b/packages/frontend/src/app/shared/bootstrap-util.ts @@ -16,15 +16,20 @@ export function padNumber(value: number): string { return ""; } } -export function formatDateToNgb(date: Date): NgbDate { - if (!date.getDate) { - date = new Date(date); - } - return new NgbDate(date.getFullYear(), date.getMonth() + 1, date.getDate()); + +export function formatDateToNgb(date: Date | string): NgbDate { + const dateObj = typeof date === "string" ? new Date(date) : date; + const year = dateObj.getUTCFullYear(); + const month = dateObj.getUTCMonth() + 1; + const day = dateObj.getUTCDate(); + + return new NgbDate(year, month, day); } export function parseDateFromNgb(ngbDate: NgbDate): Date { - return new Date(ngbDate.year, ngbDate.month - 1, ngbDate.day); + return new Date( + Date.UTC(ngbDate.year, ngbDate.month - 1, ngbDate.day, 12, 0, 0) + ); } export const minDateNaissance = { day: 1, month: 1, year: 1900 }; diff --git a/yarn.lock b/yarn.lock index 958778bc07..f672a44957 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3757,7 +3757,6 @@ __metadata: lodash.set: "npm:^4.3.2" luhn: "npm:^2.4.1" mammoth: "npm:^1.4.17" - moment: "npm:^2.30.1" multer: "npm:^2.0.1" node-pdftk: "npm:^2.1.3" nodemailer: "npm:^6.10.0" @@ -20868,13 +20867,6 @@ __metadata: languageName: node linkType: hard -"moment@npm:^2.30.1": - version: 2.30.1 - resolution: "moment@npm:2.30.1" - checksum: 10/ae42d876d4ec831ef66110bdc302c0657c664991e45cf2afffc4b0f6cd6d251dde11375c982a5c0564ccc0fa593fc564576ddceb8c8845e87c15f58aa6baca69 - languageName: node - linkType: hard - "moo@npm:^0.5.0, moo@npm:^0.5.1": version: 0.5.2 resolution: "moo@npm:0.5.2" From b4575cc90823e077af329e26902870134c631242 Mon Sep 17 00:00:00 2001 From: "Yassine R." Date: Mon, 23 Jun 2025 16:27:43 +0200 Subject: [PATCH 2/3] fix(backend): fix date cerfa --- ...sagersImportUsagerSchema.yup.valid.test.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.valid.test.ts b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.valid.test.ts index e7a543be68..0515ca69c9 100644 --- a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.valid.test.ts +++ b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.valid.test.ts @@ -31,7 +31,7 @@ describe("UsagersImportCiviliteSchema schema", () => { nom: "Dupont", prenom: "Paul", surnom: "Polo", - dateNaissance: new Date(Date.UTC(2018, 6 - 1, 15)), + dateNaissance: new Date(Date.UTC(2018, 6 - 1, 15, 12)), lieuNaissance: "Paris", telephone: { countryCode: "fr", @@ -42,10 +42,10 @@ describe("UsagersImportCiviliteSchema schema", () => { motifRefus: undefined, motifRadiation: undefined, typeDom: "PREMIERE_DOM", - dateDebutDom: new Date(Date.UTC(2019, 3 - 1, 10)), - dateFinDom: new Date(Date.UTC(2020, 3 - 1, 10)), - datePremiereDom: new Date(Date.UTC(2019, 3 - 1, 10)), - dateDernierPassage: new Date(Date.UTC(2020, 12 - 1, 18)), + dateDebutDom: new Date(Date.UTC(2019, 3 - 1, 10, 12)), + dateFinDom: new Date(Date.UTC(2020, 3 - 1, 10, 12)), + datePremiereDom: new Date(Date.UTC(2019, 3 - 1, 10, 12)), + dateDernierPassage: new Date(Date.UTC(2020, 12 - 1, 18, 12)), orientation: false, orientationDetail: "détails orientation", domiciliationExistante: false, @@ -69,13 +69,13 @@ describe("UsagersImportCiviliteSchema schema", () => { { nom: "Dupont", prenom: "Paula", - dateNaissance: new Date(Date.UTC(2018, 7 - 1, 15)), + dateNaissance: new Date(Date.UTC(2018, 7 - 1, 15, 12)), lienParente: "ENFANT", }, { nom: "Dupont", prenom: "John", - dateNaissance: new Date(Date.UTC(1938, 7 - 1, 15)), + dateNaissance: new Date(Date.UTC(1938, 7 - 1, 15, 12)), lienParente: "PARENT", }, ], @@ -92,7 +92,7 @@ describe("UsagersImportCiviliteSchema schema", () => { accompagnementDetail: "Ici le détail", ayantsDroits: [ { - dateNaissance: new Date(Date.UTC(1991, 7 - 1, 11)), + dateNaissance: new Date(Date.UTC(1991, 7 - 1, 11, 12)), lienParente: "AUTRE", nom: "Auguy", prenom: "Marcelo", @@ -102,8 +102,8 @@ describe("UsagersImportCiviliteSchema schema", () => { civilite: "F", commentaires: "Un commentaire", customRef: "XX_0111", - dateFinDom: new Date(Date.UTC(2020, 5 - 1, 12)), - dateNaissance: new Date(Date.UTC(1929, 6 - 1, 15)), + dateFinDom: new Date(Date.UTC(2020, 5 - 1, 12, 12)), + dateNaissance: new Date(Date.UTC(1929, 6 - 1, 15, 12)), domiciliationExistante: false, email: "marcelo-bielsa@yopmail.com", liencommune: "SOCIAL", From 819768602f0d145ae93e5e03b151e1f4ff4c44bc Mon Sep 17 00:00:00 2001 From: "Yassine R." Date: Mon, 23 Jun 2025 23:49:41 +0200 Subject: [PATCH 3/3] fix(backend): update tests with new hours in dates --- .talismanrc | 71 ++++++++----------- ...sagersImportUsagerSchema.yup.dates.test.ts | 6 +- .../schema/core/dateUtcSchema.yup.test.ts | 10 +-- ...agersImportValidator.service.valid.test.ts | 14 ++-- .../register-user-supervisor.component.ts | 1 - 5 files changed, 45 insertions(+), 57 deletions(-) diff --git a/.talismanrc b/.talismanrc index e5212544e5..f7e6967978 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,43 +1,32 @@ -fileignoreconfig: -- filename: .github/workflows/preproduction.yml - checksum: afc7a55dcadffe6e8d2d24c127e4987ab5466f72e58baec96e4f5ca7a1c0fec3 -- filename: .github/workflows/production.yml - checksum: 3f13bbe9b300af534e9daca72e94d9f87b08d4d853f36353d2c2e1618154d29a -- filename: .github/workflows/review-auto.yaml - checksum: 238e200e9beebe0caf2ef716961248ee48bd1d3beb3e5753ba261a71b8665bc1 -- filename: .github/workflows/review.yml - checksum: 8f4ebff426155a29d4876ace46b055ad16bcba76ebef666f198db9dc01a591fc -- filename: .kontinuous/env/dev/templates/backend.sealed-secret.yaml - checksum: 18ff2521f58f636cc2f32584ef7240d9abf9116d136e35dbd5d8d56fb1d7ecc0 -- filename: .kontinuous/env/preprod/templates/backend.sealed-secret.yaml - checksum: 0917aee283e9399d2dec53764d29039327b0c1cd2d360bc6ec9b41f1a431b606 -- filename: .kontinuous/env/prod/templates/backend.sealed-secret.yaml - checksum: 8fde5b286c60c34cfa15985ca22a07d530aa2260c08d9d5c9e301cb86649af30 -- filename: _docs/dev/0.run-local-env.md - checksum: 855b6f29ace746c86597d36382dbe7e40f771137734e3bf5eb53c948d6592a74 -- filename: _scripts/db/dumps/domifa_test.postgres.restore-data-only.sql - checksum: 6786973ce45c4e9f98501703bb28b21f487818ddbffcd30b35cb0499a659c9ef -- filename: _scripts/db/dumps/domifa_test.postgres.truncate-restore-data-only.sql - checksum: c68a6bc52521795e41b2d5ecddb9fb907ada5fce5bb1fef7fef4709fac8e0677 -- filename: packages/backend/package.json - checksum: 2f5813dbc35cdc3659516beabf9f93e2978eb62d1b5403cfbb2907f22bb25355 -- filename: packages/backend/src/_migrations/1754405019897-auto-migration.ts - checksum: 6b673a380e62c89fb0d8bb741c051c57de2aed03299d41ee1827fdec06476fc3 -- filename: packages/backend/src/_migrations/_init-db/domifa_test_schema.sql - checksum: 8ca9498eed4f758c0b37cc0d8574cb99addaa27a2df0ea0b514829aed977e7f6 -- filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/admin-structures-list.component.spec.ts - checksum: 8f66091255109d0da277819584c6c69d4a7f720256842851a49b0dda16af6651 -- filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/admin-structures-list.component.ts - checksum: a0fbc6fca054f17c58d411b55a45acfa2351309a270968298aafcede7b7ae31f -- filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/services/structuresSearchStringFilter.service.ts - checksum: fe3243c2d2adc23ed62431597b6ae7b3cb61fb25d876f1ada2de5387f0872b0b -- filename: packages/portail-admins/src/app/modules/admin-structures/components/structure-filters/structure-filters.component.spec.ts - checksum: d202296bc7f349c0dc6bf140be961d8c321f57d9188325a07c49a6ca10c55b3b -- filename: packages/portail-admins/src/app/modules/admin-structures/components/structure-filters/structure-filters.component.ts - checksum: e6d4d9afca6797fbf98f12db96ad37a21d61289539827390ba5b4aefeb92a6b2 -- filename: packages/portail-admins/src/app/modules/admin-structures/utils/structure-filter-criteria.ts - checksum: c54f1bf45a44280960869561243668e7a92713fb5265f008a95fc3fe66014bf1 -- filename: yarn.lock - checksum: f94bfe3997a2e88c4e1626bd212aed2bb5f1702697387d3eaff959e8ed473922 threshold: medium + +file_ignore_config: + - "**/*.test.ts" + - "**/*.spec.ts" + - "**/test/**" + - "**/tests/**" + +fileignoreconfig: + - filename: _docs/dev/0.run-local-env.md + checksum: 855b6f29ace746c86597d36382dbe7e40f771137734e3bf5eb53c948d6592a74 + - filename: _scripts/db/dumps/domifa_test.postgres.restore-data-only.sql + checksum: 6786973ce45c4e9f98501703bb28b21f487818ddbffcd30b35cb0499a659c9ef + - filename: _scripts/db/dumps/domifa_test.postgres.truncate-restore-data-only.sql + checksum: c68a6bc52521795e41b2d5ecddb9fb907ada5fce5bb1fef7fef4709fac8e0677 + - filename: packages/backend/package.json + checksum: 2f5813dbc35cdc3659516beabf9f93e2978eb62d1b5403cfbb2907f22bb25355 + - filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/admin-structures-list.component.spec.ts + checksum: 8f66091255109d0da277819584c6c69d4a7f720256842851a49b0dda16af6651 + - filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/admin-structures-list.component.ts + checksum: a0fbc6fca054f17c58d411b55a45acfa2351309a270968298aafcede7b7ae31f + - filename: packages/portail-admins/src/app/modules/admin-structures/components/admin-structures-list/services/structuresSearchStringFilter.service.ts + checksum: fe3243c2d2adc23ed62431597b6ae7b3cb61fb25d876f1ada2de5387f0872b0b + - filename: packages/portail-admins/src/app/modules/admin-structures/components/structure-filters/structure-filters.component.spec.ts + checksum: d202296bc7f349c0dc6bf140be961d8c321f57d9188325a07c49a6ca10c55b3b + - filename: packages/portail-admins/src/app/modules/admin-structures/components/structure-filters/structure-filters.component.ts + checksum: e6d4d9afca6797fbf98f12db96ad37a21d61289539827390ba5b4aefeb92a6b2 + - filename: packages/portail-admins/src/app/modules/admin-structures/utils/structure-filter-criteria.ts + checksum: c54f1bf45a44280960869561243668e7a92713fb5265f008a95fc3fe66014bf1 + - filename: yarn.lock + checksum: 019fe82a4a9dab1293f6359f9098c6f197e6ec3848e5c38362414c45c59385c1 version: "1.0" diff --git a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.dates.test.ts b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.dates.test.ts index 05708352cb..490186a6bf 100644 --- a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.dates.test.ts +++ b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/UsagersImportUsagerSchema.yup.dates.test.ts @@ -26,8 +26,8 @@ describe("UsagersImportCiviliteSchema dates", () => { ); expect(usager.statutDom).toEqual("REFUS"); - expect(usager.dateDebutDom).toEqual(new Date(Date.UTC(2020, 2 - 1, 3))); - expect(usager.dateFinDom).toEqual(new Date(Date.UTC(2020, 10 - 1, 5))); + expect(usager.dateDebutDom).toEqual(new Date(Date.UTC(2020, 2 - 1, 3, 12))); + expect(usager.dateFinDom).toEqual(new Date(Date.UTC(2020, 10 - 1, 5, 12))); }); it("statutDom=REFUS dateDebutDom missing", async () => { await expect( @@ -105,7 +105,7 @@ describe("UsagersImportCiviliteSchema dates", () => { { context } ) ).rejects.toThrowError( - "dateFinDom field must be later than 2022-02-03T00:00:00.000Z" + "dateFinDom field must be later than 2022-02-03T12:00:00.000Z" ); }); }); diff --git a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.test.ts b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.test.ts index 35fe7530f7..c69fd5ddb1 100644 --- a/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.test.ts +++ b/packages/backend/src/usagers/controllers/import/step2-validate-row/schema/core/dateUtcSchema.yup.test.ts @@ -3,10 +3,10 @@ import { dateUtcSchema } from "./dateUtcSchema.yup"; describe("dateUtcSchema schema", () => { it("valid date", async () => { expect(await dateUtcSchema().validate("15/03/2020")).toEqual( - new Date(Date.UTC(2020, 3 - 1, 15)) + new Date(Date.UTC(2020, 3 - 1, 15, 12)) ); expect(await dateUtcSchema().validate("31/12/1920")).toEqual( - new Date(Date.UTC(1920, 12 - 1, 31)) + new Date(Date.UTC(1920, 12 - 1, 31, 12)) ); }); @@ -29,10 +29,10 @@ describe("dateUtcSchema schema", () => { it("valid date with valid validation", async () => { expect( await dateUtcSchema() - .min(new Date(Date.UTC(2020, 3 - 1, 15))) - .max(new Date(Date.UTC(2020, 3 - 1, 15))) + .min(new Date(Date.UTC(2020, 3 - 1, 15, 12))) + .max(new Date(Date.UTC(2020, 3 - 1, 15, 12))) .validate("15/03/2020") - ).toEqual(new Date(Date.UTC(2020, 3 - 1, 15))); + ).toEqual(new Date(Date.UTC(2020, 3 - 1, 15, 12))); }); it("valid date with invalid validation", async () => { diff --git a/packages/backend/src/usagers/controllers/import/step2-validate-row/usagersImportValidator.service.valid.test.ts b/packages/backend/src/usagers/controllers/import/step2-validate-row/usagersImportValidator.service.valid.test.ts index e08ceac22f..c047b534e3 100644 --- a/packages/backend/src/usagers/controllers/import/step2-validate-row/usagersImportValidator.service.valid.test.ts +++ b/packages/backend/src/usagers/controllers/import/step2-validate-row/usagersImportValidator.service.valid.test.ts @@ -30,7 +30,7 @@ describe("usagersImportValidator parse valid data", () => { nom: "Dupont", prenom: "Paul", surnom: "Polo", - dateNaissance: new Date(Date.UTC(2000, 6 - 1, 15)), + dateNaissance: new Date(Date.UTC(2000, 6 - 1, 15, 12)), lieuNaissance: "Paris", telephone: { countryCode: "fr", @@ -41,10 +41,10 @@ describe("usagersImportValidator parse valid data", () => { // motifRefus: undefined, // motifRadiation: undefined, typeDom: "PREMIERE_DOM", - dateDebutDom: new Date(Date.UTC(2019, 3 - 1, 10)), - dateFinDom: new Date(Date.UTC(2020, 3 - 1, 10)), - datePremiereDom: new Date(Date.UTC(2019, 3 - 1, 10)), - dateDernierPassage: new Date(Date.UTC(2020, 12 - 1, 18)), + dateDebutDom: new Date(Date.UTC(2019, 3 - 1, 10, 12)), + dateFinDom: new Date(Date.UTC(2020, 3 - 1, 10, 12)), + datePremiereDom: new Date(Date.UTC(2019, 3 - 1, 10, 12)), + dateDernierPassage: new Date(Date.UTC(2020, 12 - 1, 18, 12)), orientation: false, orientationDetail: "détails orientation", domiciliationExistante: false, @@ -67,13 +67,13 @@ describe("usagersImportValidator parse valid data", () => { { nom: "Dupont", prenom: "Paula", - dateNaissance: new Date(Date.UTC(2018, 7 - 1, 15)), + dateNaissance: new Date(Date.UTC(2018, 7 - 1, 15, 12)), lienParente: "ENFANT", }, { nom: "Dupont", prenom: "John", - dateNaissance: new Date(Date.UTC(1938, 7 - 1, 15)), + dateNaissance: new Date(Date.UTC(1938, 7 - 1, 15, 12)), lienParente: "PARENT", }, ], diff --git a/packages/portail-admins/src/app/modules/manage-users/components/register-user-supervisor/register-user-supervisor.component.ts b/packages/portail-admins/src/app/modules/manage-users/components/register-user-supervisor/register-user-supervisor.component.ts index 8e361f33d6..4c8e1ee5f9 100644 --- a/packages/portail-admins/src/app/modules/manage-users/components/register-user-supervisor/register-user-supervisor.component.ts +++ b/packages/portail-admins/src/app/modules/manage-users/components/register-user-supervisor/register-user-supervisor.component.ts @@ -128,7 +128,6 @@ export class RegisterUserSupervisorComponent implements OnInit, OnDestroy { if (this.isEditMode) { this.f.email.disable(); } - this.selectedRole = this.userToEdit.role; this.onRoleChange(); }