Otevři homepage https://npm.vyvoj.dev/ — má se zobrazit landing page s tlačítky na dashboard, návod a GitHub. Žádná chybová stránka.
layout
Čeká
OKBug×
Otevři https://npm.vyvoj.dev/docs — návod musí mít všech 6 sekcí (Token, .npmrc, Publish, Install, Plný proxy režim, Troubleshoot) a fungující anchor odkaz mezi sekcí 2 a 5.
docs
Čeká
OKBug×
Otevři neexistující URL https://npm.vyvoj.dev/dashboard/foobar — musí se ukázat brandovaná 404 stránka s tlačítky Domů a Dashboard.
layout
Čeká
OKBug×
V dashboardu /dashboard/tokens vytvoř nový token — zelená potvrzovací hláška s tokenem, který se znovu nezobrazí. Tlačítko Zkopírovat funguje.
tests
Čeká
OKBug×
V dashboardu /dashboard/tokens smaž existující token — řádek zmizí, žádná chyba.
tests
Čeká
OKBug×
V dashboardu /dashboard/ hledej balíček podle části názvu — výsledek se filtruje za běhu, počet "X z Y" odpovídá. Vyprázdni search → seznam zpět.
tests
Čeká
OKBug×
Na detailu balíčku /dashboard/packages/<jméno> klikni Zkopírovat u install snippetu — text "npm install ..." je v clipboardu (vyzkoušej paste do editoru). Po 2s se tlačítko vrátí na "Zkopírovat".
tests
Čeká
OKBug×
V Safari nebo v incognito s vypnutým clipboardem zkus Zkopírovat — místo padání se na 2s zobrazí "Kopírování selhalo", pak se vrátí.
tests
Čeká
OKBug×
Tab přes celý dashboard od horního navigačního prvku — viditelný focus ring na každém interaktivním prvku (odkazy, tlačítka, inputy, selecty).
accessibility
Čeká
OKBug×
Spusť screen reader (VoiceOver/NVDA) na /dashboard/tokens, vyplň prázdný název a klikni Vytvořit token — reader nahlas přečte chybovou hlášku včetně role="alert".
accessibility
Čeká
OKBug×
Zkontroluj že prázdné seznamy mají konzistentní text "Zatím tu nejsou žádné X." (tokens, balíčky bez search query).
accessibility
Čeká
OKBug×
Bez Access cookie zkus přímý GET na https://npm.vyvoj.dev/dashboard/ — CF Access redirect na login. Po loginu se dostaneš do dashboardu.
security
OK
×
Zkus GET https://npm.vyvoj.dev/mock/-/mock-1.0.0.tgz bez Authorization tokenu — 403 Forbidden (npm tarball routes vyžadují bearer token).
security
Čeká
OKBug×
V čisté složce s globálním .npmrc nastaveným na registry=https://npm.vyvoj.dev/ spusť npm install lodash — musí stáhnout dependency tree a tarball z Repoflare. Verify shasum hash v package-lock.json odpovídá public lodash.
performance
OK
×
Ve stejné složce npm install @types/node — scoped public balíček. Musí projít přes Repoflare bez fallback na npmjs.org (curl/observability potvrdí). Žádný integrity error.
performance
OK
×
Druhý npm install téhož balíčku po smazání node_modules — tarball download musí být měřitelně rychlejší (R2 cache hit, viz observability nebo CF Workers metrics).
performance
OK
×
V scope-first režimu (.npmrc s @mujscope:registry=...) spusť npm install nějakého publikovaného privátního balíčku — projde přes Repoflare. Veřejný balíček (např. lodash) musí jít přímo na npmjs.org, ne na Repoflare.
logic
Čeká
OKBug×
Publish nového balíčku přes npm publish s package:write tokenem — balíček se objeví v /dashboard/ a /dashboard/packages/<name> ukáže README a verzi.