Shadow Tests

KeyValue
StatusActive
OwnerQA Automation
Updated2026-03-26
ScopeContinuous background monitoring of site navigation across all 6 CNC sites

Shadow tests exist because deploys are not the only time sites break. Menu items disappear. Sections redirect. Category pages return 404. These changes happen in content, CMS config, or infrastructure — not code deploys — and smoke tests run too rarely to catch them quickly. Shadow tests run every 4 hours, continuously, and check that key navigation paths on each site are still reachable.

What The Suite Does

CapabilityWhat It Means
navigation matrix per siteeach site has a list of known menu items tested in every run
required vs optional itemssome navigation failures hard-fail the test; others are logged as warnings
priority levelshigh / medium / low per menu item
direct URL fallbackif link click fails, test can navigate directly to verify the destination
on-failure screenshotJPEG screenshot attached to run for debugging

Current Shape

MetricCurrent Snapshot
total tests6
spec files6 (one per site in tests/shadow/)
scheduleevery 4 hours (cron: 0 /4 )
sites covered6

Each spec has exactly one test: navigation matrix. The test navigates each menu item in sequence and records pass/fail per item.

Auto (8 items)

LabelPathPriorityRequired
Novinky/novinkyhighyes
Testy/testyhighyes
Elektromobilita/elektromobilitahighyes
Motorsport/motorsportmediumno
Veteran/veteranmediumno
Podcasty/podcastylowno
Design/designlowno
Video/videomediumno

Blesk (6 items)

LabelPathPriorityRequired
Celebrity/celebrityhighno
Zprávy/zpravyhighno
Sportisport.blesk.czhighno
Krimi/krimimediumno
Politika/zpravy/politikamediumno
Tlapky/tlapkylowno

E15 (5 items)

LabelPathPriorityRequired
Ekonomika/ekonomikahighyes
Byznys/byznyshighyes
FINEXPERTfinexpertmediumno
Reality/realitymediumno
Průmysl/prumyslmediumno

iSport (9 items)

LabelPathPriorityRequired
Fotbal/fotbalhighyes
Hokej/hokejhighyes
Tenis/tenismediumno
Motorsport/motorsportmediumno
Basket/basketmediumno
Premium/premiummediumno
Atletika/atletikamediumno
Bojové sporty/bojove-sportylowno
Cyklistika/cyklistikalowno

Opinio (1 item)

LabelPathPriorityRequired
Publikace/publikacehighyes

Reflex (6 items)

LabelPathPriorityRequired
Komentáře/komentarehighyes
Premium/premiumhighyes
Video/videomediumno
Fotogalerie/fotogaleriemediumno
Kultura/kulturamediumno
Věda/vedalowno

Full Test List

SiteTest NameNavigation Items
Autonavigation matrix8 items (3 required)
Blesknavigation matrix6 items (0 required)
E15navigation matrix5 items (2 required)
iSportnavigation matrix9 items (2 required)
Opinionavigation matrix1 item (1 required)
Reflexnavigation matrix6 items (2 required)

Test Assertions

Each navigation matrix test makes two assertions:

AssertionMeaning
required_failures === 0all required navigation items were reachable
successful_navigations > 0at least one item was successfully navigated to

Optional items that fail are recorded in metrics but do not fail the test.

How To Run

CommandWhat It Does
npm run test:shadowAll 6 tests, all sites
npm run test:shadow -- --grep "blesk"Blesk only
npm run test:shadow -- --grep "auto"Auto only
npm run test:headedHeaded browser

Shadow vs Smoke

ShadowSmoke
purposecontinuous navigation monitoringrapid health check before/after deploys
frequencyevery 4 hoursbefore deploys + on demand
what it checksspecific menu items and category pathsbasic load + header + article click + menu opens
depth per checknavigates to destination, verifies URLclicks element, verifies page changes
test count6 (1/site)12 (2/site)
duration~5 minutes total~30 seconds

When Shadow Fails

Failure TypeLikely CauseFirst Step
required item failscategory page removed or URL changedcheck site navigation manually
all items fail for one sitesite is down or consent blockingcheck smoke tests
one optional item failssection temporarily unavailablemonitor next run; skip if persistent
successful_navigations === 0network issue or consent not dismissedcheck consent handler config

Shadow failures post to Slack via the standard alert webhook. Each failure includes site name, menu item label, expected URL path, and timestamp.

NeedGo To
rapid pre/post deploy checkSmoke Tests
post-deploy feature validationPDT Tests
high-level suite listTest Types