Mobile Tests

KeyValue
StatusActive
OwnerQA Automation
Updated2026-03-26
ScopeMobile viewport and interaction validation across all 6 CNC sites

Mobile tests exist because CNC sites serve a majority of their traffic on phones. Desktop tests cannot catch mobile-specific regressions: horizontal overflow, undersized touch targets, hamburger menu failures, layout shift, and slow load times on mobile networks. This suite catches that class of breakage.

What The Suite Does

CapabilityWhat It Means
viewport validationconfirms sites render correctly at mobile widths without horizontal overflow
touch target sizingchecks interactive elements meet the 44x44px minimum (Apple HIG)
hamburger menuconfirms the mobile navigation toggle is tappable and opens the menu
performance budgetsmeasures LCP, CLS, and DOM size on mobile against defined thresholds
media on mobileconfirms video players have mobile controls and playback can start
orientation transitionsvalidates the page survives portrait-to-landscape without breaking layout
complete journeyend-to-end mobile browsing flow from homepage to article and back

Three-Tier Structure

TierTagTestsSchedulePurpose
Smoke@smoke9Every PR + dailyFast gate: viewport, overflow, breakpoints, image scaling, touch targets, hamburger, mobile consent
Regression@regression8NightlyDeeper UI checks: sticky header, text readability, form inputs, video controls, media playback, images lazy-load, live surface, orientation
Deep@deep6NightlyPerformance + journey: load budget, LCP, CLS, DOM size, subscription/paywall entry, complete browsing journey

Devices

ProjectDeviceViewportUser Agent
mobile-chromePixel 5 (via Playwright devices)393x851Chrome mobile
mobile-safariiPhone 13 (via Playwright devices)390x844Safari / WebKit

Both projects run the same spec file. Safari-specific commands use the npm scripts below.

Performance Budgets

MetricBudgetiSport OverrideWhy
Load time20,000 msmobile 3G baseline
LCP6,000 mslargest contentful paint cap
CLS0.350.50iSport ad-heavy homepage has higher layout shift
DOM elements4,500complex DOMs degrade mobile parse time

iSport has an elevated CLS budget because its ad-heavy sports homepage generates materially higher layout shift during initial paint. The override is explicit in the spec and documented in code.

Smoke Tests (@smoke)

Nine tests that run on every PR and daily. These are the fastest checks and the highest-confidence signal for mobile regressions.

Test NameWhat It Checks
viewport meta tag configured correctlywidth=device-width present, zoom not blocked
no horizontal overflow on mobilescrollWidth <= clientWidth at 375px viewport
content adapts across breakpointsheader and main content visible at 320/375/428/768px
images scale properly on mobileno image wider than viewport
touch targets meet minimum size (44x44px)fewer than 15 undersized interactive elements
hamburger menu is tappable and functionalhamburger visible, opens menu, menu contains links
links and buttons respond to tapinteractive elements respond to tap/click
scroll works smoothlypage can be scrolled vertically
mobile consent dialog accessibleconsent overlay visible and dismissable on mobile

Regression Tests (@regression)

Eight tests that run nightly. These test behaviors that take longer or require more interaction.

Test NameWhat It Checks
sticky header behaviorheader stays near top after scrolling 500px
text is readable size (min 12px)font sizes >= 12px across visible text elements
form inputs are mobile-friendlyinputs have adequate size and spacing on mobile
video player has mobile controlsplayer visible on known video URL, tap targets accessible
known media page starts playback on mobilemedia playback starts via tap on known article
images lazy loadimages below fold have lazy load attribute
live/news surface is reachable on mobilelive or news URL loads and has timeline entries
portrait to landscape transitionpage layout recovers after orientation change

Deep Tests (@deep)

Six tests that run nightly, measuring performance and validating complete flows.

Test NameWhat It Checks
page loads within budget on mobileload time under 20,000ms
LCP under budgetLCP under 6,000ms
CLS under budgetCLS under 0.35 (or site override)
DOM size reasonable for mobilefewer than 4,500 DOM elements
subscription/paywall entry loads on mobilesubscription or premium URL loads, entry point visible
complete mobile browsing journeyhomepage → article → scroll → back, session intact

How To Run

CommandWhat It Does
npm run test:mobile:smoke@smoke tier, Chrome (9 tests, PR-safe)
npm run test:mobile:regression@regression tier, Chrome (8 tests)
npm run test:mobile:deep@deep tier, Chrome (6 tests)
npm run test:mobile:safari:smoke@smoke on iPhone 13 (Safari/WebKit)
npm run test:mobile:all-devices:smoke@smoke on Chrome + Safari
npm run test:mobile:matrix:smoke@smoke across all 6 sites on Chrome
SITE=blesk npm run test:mobile:smokeSingle site smoke only

What Each Tier Catches

TierTypical Failure Signal
@smokemajor layout breakage, menu not opening, overflow introduced by CSS change
@regressionsticky header removed, text too small after font change, media player controls moved
@deeppage load regression after large script addition, layout shift increase after ad change

Per-Site Surface Configuration

Each site has a configured set of known URLs used by media and subscription tests. These are stable article or listing URLs chosen because they reliably have the tested content.

SiteVideo URLPodcast URLLive/News URLSubscription URL
Autoauto.cz/martin-vaculik-...auto.cz/techto-6-...
Bleskblesk.cz/videoblesk.cz/live
E15e15.cz/videoporady/flow/...e15.cz/podcasty/...e15.cz/e15-premium
iSportisport.blesk.cz/isport.blesk.cz/live-prenosisport.blesk.cz/premium
Reflexreflex.cz/reflex.cz/online-prenosreflex.cz/premium
Opinioprepiste-dejiny.opinio.cz/...prepiste-dejiny.opinio.cz/...opinio.cz/publikace
NeedGo To
desktop user journey testsE2E Tests
high-level suite listTest Types