Files

Пробы гарда исключений (#404)

Здесь лежат фикстуры, которые должны падать: каждая проверяет, что гард «uncaught exception внутри карточки» умеет краснеть, а не только объявлен.

Три причины, по которым это отдельный каталог, а не demo/smoke_* и не demo/fixtures/:

  1. Не smoke_* — иначе шарды CI будут гонять заведомо красный файл и покрасят себя.
  2. Не demo/fixtures/ — этот каталог входит в корпус sourceFingerprint (scripts/source-fingerprint.mjs), то есть каждый новый .mjs там объявляет устаревшими закоммиченный бандл, скриншот-индекс документации и golden-индекс. Пробы гарда ни одного пикселя не касаются, платить пересъёмкой за них нечем.
  3. Каталог, а не файл — проб несколько, и они читаются как набор.

Запускает их verify-guard.mjs; он же вызывается из job «Смоки в браузере» и служит guard'ом мутантов в scripts/mutation-gate.mjs.

Одна проба живёт не здесь: --guard-probe у demo/benchmark_backdrop_decode.mjs (#430). Benchmark нельзя переселить в этот каталог — его запускают руками при рекалибровке порогов, — поэтому verify-guard.mjs умеет запускать файл выше каталога и с аргументами. Режим --guard-probe пропускает все замеры, бросает одно исключение внутри страницы и обязан выйти с кодом 1.

Новый benchmark, открывающий страницу Playwright, обязан получить такой же режим и запись здесь: этого требует test/smoke-harness-contract.test.mjs, и требует статически — потому что динамическое доказательство возможно только там, где есть браузер.