From 8eac3b0ffa0c1300eb85f83dd2504d56780abae5 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 26 Aug 2026 23:38:59 +0300 Subject: [PATCH] Update frontend verification docs --- development/frontend-workflow.md | 20 +++++++++++++------- development/runtime-openapi-verification.md | 10 +++++----- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/development/frontend-workflow.md b/development/frontend-workflow.md index 88cc01c..e345b25 100644 --- a/development/frontend-workflow.md +++ b/development/frontend-workflow.md @@ -7,15 +7,21 @@ npm ci npm run verify ``` -`verify` проверяет OpenAPI drift, TypeScript, Biome, один coverage-backed запуск Vitest, -Knip, FSD dependency rules, production build и bundle budget. Он работает без -backend. Coverage остаётся anti-regression constraint; правила выбора тестов -зафиксированы в [engineering governance](engineering-governance.md). +`verify` проверяет TypeScript, Biome, один coverage-backed запуск Vitest, Knip, +FSD dependency rules и production build. Он работает без backend. Coverage +остаётся anti-regression constraint; правила выбора тестов зафиксированы в +[engineering governance](engineering-governance.md). -Backend остаётся источником OpenAPI. После изменения опубликованного backend-контракта разработчик запускает в `frontend/`: +Backend остаётся источником OpenAPI. После изменения опубликованного +backend-контракта разработчик обновляет в `frontend/` committed snapshot +`src/shared/api/spec/openapi.json` копированием backend OpenAPI document, затем +запускает: ```bash -npm run openapi:sync +npm run openapi:generate ``` -Команда использует `${VITE_API_BASE_URL:-http://localhost:3000}/api/docs-json`, генерирует types во временной директории и заменяет committed snapshot и generated artifact только после успешной генерации. Обычные `openapi:generate` и `openapi:check` используют committed snapshot offline. +Команда использует только committed snapshot и регенерирует +`src/shared/api/generated/schema.d.ts` offline. Проверку соответствия backend +runtime contract и frontend snapshot выполняют отдельной backend-командой +`npm run test:openapi-contract`. diff --git a/development/runtime-openapi-verification.md b/development/runtime-openapi-verification.md index 5423c20..5278631 100644 --- a/development/runtime-openapi-verification.md +++ b/development/runtime-openapi-verification.md @@ -29,11 +29,11 @@ npm run test:openapi-contract - рекурсивно сортирует только ключи JSON objects и сохраняет порядок arrays; - не записывает snapshot или generated frontend types. -Она не вызывает `npm run openapi:sync`, не записывает committed snapshot или -generated frontend types и не обращается к T-Bank либо другому внешнему -сервису. Если контракт действительно изменён, snapshot обновляют только -осознанной командой `npm run openapi:sync` в `frontend`, затем снова запускают -эту проверку. +Она не записывает committed snapshot или generated frontend types и не +обращается к T-Bank либо другому внешнему сервису. Если контракт действительно +изменён, snapshot обновляют явным копированием backend OpenAPI document в +`frontend/src/shared/api/spec/openapi.json`, затем в `frontend` запускают +`npm run openapi:generate` и снова выполняют эту проверку. ## Ограничение e2e