Add test IDs to Mohamed Salah's profile information
Add data-testid attributes to various elements in the `MohamedSalahSlides` component for improved testability. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9a264234-c5d7-4dcc-adf3-a954b149b30d Replit-Commit-Checkpoint-Type: intermediate_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/3df548ff-50ae-432f-9be4-25d34eccc983/9a264234-c5d7-4dcc-adf3-a954b149b30d/Dz9Aeoe
This commit is contained in:
@ -42,20 +42,20 @@ function MohamedSalahSlides() {
|
|||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="grid grid-cols-2 gap-6">
|
<div className="grid grid-cols-2 gap-6">
|
||||||
<div>
|
<div data-testid="info-born">
|
||||||
<p className="text-sm text-gray-500 mb-1">Born</p>
|
<p className="text-sm text-gray-500 mb-1" data-testid="label-born">Born</p>
|
||||||
<p className="text-lg font-semibold">June 15, 1992</p>
|
<p className="text-lg font-semibold" data-testid="text-birth-date">June 15, 1992</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="info-birthplace">
|
||||||
<p className="text-sm text-gray-500 mb-1">Birthplace</p>
|
<p className="text-sm text-gray-500 mb-1" data-testid="label-birthplace">Birthplace</p>
|
||||||
<p className="text-lg font-semibold">Nagrig, Basyoun, Egypt</p>
|
<p className="text-lg font-semibold" data-testid="text-birthplace">Nagrig, Basyoun, Egypt</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="info-fullname">
|
||||||
<p className="text-sm text-gray-500 mb-1">Full Name</p>
|
<p className="text-sm text-gray-500 mb-1" data-testid="label-fullname">Full Name</p>
|
||||||
<p className="text-lg font-semibold">Mohamed Salah Hamed Mahrous Ghaly</p>
|
<p className="text-lg font-semibold" data-testid="text-fullname">Mohamed Salah Hamed Mahrous Ghaly</p>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-gray-700 mt-4">
|
<p className="text-gray-700 mt-4" data-testid="text-early-life-description">
|
||||||
Born to a middle-class Egyptian family in a small farming village north of Cairo, Mohamed Salah grew up in modest surroundings that gave no indication of the football stardom that awaited him.
|
Born to a middle-class Egyptian family in a small farming village north of Cairo, Mohamed Salah grew up in modest surroundings that gave no indication of the football stardom that awaited him.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@ -65,12 +65,12 @@ function MohamedSalahSlides() {
|
|||||||
title: "Education & Early Football Training",
|
title: "Education & Early Football Training",
|
||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="bg-yellow-50 p-4 rounded-lg">
|
<div className="bg-yellow-50 p-4 rounded-lg" data-testid="section-extraordinary-commute">
|
||||||
<h3 className="font-semibold mb-2">Extraordinary Commute</h3>
|
<h3 className="font-semibold mb-2" data-testid="heading-commute">Extraordinary Commute</h3>
|
||||||
<p className="text-gray-700 mb-3">
|
<p className="text-gray-700 mb-3" data-testid="text-commute-description">
|
||||||
At age 14, Salah made a 4.5-hour journey (each way) five days a week from his village to train with El Mokawloon in Cairo.
|
At age 14, Salah made a 4.5-hour journey (each way) five days a week from his village to train with El Mokawloon in Cairo.
|
||||||
</p>
|
</p>
|
||||||
<blockquote className="italic border-l-4 border-yellow-400 pl-3 text-gray-600 text-sm">
|
<blockquote className="italic border-l-4 border-yellow-400 pl-3 text-gray-600 text-sm" data-testid="quote-school-miss">
|
||||||
"I missed quite a lot of school because it was the only way that I could get to training on time..."
|
"I missed quite a lot of school because it was the only way that I could get to training on time..."
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</div>
|
</div>
|
||||||
@ -81,17 +81,17 @@ function MohamedSalahSlides() {
|
|||||||
title: "European Career Progression",
|
title: "European Career Progression",
|
||||||
content: (
|
content: (
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<div className="border-l-4 border-blue-500 pl-4">
|
<div className="border-l-4 border-blue-500 pl-4" data-testid="career-basel">
|
||||||
<h3 className="font-semibold">FC Basel (2012-2014)</h3>
|
<h3 className="font-semibold" data-testid="heading-basel">FC Basel (2012-2014)</h3>
|
||||||
<p className="text-sm text-gray-600">79 Games | 20 Goals | Swiss Golden Player award</p>
|
<p className="text-sm text-gray-600" data-testid="text-basel-stats">79 Games | 20 Goals | Swiss Golden Player award</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="border-l-4 border-blue-700 pl-4">
|
<div className="border-l-4 border-blue-700 pl-4" data-testid="career-chelsea">
|
||||||
<h3 className="font-semibold">Chelsea FC (2014-2015)</h3>
|
<h3 className="font-semibold" data-testid="heading-chelsea">Chelsea FC (2014-2015)</h3>
|
||||||
<p className="text-sm text-gray-600">19 Games | 2 Goals | Limited opportunities</p>
|
<p className="text-sm text-gray-600" data-testid="text-chelsea-stats">19 Games | 2 Goals | Limited opportunities</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="border-l-4 border-purple-600 pl-4">
|
<div className="border-l-4 border-purple-600 pl-4" data-testid="career-roma">
|
||||||
<h3 className="font-semibold">AS Roma (2015-2017)</h3>
|
<h3 className="font-semibold" data-testid="heading-roma">AS Roma (2015-2017)</h3>
|
||||||
<p className="text-sm text-gray-600">83 Games | 34 Goals | Roma Player of the Year 2016</p>
|
<p className="text-sm text-gray-600" data-testid="text-roma-stats">83 Games | 34 Goals | Roma Player of the Year 2016</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -101,21 +101,22 @@ function MohamedSalahSlides() {
|
|||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="grid grid-cols-2 gap-4">
|
<div className="grid grid-cols-2 gap-4">
|
||||||
<div className="bg-red-50 p-4 rounded-lg text-center">
|
<div className="bg-red-50 p-4 rounded-lg text-center" data-testid="stat-liverpool-goals">
|
||||||
<div className="text-3xl font-bold text-red-600">186</div>
|
<div className="text-3xl font-bold text-red-600" data-testid="text-liverpool-goals-number">180+</div>
|
||||||
<div className="text-sm text-gray-600">Premier League goals</div>
|
<div className="text-sm text-gray-600" data-testid="text-liverpool-goals-label">Liverpool PL era goals</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-red-50 p-4 rounded-lg text-center">
|
<div className="bg-red-50 p-4 rounded-lg text-center" data-testid="stat-season-record">
|
||||||
<div className="text-3xl font-bold text-red-600">32</div>
|
<div className="text-3xl font-bold text-red-600" data-testid="text-season-record-number">32</div>
|
||||||
<div className="text-sm text-gray-600">Goals in 38-game PL season (record)</div>
|
<div className="text-sm text-gray-600" data-testid="text-season-record-label">Goals in single PL season (2017-18 record)</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-4">
|
<div className="mt-4">
|
||||||
<h3 className="font-semibold mb-2">Major Honours</h3>
|
<h3 className="font-semibold mb-2" data-testid="heading-major-honours">Major Honours</h3>
|
||||||
<ul className="list-disc list-inside text-sm space-y-1 text-gray-700">
|
<ul className="list-disc list-inside text-sm space-y-1 text-gray-700">
|
||||||
<li>UEFA Champions League winner (2019)</li>
|
<li data-testid="honour-champions-league">UEFA Champions League winner (2019)</li>
|
||||||
<li>Premier League champion (2019-20)</li>
|
<li data-testid="honour-premier-league">Premier League champion (2019-20)</li>
|
||||||
<li>3× Premier League Golden Boot</li>
|
<li data-testid="honour-golden-boot">3× Premier League Golden Boot (2017-18, 2018-19, 2021-22)</li>
|
||||||
|
<li data-testid="honour-foreign-scorer">All-time leading foreign goalscorer in Premier League history</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -125,17 +126,17 @@ function MohamedSalahSlides() {
|
|||||||
title: "Business Ventures & Investments",
|
title: "Business Ventures & Investments",
|
||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="bg-green-50 p-4 rounded-lg">
|
<div className="bg-green-50 p-4 rounded-lg" data-testid="section-investment-portfolio">
|
||||||
<h3 className="font-semibold mb-2">Investment Portfolio</h3>
|
<h3 className="font-semibold mb-2" data-testid="heading-investments">Investment Portfolio</h3>
|
||||||
<ul className="space-y-2 text-sm">
|
<ul className="space-y-2 text-sm">
|
||||||
<li><strong>MOS Real Estate Ltd</strong> - UK-based property development</li>
|
<li data-testid="investment-mos-real-estate"><strong>MOS Real Estate Ltd</strong> - UK-based property development</li>
|
||||||
<li><strong>Salah UK Commercial</strong> - £25 million in assets (2024)</li>
|
<li data-testid="investment-salah-commercial"><strong>Salah UK Commercial</strong> - £25 million in assets (2024)</li>
|
||||||
<li><strong>Dubai Property</strong> - Luxury real estate near Burj Khalifa</li>
|
<li data-testid="investment-dubai-property"><strong>Dubai Property</strong> - Luxury real estate near Burj Khalifa</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-center">
|
<div className="text-center" data-testid="section-net-worth">
|
||||||
<div className="text-3xl font-bold text-green-600">$90M</div>
|
<div className="text-3xl font-bold text-green-600" data-testid="text-net-worth-value">$90M</div>
|
||||||
<div className="text-sm text-gray-600">Estimated Net Worth (2025)</div>
|
<div className="text-sm text-gray-600" data-testid="text-net-worth-label">Estimated Net Worth (2025)</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -145,18 +146,18 @@ function MohamedSalahSlides() {
|
|||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="grid grid-cols-2 gap-4">
|
<div className="grid grid-cols-2 gap-4">
|
||||||
<div>
|
<div data-testid="info-wife">
|
||||||
<p className="text-sm text-gray-500 mb-1">Wife</p>
|
<p className="text-sm text-gray-500 mb-1" data-testid="label-wife">Wife</p>
|
||||||
<p className="font-semibold">Magi Sadeq (married 2013)</p>
|
<p className="font-semibold" data-testid="text-wife-name">Magi Sadeq (married 2013)</p>
|
||||||
<p className="text-sm text-gray-600">Childhood sweetheart</p>
|
<p className="text-sm text-gray-600" data-testid="text-wife-note">Childhood sweetheart</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div data-testid="info-children">
|
||||||
<p className="text-sm text-gray-500 mb-1">Children</p>
|
<p className="text-sm text-gray-500 mb-1" data-testid="label-children">Children</p>
|
||||||
<p className="font-semibold">Makka (2014) & Kayan (2020)</p>
|
<p className="font-semibold" data-testid="text-children-names">Makka (2014) & Kayan (2020)</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="bg-blue-50 p-4 rounded-lg">
|
<div className="bg-blue-50 p-4 rounded-lg" data-testid="section-family-values">
|
||||||
<p className="text-sm text-gray-700">
|
<p className="text-sm text-gray-700" data-testid="text-family-description">
|
||||||
Despite global fame, Salah prioritizes family life. The family resides in a modest Liverpool suburb, emphasizing simplicity over ostentation.
|
Despite global fame, Salah prioritizes family life. The family resides in a modest Liverpool suburb, emphasizing simplicity over ostentation.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@ -167,13 +168,13 @@ function MohamedSalahSlides() {
|
|||||||
title: "Social Impact & Charity Work",
|
title: "Social Impact & Charity Work",
|
||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="bg-purple-50 p-4 rounded-lg">
|
<div className="bg-purple-50 p-4 rounded-lg" data-testid="section-charity">
|
||||||
<h3 className="font-semibold mb-2">Major Charitable Initiatives</h3>
|
<h3 className="font-semibold mb-2" data-testid="heading-charity">Major Charitable Initiatives</h3>
|
||||||
<p className="text-sm text-gray-700 mb-2">
|
<p className="text-sm text-gray-700 mb-2" data-testid="text-charity-description">
|
||||||
Salah has funded numerous projects in his hometown of Nagrig, including schools, youth centers, and medical equipment.
|
Salah has funded numerous projects in his hometown of Nagrig, including schools, youth centers, and medical equipment.
|
||||||
</p>
|
</p>
|
||||||
<div className="text-2xl font-bold text-purple-600 text-center">$3M+</div>
|
<div className="text-2xl font-bold text-purple-600 text-center" data-testid="text-donation-amount">$3M+</div>
|
||||||
<p className="text-sm text-gray-600 text-center">
|
<p className="text-sm text-gray-600 text-center" data-testid="text-donation-target">
|
||||||
Donated to National Cancer Institute in Cairo
|
Donated to National Cancer Institute in Cairo
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@ -184,20 +185,20 @@ function MohamedSalahSlides() {
|
|||||||
title: "Legacy & The Salah Effect",
|
title: "Legacy & The Salah Effect",
|
||||||
content: (
|
content: (
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
<div className="bg-gradient-to-r from-yellow-50 to-orange-50 p-4 rounded-lg">
|
<div className="bg-gradient-to-r from-yellow-50 to-orange-50 p-4 rounded-lg" data-testid="section-salah-effect">
|
||||||
<h3 className="font-semibold mb-2">The Salah Effect</h3>
|
<h3 className="font-semibold mb-2" data-testid="heading-salah-effect">The Salah Effect</h3>
|
||||||
<p className="text-sm text-gray-700">
|
<p className="text-sm text-gray-700" data-testid="text-salah-effect-description">
|
||||||
Research from Stanford University documented how his prominence at Liverpool led to a 16% decrease in hate crimes and Islamophobia in Merseyside.
|
Research from Stanford University documented how his prominence at Liverpool led to a 16% decrease in hate crimes and Islamophobia in Merseyside.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="space-y-2 text-sm">
|
<div className="space-y-2 text-sm" data-testid="section-legacy-achievements">
|
||||||
<div className="flex items-start space-x-2">
|
<div className="flex items-start space-x-2" data-testid="legacy-item-1">
|
||||||
<span className="font-bold text-blue-600">1.</span>
|
<span className="font-bold text-blue-600" data-testid="legacy-number-1">1.</span>
|
||||||
<p>First Egyptian to win the Premier League and Champions League</p>
|
<p data-testid="text-legacy-1">First Egyptian to win the Premier League and Champions League</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex items-start space-x-2">
|
<div className="flex items-start space-x-2" data-testid="legacy-item-2">
|
||||||
<span className="font-bold text-blue-600">2.</span>
|
<span className="font-bold text-blue-600" data-testid="legacy-number-2">2.</span>
|
||||||
<p>Major investments in healthcare, education and infrastructure in Egypt</p>
|
<p data-testid="text-legacy-2">Major investments in healthcare, education and infrastructure in Egypt</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user