Skip to content

Commit

Permalink
feat(campagne): met à jour la campagne de stages pour 2025
Browse files Browse the repository at this point in the history
  • Loading branch information
sokl-octo committed Jan 24, 2025
1 parent ef612f4 commit 90ab15f
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 30 deletions.
1 change: 1 addition & 0 deletions .env.test
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ NEXT_PUBLIC_EMPLOIS_EUROPE_FEATURE=1
NEXT_PUBLIC_STAGES_3EME_FEATURE=1
NEXT_PUBLIC_STAGES_SECONDE_FEATURE=1
NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE=1
NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_JEUNE_FEATURE=1
NEXT_PUBLIC_ANALYTICS_MATOMO_TAG_MANAGER_FEATURE=0
NEXT_PUBLIC_OLD_ESPACE_JEUNE_FEATURE=1
NEXT_PUBLIC_WORLD_SKILLS_FEATURE=0
Expand Down
Binary file modified public/images/stages-seconde/banniere-stages-seconde.webp
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import { Link } from '~/client/components/ui/Link/Link';

import styles from './CampagneBanner.module.scss';

export const ENCART_CAMPAGNE_URL = 'https://www.1jeune1solution.gouv.fr/articles/programme-competition-mondiale-des-metiers-world-skills-lyon-2024';
const TITRE = 'Retrouvez le programme de la 47e édition des WorldSkills Lyon 2024';
//const SOUS_TITRE = 'Faites la différence et déposez facilement une offre de stage.';

const isCampagneJeuneActive = process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_JEUNE_FEATURE === '1';

const ENCART_CAMPAGNE_URL = process.env.NEXT_PUBLIC_STAGES_SECONDE_URL ?? '';
const TITRE = 'Proposer un stage' + (isCampagneJeuneActive ? ' ou candidater !' : ' !');
const SOUS_TITRE = 'Du 16 au 27 juin pour permettre aux élèves de seconde générale et technologique de diversifier leur connaissance des métiers.';

export function CampagneBannerMobile() {
const displayCampagneEnCoursBanner = process.env.NEXT_PUBLIC_CAMPAGNE_COM_EN_COURS_FEATURE === '1';
Expand All @@ -25,7 +28,7 @@ export function CampagneBannerDesktop() {
<Link href={ENCART_CAMPAGNE_URL} className={styles.headerBannerDektop} data-testid="desktop-encart-campagne">
<p>
<span className={styles.title}>{TITRE}</span>
{/*<span className={styles.content}>{SOUS_TITRE}</span>*/}
<span className={styles.content}>{SOUS_TITRE}</span>
</p>
<Link.Icon className={styles.icon} name="angle-right" />
</Link>
Expand Down
1 change: 0 additions & 1 deletion src/pages/index.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ $color-background-world-skills: #2E1651;

img {
object-fit: cover;
object-position: 90% 0;
display: none;

@include utilities.media(xlarge) {
Expand Down
67 changes: 47 additions & 20 deletions src/pages/index.page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -92,26 +92,53 @@ describe('Page d’accueil', () => {
});
describe('quand le feature flip des stages seconde est actif', () => {
describe('quand le feature flip de la recherche de stages de seconde est actif', () => {
it('la bannière contient les wording de la campagne du 25 mars 2024', () => {
// GIVEN
const fakeUrlVoirStageSeconde = 'https://url-voir-offres-de-stages-de-seconde.fr';
process.env.NEXT_PUBLIC_STAGES_SECONDE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_HOMEPAGE_URL = fakeUrlVoirStageSeconde;

// WHEN
render(
<DependenciesProvider analyticsService={analyticsService}>
<Accueil actualites={anActualiteList()} />
</DependenciesProvider>,
);

// THEN
const headingStage2nd = screen.getByRole('heading', { level: 2, name: 'Un stage du 17 au 28 juin 2024' });
expect(headingStage2nd).toBeVisible();
const voirStageSecondeButton = screen.getByRole('link', { name: 'Proposer un stage ou candidater - nouvelle fenêtre' });
expect(voirStageSecondeButton).toBeVisible();
expect(voirStageSecondeButton).toHaveAttribute('href', fakeUrlVoirStageSeconde);
describe('quand la campagne employeur a démarré mais pas la campagne jeune', () => {
it('la bannière contient les wording de la campagne employeur 2025', () => {
// GIVEN
const fakeUrlVoirStageSeconde = 'https://url-voir-offres-de-stages-de-seconde.fr';
process.env.NEXT_PUBLIC_STAGES_SECONDE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_JEUNE_FEATURE = '0';
process.env.NEXT_PUBLIC_STAGES_SECONDE_HOMEPAGE_URL = fakeUrlVoirStageSeconde;

// WHEN
render(
<DependenciesProvider analyticsService={analyticsService}>
<Accueil actualites={anActualiteList()} />
</DependenciesProvider>,
);

// THEN
const headingStage2nd = screen.getByRole('heading', { level: 2, name: 'Un stage du 16 au 27 juin 2025' });
expect(headingStage2nd).toBeVisible();
const voirStageSecondeButton = screen.getByRole('link', { name: 'Proposer un stage - nouvelle fenêtre' });
expect(voirStageSecondeButton).toBeVisible();
expect(voirStageSecondeButton).toHaveAttribute('href', fakeUrlVoirStageSeconde);
});
});
describe('quand les campagnes jeunes et employeurs ont démarré', () => {
it('la bannière contient les wording de la campagne employeur 2025', () => {
// GIVEN
const fakeUrlVoirStageSeconde = 'https://url-voir-offres-de-stages-de-seconde.fr';
process.env.NEXT_PUBLIC_STAGES_SECONDE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_JEUNE_FEATURE = '1';
process.env.NEXT_PUBLIC_STAGES_SECONDE_HOMEPAGE_URL = fakeUrlVoirStageSeconde;

// WHEN
render(
<DependenciesProvider analyticsService={analyticsService}>
<Accueil actualites={anActualiteList()} />
</DependenciesProvider>,
);

// THEN
const headingStage2nd = screen.getByRole('heading', { level: 2, name: 'Un stage du 16 au 27 juin 2025' });
expect(headingStage2nd).toBeVisible();
const voirStageSecondeButton = screen.getByRole('link', { name: 'Proposer un stage ou candidater - nouvelle fenêtre' });
expect(voirStageSecondeButton).toBeVisible();
expect(voirStageSecondeButton).toHaveAttribute('href', fakeUrlVoirStageSeconde);
});
});
});

Expand Down
11 changes: 6 additions & 5 deletions src/pages/index.page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ export default function Accueil(accueilProps: AccueilPageProps) {
const is1Jeune1PermisVisible = process.env.NEXT_PUBLIC_1JEUNE1PERMIS_FEATURE === '1';

const isBanniereStagesSecondeVisible = process.env.NEXT_PUBLIC_STAGES_SECONDE_FEATURE === '1';
const isBanniereStagesSecondePourCampagneDu25Mars = process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE === '1';
const isBanniereStagesSecondePourCampagne2025 = process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_FEATURE === '1';
const isBanniereStagesSecondePourCampagne2025Jeune = process.env.NEXT_PUBLIC_STAGES_SECONDE_RECHERCHE_JEUNE_FEATURE === '1';
const urlDepotOffreStagesSeconde = process.env.NEXT_PUBLIC_DEPOT_STAGES_SECONDE_URL ?? '';
const urlHomePageStageDeSeconde = process.env.NEXT_PUBLIC_STAGES_SECONDE_HOMEPAGE_URL ?? '';

Expand Down Expand Up @@ -275,21 +276,21 @@ export default function Accueil(accueilProps: AccueilPageProps) {

{isBanniereStagesSecondeVisible
&& (
<HeroWithIllustration image="/images/stages-seconde/banniere-stages-seconde.webp"
<HeroWithIllustration image="/images/stages-seconde/banniere-stages-seconde-3.webp"
className={classNames(styles.hero, styles.stageSecondeBanner)}>
{isBanniereStagesSecondePourCampagneDu25Mars ? (
{isBanniereStagesSecondePourCampagne2025 ? (
<>
<h2>
<HeroPrimaryText className={styles.heroTitle}>
Un stage du 17 au 28 juin 2024
Un stage du 16 au 27 juin 2025
</HeroPrimaryText>
</h2>
<HeroSecondaryText>
pour permettre aux élèves de seconde générale et technologique de diversifier leur connaissance des
métiers.
</HeroSecondaryText>
<Link href={urlHomePageStageDeSeconde} appearance={'asSecondaryButton'} className={styles.heroButton}>
Proposer un stage ou candidater
Proposer un stage {isBanniereStagesSecondePourCampagne2025Jeune && ' ou candidater'}
<Link.Icon />
</Link>
</>
Expand Down

0 comments on commit 90ab15f

Please sign in to comment.