Обновить тест статуса Telegram под новую семантику
ci / build-test (pull_request) Successful in 2m50s

connected = phase ready; живой account приоритетнее KV tgAccount.
This commit is contained in:
2026-09-13 16:27:19 +03:00
parent a9f2b3a1ef
commit 13d7994511
@@ -67,21 +67,22 @@ public sealed class TgStatusServiceTests
/// Готовый аккаунт
/// </summary>
[Fact]
public async Task GetAsync_ReadyGateway_ComposesLiveFieldsWithKvAccountMonitoredAndKeys()
public async Task GetAsync_ReadyGateway_PrefersLiveAccountOverKvAndComputesConnected()
{
(TgStatusService service, TestTelegramStore store, TestSettingsStore settings, TestTelegramGateway gateway, _, TestGlobalSettingsStore globalSettings) = Create();
store.Seed(Dialog("d_1", "Канал", "channel", Monitor: true));
settings.Preload(SettingsKeys.TgAccount, "\"@realuser\"");
PreloadKeys(globalSettings, "123456", "abcdefghijklmnop");
// Транспортный Connected=false, но phase ready → UI должен считать аккаунт подключённым.
gateway.Status = new TelegramAccountStatusDto(
Phase: "ready", Connected: true, Listener: true, Account: "gateway-account", Error: null, QrUrl: null);
Phase: "ready", Connected: false, Listener: true, Account: "@liveuser", Error: null, QrUrl: null);
TgStatusDto status = await service.GetAsync(CancellationToken.None);
Assert.Equal("ready", status.Phase);
Assert.True(status.Connected);
Assert.True(status.Connected); // connected = авторизация (phase ready), не транспорт
Assert.True(status.Listener);
Assert.Equal("@realuser", status.Account); // KV tgAccount перекрывает справочное поле гейта (Ruling 8)
Assert.Equal("@liveuser", status.Account); // живой account приоритетнее KV
Assert.Equal(1, status.Monitored);
Assert.True(status.KeysSet);
}