Skip to content

Commit

Permalink
gestion siret & ridet
Browse files Browse the repository at this point in the history
  • Loading branch information
Ornella452 committed Nov 26, 2024
1 parent 42725c8 commit a7b2b8c
Show file tree
Hide file tree
Showing 3 changed files with 230 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/views/candidature-conseiller/useApiAdmin.js
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,21 @@ export const useApiAdmin = () => {
return structureData;
};

const handleRidetSiret = structureData => {
structureData.ridet = null;
if (structureData.siret.length < 14) {
structureData.ridet = structureData.siret;
structureData.siret = null;
}
};

const buildStructureData = async (formData, geoLocation, codeCommune) => {
const structureData = Object.fromEntries(formData);
structureData.location = geoLocation;
convertValueToBoolean(structureData, 'aIdentifieCandidat');
handleContact(structureData);
handleInformationsStructure(structureData);
handleRidetSiret(structureData);
await handleAdresse(structureData, codeCommune);
convertValueToBoolean(structureData, 'confirmationEngagement');
delete structureData['g-recaptcha-response'];
Expand All @@ -128,6 +137,7 @@ export const useApiAdmin = () => {
const coordinateurData = Object.fromEntries(formData);
handleContact(coordinateurData);
handleInformationsStructure(coordinateurData);
handleRidetSiret(coordinateurData);
await handleAdresse(coordinateurData, codeCommune);
convertValueToBoolean(coordinateurData, 'aIdentifieCoordinateur');
convertValueToBoolean(coordinateurData, 'confirmationEngagement');
Expand Down
111 changes: 110 additions & 1 deletion src/views/candidature-coordinateur/CandidatureCoordinateur.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ describe('candidature coordinateur', () => {
vi.useRealTimers();
});

it('quand je valide le formulaire alors j’envoie toute les données nescessaires', async () => {
it('quand je valide le formulaire alors j’envoie toute les données nescessaires en renseignant un siret', async () => {
// GIVEN
const formData = [
[
Expand Down Expand Up @@ -467,6 +467,7 @@ describe('candidature coordinateur', () => {
'telephone': '+33123456789'
},
'nom': 'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES',
'ridet': null,
'nomCommune': 'Paris 7e Arrondissement',
'codePostal': '75007',
'codeCommune': '75107',
Expand All @@ -479,6 +480,114 @@ describe('candidature coordinateur', () => {
vi.useRealTimers();
});

it('quand je valide le formulaire alors j’envoie toute les données nescessaires en renseignant un ridet', async () => {
// GIVEN
const formData = [
[
'siret',
'1234567'
],
[
'denomination',
'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES'
],
[
'adresse',
'20 AVENUE DE SEGUR, 75007 PARIS'
],
[
'type',
'COMMUNE'
],
[
'prenom',
'Jean'
],
[
'nom',
'Dupont'
],
[
'fonction',
'Test'
],
[
'email',
'[email protected]'
],
[
'telephone',
'+33123456789'
],
[
'aIdentifieCoordinateur',
'non'
],
[
'coordinateurTypeContrat',
'FT'
],
[
'dateDebutMission',
'2023-12-12'
],
[
'motivation',
'je suis motivé !'
],
[
'confirmationEngagement',
'on'
],
[
'g-recaptcha-response',
'1'
],
[
'cf-turnstile-response',
'1'
]
];
const { buildCoordinateurData } = renderHook(() => useApiAdmin.useApiAdmin()).result.current;
const { getGeoLocationFromAddress } = renderHook(() => useEntrepriseFinder()).result.current;
let geoLocation;

// WHEN
// eslint-disable-next-line testing-library/no-unnecessary-act
await act(async () => {
geoLocation = await getGeoLocationFromAddress('20 AVENUE DE SEGUR, 75007 PARIS');
});
const result = await buildCoordinateurData(formData, geoLocation, '75107');

// THEN
expect(result).toBe(JSON.stringify({
'siret': null,
'type': 'COMMUNE',
'aIdentifieCoordinateur': false,
'coordinateurTypeContrat': 'FT',
'dateDebutMission': '2023-12-12',
'motivation': 'je suis motivé !',
'confirmationEngagement': true,
'cf-turnstile-response': '1',
'contact': {
'prenom': 'Jean', 'nom': 'Dupont',
'fonction': 'Test', 'email':
'[email protected]',
'telephone': '+33123456789'
},
'nom': 'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES',
'ridet': '1234567',
'nomCommune': 'Paris 7e Arrondissement',
'codePostal': '75007',
'codeCommune': '75107',
'location': { 'type': 'Point', 'coordinates': [2.3115, 48.8548] },
'codeDepartement': '75',
'codeRegion': '11',
'codeCom': null,
}));

vi.useRealTimers();
});
it('quand je remplis le formulaire et qu’une erreur se produit alors un message d’erreur s’affiche et le captcha est rénitialisé', async () => {
// GIVEN
vi.useFakeTimers();
Expand Down
111 changes: 110 additions & 1 deletion src/views/candidature-structure/CandidatureStructure.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,7 @@ describe('candidature structure', () => {
vi.useRealTimers();
});

it('quand je valide le formulaire alors j’envoie toute les données nescessaires', async () => {
it('quand je valide le formulaire alors j’envoie toute les données nescessaires en renseignant un siret', async () => {
// GIVEN
const formData = [
[
Expand Down Expand Up @@ -557,6 +557,7 @@ describe('candidature structure', () => {
'telephone': '+33123456789'
},
'nom': 'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES',
'ridet': null,
'nomCommune': 'Paris 7e Arrondissement',
'codePostal': '75007',
'codeCommune': '75107',
Expand All @@ -567,7 +568,115 @@ describe('candidature structure', () => {

vi.useRealTimers();
});
it('quand je valide le formulaire alors j’envoie toute les données nescessaires en renseignant un ridet', async () => {
// GIVEN
const formData = [
[
'siret',
'1234567'
],
[
'denomination',
'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES'
],
[
'adresse',
'20 AVENUE DE SEGUR, 75007 PARIS'
],
[
'type',
'COMMUNE'
],
[
'prenom',
'Jean'
],
[
'nom',
'Dupont'
],
[
'fonction',
'Test'
],
[
'email',
'[email protected]'
],
[
'telephone',
'+33123456789'
],
[
'nombreConseillersSouhaites',
'1'
],
[
'aIdentifieCandidat',
'oui'
],
[
'dateDebutMission',
'2024-12-12'
],
[
'motivation',
'je suis motivé !'
],
[
'confirmationEngagement',
'on'
],
[
'g-recaptcha-response',
'1'
],
[
'cf-turnstile-response',
'1'
]
];

const { buildStructureData } = renderHook(() => useApiAdmin.useApiAdmin()).result.current;
const { getGeoLocationFromAddress } = renderHook(() => useEntrepriseFinder()).result.current;
let geoLocation;

// WHEN
await act(async () => {
geoLocation = await getGeoLocationFromAddress('20 AVENUE DE SEGUR, 75007 PARIS');
});
const result = await buildStructureData(formData, geoLocation, '75107');

// THEN
expect(result).toBe(JSON.stringify({
'siret': null,
'type': 'COMMUNE',
'nombreConseillersSouhaites': '1',
'aIdentifieCandidat': true,
'dateDebutMission': '2024-12-12',
'motivation': 'je suis motivé !',
'confirmationEngagement': true,
'cf-turnstile-response': '1',
'location': { 'type': 'Point', 'coordinates': [2.3115, 48.8548] },
'contact': {
'prenom': 'Jean',
'nom': 'Dupont',
'fonction': 'Test',
'email': '[email protected]',
'telephone': '+33123456789'
},
'nom': 'AGENCE NATIONALE DE LA COHESION DES TERRITOIRES',
'ridet': '1234567',
'nomCommune': 'Paris 7e Arrondissement',
'codePostal': '75007',
'codeCommune': '75107',
'codeDepartement': '75',
'codeRegion': '11',
'codeCom': null,
}));

vi.useRealTimers();
});
it('quand je candidate et qu’une erreur serveur survient, alors le message d’erreur s’affiche et le captcha est rénitialisé', async () => {
// GIVEN
vi.useFakeTimers();
Expand Down

0 comments on commit a7b2b8c

Please sign in to comment.