Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(campagne): met à jour la campagne de stages pour 2025 #3566

Merged
merged 1 commit into from
Jan 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading