diff --git a/src/client/components/features/Alternance/Rechercher/RechercherAlternance.test.tsx b/src/client/components/features/Alternance/Rechercher/RechercherAlternance.test.tsx
index 3b546bde37..dddc722f8d 100644
--- a/src/client/components/features/Alternance/Rechercher/RechercherAlternance.test.tsx
+++ b/src/client/components/features/Alternance/Rechercher/RechercherAlternance.test.tsx
@@ -154,7 +154,9 @@ describe('RechercherAlternance', () => {
expect(messageResultats).toBeInTheDocument();
- const resultListOffre = await within(await screen.findByRole('list', { name: 'Offres d’alternances' })).findAllByTestId('RésultatRechercherSolution');
+ const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’alternances' });
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultListOffre = resultatsUl[0].children;
expect(resultListOffre).toHaveLength(alternanceFixture.length);
expect(await screen.findByText(alternanceFixture[0].titre)).toBeInTheDocument();
expect(await screen.findByText(alternanceFixture[1].titre)).toBeInTheDocument();
@@ -177,7 +179,9 @@ describe('RechercherAlternance', () => {
await user.click(onglet);
expect(onglet).toHaveAttribute('aria-selected', 'true');
- const resultListEntreprise = await within(await screen.findByRole('list', { name: 'Entreprises' })).findAllByTestId('RésultatRechercherSolution');
+ const resultatsUl = await screen.findAllByRole('list', { name: 'Entreprises' });
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultListEntreprise = resultatsUl[0].children;
expect(resultListEntreprise).toHaveLength(entrepriseFixture.length);
expect(await screen.findByText(entrepriseFixture[0].nom)).toBeVisible();
expect(await screen.findByText(entrepriseFixture[1].nom)).toBeVisible();
diff --git a/src/client/components/features/EmploisEurope/Rechercher/RechercherEmploisEurope.test.tsx b/src/client/components/features/EmploisEurope/Rechercher/RechercherEmploisEurope.test.tsx
index 59b5caabfd..ea6a0b65f8 100644
--- a/src/client/components/features/EmploisEurope/Rechercher/RechercherEmploisEurope.test.tsx
+++ b/src/client/components/features/EmploisEurope/Rechercher/RechercherEmploisEurope.test.tsx
@@ -77,7 +77,8 @@ describe('RechercherEmploisEurope', () => {
,
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
@@ -133,8 +134,8 @@ describe('RechercherEmploisEurope', () => {
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
-
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
@@ -181,8 +182,8 @@ describe('RechercherEmploisEurope', () => {
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
-
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
@@ -229,8 +230,8 @@ describe('RechercherEmploisEurope', () => {
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
-
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
@@ -367,7 +368,8 @@ describe('RechercherEmploisEurope', () => {
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
@@ -508,7 +510,8 @@ describe('RechercherEmploisEurope', () => {
,
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d’emplois en Europe' });
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatsService.offreList.length);
diff --git a/src/client/components/features/Engagement/Rechercher/RechercherMission.test.tsx b/src/client/components/features/Engagement/Rechercher/RechercherMission.test.tsx
index b12d0221b7..49a241a43b 100644
--- a/src/client/components/features/Engagement/Rechercher/RechercherMission.test.tsx
+++ b/src/client/components/features/Engagement/Rechercher/RechercherMission.test.tsx
@@ -71,7 +71,9 @@ describe('RechercherMission', () => {
);
expect(await screen.findByText('2 missions de service civique pour Culture et Loisirs')).toBeInTheDocument();
- expect(await screen.findAllByTestId('RésultatRechercherSolution')).toHaveLength(2);
+ const resultatsUl = await screen.findAllByRole('list', { name: /Offre pour/ });
+ // eslint-disable-next-line testing-library/no-node-access
+ expect(resultatsUl[0].children).toHaveLength(2);
expect(missionEngagementServiceMock.rechercherMission).toHaveBeenCalledWith(expect.objectContaining({
domain: 'culture-loisirs',
page: '1',
@@ -123,7 +125,8 @@ describe('RechercherMission', () => {
expect(screen.getByRole('option', { name: '30 km' })).toBeInTheDocument();
expect(await screen.findByText('2 missions de service civique')).toBeInTheDocument();
- expect(await screen.findAllByTestId('RésultatRechercherSolution')).toHaveLength(2);
+ // eslint-disable-next-line testing-library/no-node-access
+ expect((await screen.findAllByRole('list', { name: /Offre pour/ }))[0].children).toHaveLength(2);
expect(missionEngagementServiceMock.rechercherMission).toHaveBeenCalledWith({
distanceCommune: '30',
page: '1',
@@ -149,7 +152,8 @@ describe('RechercherMission', () => {
);
expect(await screen.findByText('2 missions de bénévolat pour Environnement')).toBeInTheDocument();
- expect(await screen.findAllByTestId('RésultatRechercherSolution')).toHaveLength(2);
+ // eslint-disable-next-line testing-library/no-node-access
+ expect((await screen.findAllByRole('list', { name: /Offre pour/ }))[0].children).toHaveLength(2);
expect(missionEngagementServiceMock.rechercherMission).toHaveBeenCalledWith({
domain: 'environnement',
page: '1',
@@ -202,7 +206,8 @@ describe('RechercherMission', () => {
expect(screen.getByRole('option', { name: '100 km' })).toBeInTheDocument();
expect(await screen.findByText('2 missions de bénévolat')).toBeInTheDocument();
- expect(await screen.findAllByTestId('RésultatRechercherSolution')).toHaveLength(2);
+ // eslint-disable-next-line testing-library/no-node-access
+ expect((await screen.findAllByRole('list', { name: /Offre pour/ }))[0].children).toHaveLength(2);
expect(missionEngagementServiceMock.rechercherMission).toHaveBeenCalledWith({
distanceCommune: '100',
page: '1',
diff --git a/src/client/components/features/JobEte/Rechercher/RechercherJobEte.test.tsx b/src/client/components/features/JobEte/Rechercher/RechercherJobEte.test.tsx
index c2fbb4da92..8abdff8a89 100644
--- a/src/client/components/features/JobEte/Rechercher/RechercherJobEte.test.tsx
+++ b/src/client/components/features/JobEte/Rechercher/RechercherJobEte.test.tsx
@@ -173,11 +173,12 @@ describe('RechercherJobEte', () => {
);
// WHEN
- const résultatRechercheOffreEmploiList = await screen.findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultatRechercheOffreEmploiList = (await screen.findAllByRole('list', { name: 'Offres de jobs d’été' }))[0].children;
const rechercheOffreEmploiNombreRésultats = await screen.findByText('3 offres de jobs d’été pour boulanger');
// THEN
- expect(résultatRechercheOffreEmploiList).toHaveLength(3);
+ expect(resultatRechercheOffreEmploiList).toHaveLength(3);
expect(rechercheOffreEmploiNombreRésultats).toBeInTheDocument();
expect(offreServiceMock.rechercherJobEte).toHaveBeenCalledWith({ motCle: 'boulanger', page: '1' });
});
diff --git "a/src/client/components/features/Job\303\211tudiant/Rechercher/RechercherJob\303\211tudiant.test.tsx" "b/src/client/components/features/Job\303\211tudiant/Rechercher/RechercherJob\303\211tudiant.test.tsx"
index 92ee81a8fd..42c9a8d86d 100644
--- "a/src/client/components/features/Job\303\211tudiant/Rechercher/RechercherJob\303\211tudiant.test.tsx"
+++ "b/src/client/components/features/Job\303\211tudiant/Rechercher/RechercherJob\303\211tudiant.test.tsx"
@@ -173,11 +173,13 @@ describe('RechercherJobÉtudiant', () => {
);
// WHEN
- const résultatRechercheOffreEmploiList = await screen.findAllByTestId('RésultatRechercherSolution');
+ const resultatsUl = await screen.findAllByRole('list', { name: 'Offres de jobs étudiants' });
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultatRechercheOffreEmploiList = resultatsUl[0].children;
const rechercheOffreEmploiNombreRésultats = await screen.findByText('3 offres de jobs étudiants pour boulanger');
// THEN
- expect(résultatRechercheOffreEmploiList).toHaveLength(3);
+ expect(resultatRechercheOffreEmploiList).toHaveLength(3);
expect(rechercheOffreEmploiNombreRésultats).toBeInTheDocument();
expect(offreServiceMock.rechercherJobÉtudiant).toHaveBeenCalledWith({ motCle: 'boulanger', page: '1' });
});
diff --git a/src/client/components/features/OffreEmploi/Rechercher/RechercherOffreEmploi.test.tsx b/src/client/components/features/OffreEmploi/Rechercher/RechercherOffreEmploi.test.tsx
index b61352c1db..263d240d76 100644
--- a/src/client/components/features/OffreEmploi/Rechercher/RechercherOffreEmploi.test.tsx
+++ b/src/client/components/features/OffreEmploi/Rechercher/RechercherOffreEmploi.test.tsx
@@ -158,11 +158,13 @@ describe('RechercherOffreEmploi', () => {
);
// WHEN
- const résultatRechercheOffreEmploiList = await screen.findAllByTestId('RésultatRechercherSolution');
+ const resultatsUl = await screen.findAllByRole('list', { name: 'Offres d‘emplois' });
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultatRechercheOffreEmploiList = resultatsUl[0].children;
const rechercheOffreEmploiNombreRésultats = await screen.findByText('3 offres d‘emplois pour boulanger');
// THEN
- expect(résultatRechercheOffreEmploiList).toHaveLength(3);
+ expect(resultatRechercheOffreEmploiList).toHaveLength(3);
expect(rechercheOffreEmploiNombreRésultats).toBeInTheDocument();
});
});
diff --git a/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.test.tsx b/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.test.tsx
index 8e1ca65882..b7f713d8a3 100644
--- a/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.test.tsx
+++ b/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.test.tsx
@@ -2,7 +2,7 @@
* @jest-environment jsdom
*/
-import { render, screen, within } from '@testing-library/react';
+import { render, screen } from '@testing-library/react';
import { mockUseRouter } from '~/client/components/useRouter.mock';
import { mockSmallScreen } from '~/client/components/window.mock';
@@ -34,8 +34,8 @@ describe('La recherche des stages de 3ème', () => {
expect(titre).toBeVisible();
});
});
- describe('quand le composant est affiché pour une recherche avec résultats', () => {
- it('affiche les résultats de la recherche', async () => {
+ describe('quand le composant est affiché pour une recherche avec 1 résultat', () => {
+ it('affiche le résultat de la recherche', async () => {
// GIVEN
mockSmallScreen();
mockUseRouter({ query: { location: 'here' } });
@@ -62,7 +62,8 @@ describe('La recherche des stages de 3ème', () => {
);
const resultatsUl = await screen.findAllByRole('list', { name: 'Stages de 3ème' });
- const resultats = await within(resultatsUl[0]).findAllByTestId('RésultatRechercherSolution');
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
// THEN
expect(resultats).toHaveLength(resultatRecherche.nombreDeResultats);
@@ -72,4 +73,57 @@ describe('La recherche des stages de 3ème', () => {
expect(resultats[0]).toHaveTextContent('75000 Paris');
});
});
+ describe('quand le composant est affiché pour une recherche avec plusieurs résultats', () => {
+ it('affiche le résultat de la recherche', async () => {
+ // GIVEN
+ mockSmallScreen();
+ mockUseRouter({ query: { location: 'here' } });
+ const stage3emeServiceMock = aStage3emeService();
+ const resultatRecherche = aResultatRechercheStage3eme({
+ nombreDeResultats: 2,
+ resultats: [
+ {
+ adresse: {
+ codeDepartement: '75',
+ codePostal: '75000',
+ ligne: '1 rue de la Paix',
+ ville: 'Paris',
+ },
+ domaine: 'Informatique',
+ nomEntreprise: 'Entreprise 1',
+ },
+ {
+ adresse: {
+ codeDepartement: '75',
+ codePostal: '75000',
+ ligne: '2 rue de la Paix',
+ ville: 'Paris',
+ },
+ domaine: 'Informatique',
+ nomEntreprise: 'Entreprise 2',
+ },
+ ],
+ });
+ jest.spyOn(stage3emeServiceMock, 'rechercherStage3eme').mockResolvedValue(createSuccess(resultatRecherche));
+
+ // WHEN
+ render(
+
+ );
+ const resultatsUl = await screen.findAllByRole('list', { name: 'Stages de 3ème' });
+ // eslint-disable-next-line testing-library/no-node-access
+ const resultats = resultatsUl[0].children;
+
+ // THEN
+ expect(resultats).toHaveLength(resultatRecherche.nombreDeResultats);
+ expect(resultats[0]).toHaveTextContent('Entreprise 1');
+ expect(resultats[0]).toHaveTextContent('Informatique');
+ expect(resultats[0]).toHaveTextContent('1 rue de la Paix');
+ expect(resultats[0]).toHaveTextContent('75000 Paris');
+ expect(resultats[1]).toHaveTextContent('Entreprise 2');
+ expect(resultats[1]).toHaveTextContent('Informatique');
+ expect(resultats[1]).toHaveTextContent('2 rue de la Paix');
+ expect(resultats[1]).toHaveTextContent('75000 Paris');
+ });
+ });
});
diff --git a/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.tsx b/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.tsx
index 8aba6e9fd1..55c291106f 100644
--- a/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.tsx
+++ b/src/client/components/features/Stages3eme/Rechercher/RechercherStages3eme.tsx
@@ -12,6 +12,7 @@ import { LightHero, LightHeroPrimaryText, LightHeroSecondaryText } from '~/clien
import { useDependency } from '~/client/context/dependenciesContainer.context';
import { Stage3emeService } from '~/client/services/stage3eme/stage3eme.service';
import { formatRechercherSolutionDocumentTitle } from '~/client/utils/formatRechercherSolutionDocumentTitle.util';
+import { isSuccess } from '~/server/errors/either';
import { Erreur } from '~/server/errors/erreur.types';
import { ResultatRechercheStage3eme } from '~/server/stage-3eme/domain/stage3eme';
@@ -31,7 +32,7 @@ export default function RechercherStages3eme() {
stage3emeService.rechercherStage3eme()
.then((response) => {
- if (response.instance === 'success') {
+ if (isSuccess(response)) {
setTitle(formatRechercherSolutionDocumentTitle(`${PREFIX_TITRE_PAGE}${response.result.nombreDeResultats === 0 ? ' - Aucun résultat' : ''}`));
setStage3emeList(response.result);
} else {