Ref: #5 Depends on: #6
Test project cards rendering, CI badge live fetch, media embeds, experience timeline scroll animations.
components/ProjectShowcase.tsx
components/ExperienceTimeline.tsx
app/api/ci-status/route.ts
projects.spec.ts
/rbc-images.jpeg
/api/ci-status?repo=...
timeline.spec.ts
#project-homelab
#project-rbc
#project-aws
whileInView
await page.route('**/api/ci-status*', async route => { const url = new URL(route.request().url()) const repo = url.searchParams.get('repo') await route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ sha: 'abc1234', conclusion: 'success', status: 'completed', }), }) })
#project-*
No dependencies set.
The note is not visible to the blocked user.
Parent
Ref: #5
Depends on: #6
Objective
Test project cards rendering, CI badge live fetch, media embeds, experience timeline scroll animations.
Components Under Test
components/ProjectShowcase.tsx— Project cards, CI badges, media, linkscomponents/ExperienceTimeline.tsx— Timeline, CI badges, skill tags, scroll linksapp/api/ci-status/route.ts— CI status APITest Cases
Projects Section (
projects.spec.ts)/rbc-images.jpeg)CI Badges (mock API)
/api/ci-status?repo=...Experience Timeline (
timeline.spec.ts)#project-homelab,#project-rbc,#project-aws)Scroll Animations
whileInView)API Mocking
Acceptance
#project-*) scroll to correct cards