Skip to content

Commit

Permalink
fix(stages): renforcement du check sur les domaines
Browse files Browse the repository at this point in the history
  • Loading branch information
SEFR authored and Sefrancois committed Feb 28, 2023
1 parent db705cd commit 7242478
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import {
convertirDansLaBonneUniteTemporelle,
creerFiltreSurLaDuree,
transformerLaLocalisation,
transformerLesDomaines,
transformerOffreDeStage
} from "./offre-de-stage.transformation";
import { Meilisearch, Strapi } from "./offre-de-stage.type";
import { uneOffreDeStageMeilisearch, uneOffreDeStageStrapi } from './offre-de-stage.fixture';
import { uneOffreDeStageMeilisearch, uneOffreDeStageStrapi } from "./offre-de-stage.fixture";

describe("OffreDeStageTransformationTest", () => {
context("Lorsque je souhaite ajouter une catégorie de filtre sur la durée du stage", () => {
Expand Down Expand Up @@ -248,6 +249,61 @@ describe("OffreDeStageTransformationTest", () => {
});
});

context("Lorsque je transforme le domaine", () => {
context("et que le nom n'est pas défini dans les domaines", () => {
it("retourne un tableau vide", () => {
// Given
const offreDeStageStrapi = uneOffreDeStageStrapi({
domaines: [
{ nom: undefined },
{ nom: null },
],
});

// When
const actual = transformerLesDomaines(offreDeStageStrapi);

// Then
assert.deepEqual(actual, []);
});
});

context("et que le nom est défini", () => {
it("retourne un tableau avec les domaines", () => {
// Given
const offreDeStageStrapi = uneOffreDeStageStrapi({
domaines: [
{ nom: Strapi.OffreDeStage.Domaine.Nom.ACHATS },
],
});

// When
const actual = transformerLesDomaines(offreDeStageStrapi);

// Then
assert.deepEqual(actual, ["achats"]);
});
});

context("et que les noms sont parfois définis et parfois non", () => {
it("retourne un tableau avec seulement les domaines définis", () => {
// Given
const offreDeStageStrapi = uneOffreDeStageStrapi({
domaines: [
{ nom: Strapi.OffreDeStage.Domaine.Nom.ACHATS },
{ nom: undefined },
],
});

// When
const actual = transformerLesDomaines(offreDeStageStrapi);

// Then
assert.deepEqual(actual, ["achats"]);
});
});
});

context("Lorsque je transforme une offre de stage", () => {
it("retourne une offre de stage", () => {
// Given
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,13 @@ export function transformerLaLocalisation(localisation: Strapi.OffreDeStage.Loca
};
}

export function transformerLesDomaines(entry: Strapi.OffreDeStage): Array<string> {
return entry.domaines
?.filter((domaine) => domaine.nom !== undefined && domaine.nom !== null)
?.filter((domaine) => domaine.nom.length > 0)
?.map((domaine) => domaine.nom);
}

export function transformerOffreDeStage({ entry }: { entry: Strapi.OffreDeStage }): Meilisearch.OffreDeStage {
return {
id: entry.id,
Expand All @@ -65,7 +72,7 @@ export function transformerOffreDeStage({ entry }: { entry: Strapi.OffreDeStage
teletravailPossible: entry.teletravailPossible,
titre: entry.titre,
duree: convertirDansLaBonneUniteTemporelle(entry.dureeEnJour),
domaines: entry.domaines?.map((domaine) => domaine.nom) || [],
domaines: transformerLesDomaines(entry) || [],
nomEmployeur: entry.employeur.nom,
logoUrlEmployeur: entry.employeur.logoUrl,
niveauEtude: entry.preRequis?.niveauEtude,
Expand Down

0 comments on commit 7242478

Please sign in to comment.