Skip to content

Commit

Permalink
fix: retour review
Browse files Browse the repository at this point in the history
  • Loading branch information
Naorid committed Nov 27, 2023
1 parent fb1aa42 commit ed0791d
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ describe('RechercherEmploisEurope', () => {
</DependenciesProvider>,
);
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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -508,7 +510,8 @@ describe('RechercherEmploisEurope', () => {
</DependenciesProvider>,
);
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down Expand Up @@ -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',
Expand All @@ -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',
Expand Down Expand Up @@ -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',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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' });
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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' });
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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' } });
Expand All @@ -62,7 +62,8 @@ describe('La recherche des stages de 3ème', () => {
<RechercherStages3eme/>
</DependenciesProvider>);
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);
Expand All @@ -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(<DependenciesProvider stage3emeService={stage3emeServiceMock}>
<RechercherStages3eme/>
</DependenciesProvider>);
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');
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -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';

Expand All @@ -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 {
Expand Down

0 comments on commit ed0791d

Please sign in to comment.