Puppeteer browser flows

E2E HTML Report

Generated Nov 7, 2026, 3:48:18 PM

40 Flows
40 Passed
0 Failed
236 Steps
0 Failed steps
91.20s Duration

Target

https://www.marcelo-costa.com

Browser Flows

Home page loads with hero and navbar passed 4 steps 1.54s
Step Status Duration
Navigate to home page passed 1.50s
Page title mentions Marcelo Costa passed 6ms
Primary navbar is present passed 24ms
Hero name is visible passed 13ms
Cookie consent accept hides banner and stores consent passed 5 steps 1.69s
Step Status Duration
Navigate to home page passed 1.60s
Cookie banner is shown passed 16ms
Click "Accept all cookies" passed 64ms
Banner is dismissed passed 11ms
Consent cookie is stored passed 2ms
Navbar navigates to the Side Projects route passed 7 steps 1.83s
Step Status Duration
Navigate to home page passed 1.46s
Dismiss cookie banner passed 95ms
Click "Side Projects" nav link passed 43ms
URL becomes /side-projects passed 51ms
Side Projects page renders passed 44ms
Page has visible content passed 10ms
Screenshot lightbox opens centered in the viewport without scrolling passed 137ms
Navbar navigates to the Frameworks route passed 6 steps 1.76s
Step Status Duration
Navigate to home page passed 1.48s
Dismiss cookie banner passed 103ms
Click "Frameworks" nav link passed 65ms
URL becomes /frameworks passed 38ms
Frameworks page renders passed 66ms
Heading reads "Testing Frameworks" passed 9ms
Navbar navigates to the Test Results route passed 8 steps 2.04s
Step Status Duration
Navigate to home page passed 1.54s
Dismiss cookie banner passed 85ms
Click "Test Results" nav link passed 59ms
URL becomes /test-results passed 120ms
Page heading reads "This site tests itself" passed 193ms
CI metric cards render passed 5ms
Four code samples are highlighted passed 27ms
Report links point at the static HTML reports passed 16ms
Contact form renders with required fields passed 8 steps 2.06s
Step Status Duration
Navigate to home page passed 1.50s
Dismiss cookie banner passed 72ms
Open contact modal passed 368ms
Field #cv-email exists passed 99ms
Field #cv-name exists passed 7ms
Field #cv-subject exists passed 6ms
Field #cv-message exists passed 7ms
Field #submit-btn exists passed 4ms
Footer renders portfolio message passed 2 steps 1.58s
Step Status Duration
Navigate to home page passed 1.56s
Footer message is present passed 17ms
Side Projects page renders all content sections passed 4 steps 1.80s
Step Status Duration
Open /side-projects directly passed 1.72s
Page container renders passed 21ms
At least one section heading is present passed 15ms
Project cards / content blocks render passed 44ms
Frameworks page lists framework cards passed 3 steps 1.43s
Step Status Duration
Open /frameworks directly passed 1.40s
Framework grid renders passed 11ms
At least one framework card with a title passed 22ms
Mobile menu toggle reveals navigation and navigates passed 8 steps 1.83s
Step Status Duration
Switch to a mobile viewport passed 1ms
Navigate to home page passed 1.57s
Dismiss cookie banner passed 109ms
Hamburger toggle is visible passed 10ms
Open the mobile menu passed 70ms
Menu is marked open passed 18ms
Tap "Side Projects" from the menu passed 45ms
URL becomes /side-projects passed 7ms
Brand logo returns home from a route passed 5 steps 1.68s
Step Status Duration
Open /frameworks directly passed 1.33s
Dismiss cookie banner passed 80ms
Click the brand logo passed 35ms
URL returns to home passed 77ms
Hero is visible again passed 153ms
Contact form accepts input passed 5 steps 2.90s
Step Status Duration
Navigate to home page passed 1.74s
Dismiss cookie banner passed 105ms
Open contact modal passed 402ms
Type into name, email, subject and message passed 635ms
Entered values are reflected passed 17ms
Cookie consent decline stores choice and survives reload passed 6 steps 3.14s
Step Status Duration
Navigate to home page passed 1.56s
Click "Decline" passed 169ms
Banner is dismissed passed 5ms
Declined cookie is stored passed 3ms
Reload the page passed 1.31s
Banner stays hidden after reload passed 93ms
Theme toggle switches theme and persists across reload passed 7 steps 3.36s
Step Status Duration
Navigate to home page passed 1.72s
Dismiss cookie banner passed 141ms
Click the theme toggle passed 128ms
<html data-theme> becomes "dark" passed 9ms
Choice is saved to localStorage passed 3ms
Reload the page passed 1.34s
Theme is kept after reload passed 18ms
Language switcher changes locale and URL prefix passed 10 steps 2.38s
Step Status Duration
Navigate to home page passed 1.59s
Dismiss cookie banner passed 75ms
Open the language menu passed 48ms
Language menu is expanded passed 5ms
Pick Português passed 39ms
URL gains the /pt prefix passed 261ms
Hero is translated to Portuguese passed 26ms
Switch back to English passed 180ms
URL drops the language prefix passed 143ms
Hero is back in English passed 5ms
Language menu closes on Escape and returns focus passed 7 steps 1.65s
Step Status Duration
Navigate to home page passed 1.51s
Dismiss cookie banner passed 78ms
Open the language menu passed 33ms
Focus lands on the active option passed 13ms
Press Escape passed 9ms
Menu collapses passed 8ms
Focus is back on the trigger passed 0ms
Localized deep link renders the Spanish Frameworks page passed 3 steps 1.17s
Step Status Duration
Open /es/frameworks directly passed 1.16s
Heading is in Spanish passed 10ms
Language trigger shows ES passed 2ms
Navbar navigates to the Articles route passed 6 steps 1.77s
Step Status Duration
Navigate to home page passed 1.51s
Dismiss cookie banner passed 76ms
Click "Articles" nav link passed 34ms
URL becomes /articles passed 40ms
Heading reads "Published Articles" passed 29ms
Article cards render passed 86ms
Articles search filters, shows empty state and resets passed 7 steps 1.61s
Step Status Duration
Open /articles directly passed 1.08s
Dismiss cookie banner passed 41ms
Type a query with no matches passed 305ms
Empty state is shown passed 43ms
Query is mirrored into ?q= passed 3ms
Click "Clear filters" in the empty state passed 95ms
Search box is cleared and all cards return passed 23ms
Articles theme tab filters cards to match its count passed 6 steps 1.33s
Step Status Duration
Open /articles directly passed 1.20s
Dismiss cookie banner passed 33ms
Click the "Cypress" theme tab passed 62ms
Tab is selected passed 33ms
URL carries ?theme=cypress passed 1ms
Rendered card count equals the tab badge passed 2ms
Articles tag deep link pre-selects the tag pill passed 4 steps 1.15s
Step Status Duration
Open /articles?tag=cypress directly passed 1.14s
Tag disclosure is expanded passed 9ms
"#cypress" pill is active passed 5ms
Filter status summarises the tag passed 2ms
Blog post renders from a direct link and navigates back passed 9 steps 1.04s
Step Status Duration
Open /articles/flaky-test-postmortem directly passed 945ms
Post title is rendered passed 8ms
Author avatar and cover image are decoded passed 2ms
Document title names the post passed 1ms
Post body has content passed 8ms
TOC follows the scroll and every code block keeps its Copy button passed 22ms
Dismiss cookie banner passed 31ms
Click "Back to Published Articles" passed 21ms
URL returns to /articles passed 2ms
Unknown blog slug shows the not-found page passed 3 steps 914ms
Step Status Duration
Open a non-existent post passed 882ms
Not-found message is shown passed 13ms
A link points back to /articles passed 18ms
Unknown URLs answer 404 with a localized not-found page passed 7 steps 1.67s
Step Status Duration
/this-page-does-not-exist returns HTTP 404 passed 965ms
/this-page-does-not-exist shows the not-found page passed 7ms
/this-page-does-not-exist is kept out of the index passed 8ms
/pt/esta-pagina-nao-existe returns HTTP 404 passed 673ms
/pt/esta-pagina-nao-existe shows the not-found page passed 5ms
/pt/esta-pagina-nao-existe is kept out of the index passed 9ms
No uncaught errors passed 0ms
Trailing-slash URLs redirect to the canonical page passed 3 steps 3.39s
Step Status Duration
/articles/ lands on its canonical URL passed 1.24s
/blog/flaky-test-postmortem/ lands on its canonical URL passed 854ms
/pt/ lands on its canonical URL passed 1.29s
Frameworks category tabs filter the sections passed 7 steps 1.24s
Step Status Duration
Open /frameworks directly passed 1.12s
Dismiss cookie banner passed 46ms
"All" shows every section passed 11ms
Click the "E2E" tab passed 22ms
Tab is pressed passed 4ms
Only the E2E section remains passed 13ms
E2E grid still lists cards passed 22ms
Home shows the last CI run, the career rail and shipped builds passed 9 steps 3.99s
Step Status Duration
Navigate to home page passed 1.51s
Dismiss cookie banner passed 76ms
Hero keeps two columns: claim and portrait passed 3ms
CI run log finishes reading the last run passed 8ms
Shipped stage pins five builds and swaps to the step in view passed 1.55s
Stack lists the production toolchain by category passed 121ms
Rail carries five year rows that count their metric in view passed 602ms
Nothing on the home page collapses passed 2ms
Shipped step deep-links to its project passed 110ms
Contact modal closes via button, Escape and backdrop passed 7 steps 3.55s
Step Status Duration
Navigate to home page passed 1.39s
Dismiss cookie banner passed 91ms
Open contact modal passed 487ms
Close with the × button passed 258ms
Re-open and close with Escape passed 739ms
Re-open and close by clicking the backdrop passed 582ms
Body scroll lock is released passed 1ms
Contact form blocks an empty submission passed 7 steps 2.63s
Step Status Duration
Navigate to home page passed 1.40s
Dismiss cookie banner passed 91ms
Open contact modal passed 373ms
Click Send with every field empty passed 169ms
Form reports invalid fields passed 13ms
Invalid email is rejected passed 80ms
No request reached Web3Forms passed 500ms
Contact form shows success when the API accepts passed 8 steps 3.15s
Step Status Duration
Stub the Web3Forms API (success) passed 2ms
Navigate to home page passed 1.50s
Dismiss cookie banner passed 78ms
Open contact modal passed 358ms
Fill in a valid message passed 1.08s
Submit reaches the stubbed API passed 67ms
Success message is shown passed 57ms
Form is reset passed 4ms
Contact form shows an error when the API rejects passed 8 steps 3.21s
Step Status Duration
Stub the Web3Forms API (failure) passed 2ms
Navigate to home page passed 1.52s
Dismiss cookie banner passed 73ms
Open contact modal passed 345ms
Fill in a valid message passed 1.09s
Submit reaches the stubbed API passed 68ms
Error message is shown passed 105ms
Entered values are kept for a retry passed 3ms
Hero CI log opens Test Results and the in-browser runner completes passed 8 steps 2.63s
Step Status Duration
Navigate to home page passed 1.52s
Dismiss cookie banner passed 75ms
Click the CI log dashboard link passed 51ms
URL becomes /test-results passed 113ms
In-browser runner is ready passed 184ms
Click "Run All Tests" passed 54ms
Runner reaches a completed state passed 598ms
Every in-browser test reports a result passed 35ms
Footer links navigate and open the contact modal passed 7 steps 3.20s
Step Status Duration
Navigate to home page passed 1.80s
Dismiss cookie banner passed 60ms
Click the footer "Frameworks" link passed 37ms
URL becomes /frameworks passed 131ms
Page is scrolled back to the top passed 1.12s
Click the footer "Send message" button passed 49ms
Contact modal opens passed 6ms
Mobile menu closes on Escape passed 8 steps 1.80s
Step Status Duration
Switch to a mobile viewport passed 1ms
Navigate to home page passed 1.28s
Dismiss cookie banner passed 58ms
Open the mobile menu passed 66ms
Toggle reports expanded passed 5ms
Press Escape passed 9ms
Menu closes passed 360ms
Toggle reports collapsed passed 21ms
Skip link moves focus to main content passed 4 steps 1.53s
Step Status Duration
Navigate to home page passed 1.49s
Tab to the skip link passed 11ms
Activate it passed 19ms
Focus is on #main-content passed 8ms
External links open safely in a new tab passed 4 steps 3.96s
Step Status Duration
Check target="_blank" links on / passed 1.46s
Check target="_blank" links on /frameworks passed 880ms
Check target="_blank" links on /articles passed 837ms
Check target="_blank" links on /side-projects passed 783ms
Main routes load without uncaught errors passed 5 steps 4.76s
Step Status Duration
Load / passed 1.51s
Load /side-projects passed 828ms
Load /frameworks passed 901ms
Load /articles passed 834ms
Load /blog/flaky-test-postmortem passed 681ms
Component icons keep their own size over the global icon default passed 3 steps 1.23s
Step Status Duration
Navigate to the Articles page passed 1.22s
Sized icons are not inflated to the 28px default passed 1ms
Unsized icons keep the 28px default passed 8ms
Wide tables scroll inside their own region on a phone passed 3 steps 1.98s
Step Status Duration
Switch to a mobile viewport passed 3ms
Every table on /test-results scrolls within the viewport passed 1.18s
Every table on /articles/no-request-ever-occurred scrolls within the viewport passed 796ms
Shipped progress rail moves without shifting layout passed 5 steps 5.64s
Step Status Duration
Switch to a mobile viewport passed 1ms
Record layout shifts from page load passed 2ms
Navigate to home page passed 1.25s
Step through every shipped build passed 4.39s
The rail ink never shifts layout passed 5ms