From c5af5cd788c65708a31d7cbdfbc359c4565e478b Mon Sep 17 00:00:00 2001 From: lulu Date: Wed, 1 Jul 2026 21:52:45 -0500 Subject: [PATCH 1/2] fix apply button enabled when mentor registration is closed --- src/components/LinkButton.tsx | 3 +++ src/components/MentorProfileCard.tsx | 2 ++ ...fileCard.tsx => MentorsProfileCard.test.tsx} | 17 +++++++++++++++++ 3 files changed, 22 insertions(+) rename src/components/__tests__/{MentorsProfileCard.tsx => MentorsProfileCard.test.tsx} (87%) diff --git a/src/components/LinkButton.tsx b/src/components/LinkButton.tsx index ed2ef47e..759c1d2b 100644 --- a/src/components/LinkButton.tsx +++ b/src/components/LinkButton.tsx @@ -8,6 +8,7 @@ type LinkButtonProps = { small?: boolean; children: React.ReactNode; 'data-testid'?: string; + disabled?: boolean; }; export const LinkButton = ({ @@ -16,6 +17,7 @@ export const LinkButton = ({ small, children, 'data-testid': dataTestId, + disabled = false, }: LinkButtonProps) => { const isExternal = href.startsWith('https'); @@ -59,6 +61,7 @@ export const LinkButton = ({ fontSize: small ? '0.8rem' : '1rem', padding: small ? '7px 16px' : '10px 32px', }} + disabled={disabled} > {children} diff --git a/src/components/MentorProfileCard.tsx b/src/components/MentorProfileCard.tsx index 1099d17d..97052d57 100644 --- a/src/components/MentorProfileCard.tsx +++ b/src/components/MentorProfileCard.tsx @@ -10,6 +10,7 @@ import React, { useState } from 'react'; import { LinkButton } from '@components'; import { useIsMobile } from '@utils/theme-utils'; import { Mentor, Network } from '@utils/types'; +import { IS_REGISTRATION_OPEN } from 'utils/mentorshipConstants'; type MentorProfileCardProps = { mentor: Mentor; @@ -130,6 +131,7 @@ export const MentorProfileCard: React.FC = ({ href={`/mentorship/mentee-registration?id=${mentor.id}`} reversed small + disabled={!IS_REGISTRATION_OPEN} > Apply for this mentor{' '} diff --git a/src/components/__tests__/MentorsProfileCard.tsx b/src/components/__tests__/MentorsProfileCard.test.tsx similarity index 87% rename from src/components/__tests__/MentorsProfileCard.tsx rename to src/components/__tests__/MentorsProfileCard.test.tsx index 8f3af7b2..59a1b9d5 100644 --- a/src/components/__tests__/MentorsProfileCard.tsx +++ b/src/components/__tests__/MentorsProfileCard.test.tsx @@ -70,6 +70,16 @@ const mockMentor: Mentor = { }, }; +// Mutable flag so individual tests can override the registration state +let mockIsRegistrationOpen = false; + +jest.mock('../../utils/mentorshipConstants', () => ({ + ...jest.requireActual('../../utils/mentorshipConstants'), + get IS_REGISTRATION_OPEN() { + return mockIsRegistrationOpen; + }, +})); + describe('MentorProfileCard', () => { it('renders mentor basic info', () => { render(); @@ -121,4 +131,11 @@ describe('MentorProfileCard', () => { screen.getByRole('link', { name: /Apply for this mentor/i }), ).toBeInTheDocument(); }); + + it('disables the Apply for this mentor button when registration is closed', () => { + render(); + expect( + screen.getByRole('link', { name: /Apply for this mentor/i }), + ).toBeDisabled; + }); }); From 7afb223f4bf5783ace4bef4b6ae9da8b58caea74 Mon Sep 17 00:00:00 2001 From: lulu Date: Wed, 1 Jul 2026 21:54:15 -0500 Subject: [PATCH 2/2] fix code styles --- playwright-tests/tests/becomeAMentee.page.spec.ts | 6 ++++-- src/components/__tests__/MentorsProfileCard.test.tsx | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/playwright-tests/tests/becomeAMentee.page.spec.ts b/playwright-tests/tests/becomeAMentee.page.spec.ts index 71d32bc0..b033db42 100644 --- a/playwright-tests/tests/becomeAMentee.page.spec.ts +++ b/playwright-tests/tests/becomeAMentee.page.spec.ts @@ -4,7 +4,9 @@ import { HomePage } from '@pages/home.page'; import { MentorshipPage } from '@pages/mentorship.page'; test('Validate "Become a Mentee" section and Find a Mentor button', async ({ - page, mentorshipPage, homePage + page, + mentorshipPage, + homePage, }) => { // Navigate to Mentorship page await page.goto('/mentorship'); @@ -22,7 +24,7 @@ test('Validate "Become a Mentee" section and Find a Mentor button', async ({ ]; await expect(mentorshipPage.menteeListItems).toHaveText(items); - + await homePage.findMentorButton.click(); await expect(page).toHaveURL(/\/mentorship\/mentors/); }); diff --git a/src/components/__tests__/MentorsProfileCard.test.tsx b/src/components/__tests__/MentorsProfileCard.test.tsx index 59a1b9d5..76f27621 100644 --- a/src/components/__tests__/MentorsProfileCard.test.tsx +++ b/src/components/__tests__/MentorsProfileCard.test.tsx @@ -134,8 +134,7 @@ describe('MentorProfileCard', () => { it('disables the Apply for this mentor button when registration is closed', () => { render(); - expect( - screen.getByRole('link', { name: /Apply for this mentor/i }), - ).toBeDisabled; + expect(screen.getByRole('link', { name: /Apply for this mentor/i })) + .toBeDisabled; }); });