mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-18 08:39:40 +03:00
feat(web-test): бюджеты дедлайнов в конфиг + пробой сброса прерывает контекст
Числа были зашиты в код и подобраны на лёгком синтетическом стенде. На тяжёлом
прикладном решении тот же resetState честно идёт дольше — и упирался бы в чужой
дефолт без возможности его поднять.
- `deadlines: {...}` в webtest.config.mjs переопределяет любой бюджет поштучно.
Неизвестный ключ или неположительное значение — ошибка до старта прогона:
опечатка в имени означала бы, что переопределение молча не действует.
- Пробой resetState теперь ПРЕРЫВАЕТ контекст, а не пишет строку и едет дальше.
После неудавшегося сброса состояние UI неизвестно, и переиспользование слота
утекало бы грязным состоянием в следующий тест — худший исход плохо подобранного
бюджета: тихий дрейф вместо видимой ошибки. Теперь слишком тесный бюджет стоит
перезапуска контекста, но никогда — неверного результата теста.
Проверено: опечатка ключа → внятная ошибка с перечнем допустимых; deadlines
{resetState:1} → пробой виден строкой, контекст прерван, следующий тест зелёный.
check.mjs 6/6.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -86,6 +86,10 @@ node .claude/skills/web-test/scripts/run.mjs test tests/web-test/ -- --rebuild-e
|
||||
- **`contexts.a` / `contexts.b` / `contexts.c`** — независимые 1C-сеансы (разные cookies) на той же URL. `a`,`b` — два «пользователя» мультиконтекст-тестов; `c` задействован только `14-multi-context-routing` и служит топливом для проверки вытеснения пула.
|
||||
- **`defaultContext: 'a'`** — большинство тестов работают в одном контексте.
|
||||
- **`isolation: 'tab'`** — вкладки в одном окне (default). Альтернатива `'window'` — отдельный BrowserContext (полная изоляция cookies).
|
||||
- **`deadlines: {...}`** — бюджеты служебных операций (сброс состояния, закрытие контекста, скриншот…).
|
||||
Дефолты рассчитаны на лёгкий стенд; здесь не переопределяются. Если в выводе появились строки
|
||||
`! resetState(a): timed out after Nms` — стенд стал тяжелее бюджета, поднимай ключ, а не терпи:
|
||||
пробой сброса прерывает контекст (следующий тест получит чистый ценой перезапуска).
|
||||
- **`maxContexts: 2` / `contextPolicy: 'reuse'` / `pinnedContexts: []`** — дай-фуд управления пулом лицензий. Лимит 2 одновременных сеанса: на границе `14 (c) → 15 (a,b)` раннер автоматически вытесняет LRU-контекст `c` (проверяется первым шагом `15-multi-context-handover`). Благодаря лимиту 3 контекста никогда не живут одновременно.
|
||||
|
||||
## Env переменные
|
||||
|
||||
Reference in New Issue
Block a user