Обновить тест статуса Telegram под новую семантику
ci / build-test (pull_request) Successful in 2m50s
ci / build-test (pull_request) Successful in 2m50s
connected = phase ready; живой account приоритетнее KV tgAccount.
This commit is contained in:
@@ -67,21 +67,22 @@ public sealed class TgStatusServiceTests
|
|||||||
/// Готовый аккаунт
|
/// Готовый аккаунт
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task GetAsync_ReadyGateway_ComposesLiveFieldsWithKvAccountMonitoredAndKeys()
|
public async Task GetAsync_ReadyGateway_PrefersLiveAccountOverKvAndComputesConnected()
|
||||||
{
|
{
|
||||||
(TgStatusService service, TestTelegramStore store, TestSettingsStore settings, TestTelegramGateway gateway, _, TestGlobalSettingsStore globalSettings) = Create();
|
(TgStatusService service, TestTelegramStore store, TestSettingsStore settings, TestTelegramGateway gateway, _, TestGlobalSettingsStore globalSettings) = Create();
|
||||||
store.Seed(Dialog("d_1", "Канал", "channel", Monitor: true));
|
store.Seed(Dialog("d_1", "Канал", "channel", Monitor: true));
|
||||||
settings.Preload(SettingsKeys.TgAccount, "\"@realuser\"");
|
settings.Preload(SettingsKeys.TgAccount, "\"@realuser\"");
|
||||||
PreloadKeys(globalSettings, "123456", "abcdefghijklmnop");
|
PreloadKeys(globalSettings, "123456", "abcdefghijklmnop");
|
||||||
|
// Транспортный Connected=false, но phase ready → UI должен считать аккаунт подключённым.
|
||||||
gateway.Status = new TelegramAccountStatusDto(
|
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);
|
TgStatusDto status = await service.GetAsync(CancellationToken.None);
|
||||||
|
|
||||||
Assert.Equal("ready", status.Phase);
|
Assert.Equal("ready", status.Phase);
|
||||||
Assert.True(status.Connected);
|
Assert.True(status.Connected); // connected = авторизация (phase ready), не транспорт
|
||||||
Assert.True(status.Listener);
|
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.Equal(1, status.Monitored);
|
||||||
Assert.True(status.KeysSet);
|
Assert.True(status.KeysSet);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user