Files
Telegram-Panel/tests/TelegramPanel.Web.Tests/DataSyncTaskConfigTests.cs
jack b536c73e54 release: 发布 v1.31.75 Issues 修复
合并 dev 集成结果到 main,发布 v1.31.75。云端 dev-latest 部署按用户指示跳过,主分支多架构 Docker 检查当时仍在运行。
2026-08-24 08:18:29 +08:00

37 lines
1.5 KiB
C#

using System.Text.Json;
using TelegramPanel.Web.Services;
using Xunit;
namespace TelegramPanel.Web.Tests;
public sealed class DataSyncTaskConfigTests
{
[Fact]
public void BuildSyncTaskConfig_UsesCamelCaseForFailureDetails()
{
var config = DataSyncService.BuildSyncTaskConfig(
trigger: "test",
totalAccounts: 1,
processedAccounts: 1,
failedAccounts: 1,
totalChannelsSynced: 0,
totalGroupsSynced: 0,
failures: new[] { new DataSyncService.SyncFailureItem(42, "8613800000000", "连接失败") },
skippedAccounts: new[] { new DataSyncService.SyncSkippedItem(7, "8613900000000", "Session 不可用") },
error: null);
using var document = JsonDocument.Parse(config);
var failure = document.RootElement.GetProperty("failures")[0];
Assert.Equal(42, failure.GetProperty("accountId").GetInt32());
Assert.Equal("8613800000000", failure.GetProperty("phone").GetString());
Assert.Equal("连接失败", failure.GetProperty("error").GetString());
Assert.False(failure.TryGetProperty("AccountId", out _));
var skipped = document.RootElement.GetProperty("skippedAccounts")[0];
Assert.Equal(7, skipped.GetProperty("AccountId").GetInt32());
Assert.Equal("8613900000000", skipped.GetProperty("Phone").GetString());
Assert.Equal("Session 不可用", skipped.GetProperty("Reason").GetString());
}
}