diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index 6680d62..2fad2ac 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -38,7 +38,7 @@ MVP: бустер **BT01** + триал-деки **TD01/TD02** — 94 карты | Проверка | Результат | |---|---| -| Тесты | **174/174** (131 правила/контракты + 43 сервер) | +| Тесты | **175/175** (131 правила/контракты + 44 сервер) | | `validate` | 0 ошибок, 0 предупреждений | | `translations check` | 94/94 | | `stress 1000` | 1000/1000 партий, 0 ошибок | @@ -71,7 +71,7 @@ dotnet run --project server\src\Vanguard.Cli -- stress 1000 ``` Пройден! : не пройдено 0, пройдено 131 (Vanguard.Rules.Tests) -Пройден! : не пройдено 0, пройдено 43 (Vanguard.Server.Tests) +Пройден! : не пройдено 0, пройдено 44 (Vanguard.Server.Tests) OK: ошибок 0, предупреждений 0 Переведено: 94/94 Партий: 1000, завершено: 1000, ошибок: 0 @@ -269,7 +269,7 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`. `translations check` на push/PR. Actions включены для репозитория, `home-runner` выполняет job (проверено: все шаги зелёные). `setup-dotnet` указан явным URL с GitHub: в зеркале `code.forgejo.org` его нет. -- **Тесты серверного ядра** (34 из 43 в `Vanguard.Server.Tests`): +- **Тесты серверного ядра** (35 из 44 в `Vanguard.Server.Tests`): - тикеты: одноразовость и TTL; - heartbeat: ping после 20 с простоя, закрытие через 20 с, сброс любым кадром; - grain: attach, чужое место, duplicate intent, чужой ход, сдача, @@ -286,9 +286,10 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`. - E2E: два клиента играют полный матч по WebSocket и сходятся в победителе; обрыв и возврат по новому тикету с догоном состояния; - Orleans: грана инициализируется, принимает attach и интент, граница - Orleans сериализуется (тестовый `TestCluster`). + Orleans сериализуется (тестовый `TestCluster`); полный матч двух + клиентов через HTTP/WebSocket при `Orleans:Enabled=true`. -Проверено на `ssh home`: 131 + 43 теста, включая реальные PostgreSQL и Redis; +Проверено на `ssh home`: 131 + 44 теста, включая реальные PostgreSQL и Redis; `docker compose up` поднимает стенд, матч создаётся через HTTP-очередь, а после `docker compose restart server` восстанавливается (`Recovery: 1 of 1`). @@ -332,7 +333,7 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`. 11 стартовых событий и кадр, рука противника пуста. После рестарта сервера матч восстановлен (`matches: 1`). -Счётчик `Vanguard.Server.Tests` вырос до 43: добавлены auth, мета-профиль, +Счётчик `Vanguard.Server.Tests` вырос до 44: добавлены auth, мета-профиль, мета-E2E (онбординг → бустер → колода → матч → история → реплей), проверки реплея, явного выхода и истории/реплея после выхода. @@ -374,7 +375,7 @@ Solution — **`server/Vanguard.slnx`**, не `.sln`. /Profiles/ интерфейс MMR /Dockerfile /server/tests/Vanguard.Rules.Tests 131 тест -/server/tests/Vanguard.Server.Tests 43 теста, включая E2E и внешние хранилища +/server/tests/Vanguard.Server.Tests 44 теста, включая E2E и внешние хранилища /content/sets карты /content/trial-decks.yaml две триал-деки /content/pack_odds.yaml веса бустера diff --git a/server/tests/Vanguard.Server.Tests/OrleansServerE2ETests.cs b/server/tests/Vanguard.Server.Tests/OrleansServerE2ETests.cs index edc1a64..38bd6b4 100644 --- a/server/tests/Vanguard.Server.Tests/OrleansServerE2ETests.cs +++ b/server/tests/Vanguard.Server.Tests/OrleansServerE2ETests.cs @@ -1,10 +1,7 @@ -using System.Collections.Concurrent; using System.Net.Http.Json; using System.Text.Json; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; using Vanguard.Server.Api; using Xunit.Sdk;