Files
Telegram-Panel/tests/TelegramPanel.Web.Tests/TelegramBotActiveTargetTests.cs
jack 2da09468d8 release: 发布 v1.31.57 公开 issue 修复与账号体验优化
## 本次版本主要更新

- 修复公开 issue 相关任务配置体验:消息换行、Bot start 链接、历史任务名称和活跃任务消息规则。
- 优化任务中心创建/编辑:支持自定义即时任务名称、移动端纵向排版、回复/转发/去重配置。
- 优化账号选择:账号显示用户可见编号,任务表单账号来源在“账号分类选择”和“账号编号填写”之间二选一。
- 优化账号分类、API 权重输入和批量任务并发设置即时生效。

Dev 已通过云端验收:commit db1a83d,dev-latest healthy,/ui/dashboard=200,/api/panel/auth/me version=1.31.57,任务页资源包含账号来源切换并移除旧合并文案。
2026-08-17 01:23:30 +08:00

89 lines
3.2 KiB
C#

using TelegramPanel.Core.Services.Telegram;
using TL;
using Xunit;
namespace TelegramPanel.Web.Tests;
public sealed class TelegramBotActiveTargetTests
{
[Theory]
[InlineData("@examplebot", "examplebot")]
[InlineData("examplebot", "examplebot")]
[InlineData("https://t.me/examplebot?start=abc", "examplebot")]
[InlineData("https://t.me/SpamBot", "SpamBot")]
[InlineData("t.me/examplebot?start=abc", "examplebot")]
[InlineData("tg://resolve?domain=examplebot&start=abc", "examplebot")]
public void Bot活跃目标识别支持常见Bot链接(string input, string expected)
{
Assert.True(AccountTelegramToolsService.TryNormalizeTelegramBotUsername(input, out var username));
Assert.Equal(expected, username);
}
[Theory]
[InlineData("@regularuser")]
[InlineData("https://t.me/+inviteHash")]
[InlineData("-1001234567890")]
[InlineData("https://t.me/channelname")]
public void Bot目标不会被抢先按Bot私聊解析(string input)
{
Assert.False(AccountTelegramToolsService.TryNormalizeTelegramBotUsername(input, out _));
}
[Theory]
[InlineData("https://t.me/channelname/123", "channelname", 123)]
[InlineData("t.me/channelname/456?single", "channelname", 456)]
[InlineData("https://t.me/c/1234567890/789", "-1001234567890", 789)]
[InlineData("https://t.me/c/1234567890/11/12", "-1001234567890", 12)]
public void (string input, string expectedSource, int expectedMessageId)
{
Assert.True(AccountTelegramToolsService.TryParseTelegramMessageReference(input, out var reference, out var error), error);
Assert.NotNull(reference);
Assert.Equal(expectedSource, reference!.SourceTarget);
Assert.Equal(expectedMessageId, reference.MessageId);
}
[Theory]
[InlineData("https://t.me/channelname")]
[InlineData("https://example.com/channel/123")]
public void Id或非Telegram链接(string input)
{
Assert.False(AccountTelegramToolsService.TryParseTelegramMessageReference(input, out var reference, out var error));
Assert.Null(reference);
Assert.False(string.IsNullOrWhiteSpace(error));
}
[Fact]
public void 使()
{
var message = new Message
{
flags = Message.Flags.out_,
from_id = new PeerUser { user_id = 999 }
};
Assert.True(AccountTelegramToolsService.IsMessageFromCurrentAccount(message, accountUserId: 123));
}
[Fact]
public void UserId()
{
var message = new Message
{
from_id = new PeerUser { user_id = 123 }
};
Assert.True(AccountTelegramToolsService.IsMessageFromCurrentAccount(message, accountUserId: 123));
}
[Fact]
public void ()
{
var message = new Message
{
from_id = new PeerUser { user_id = 456 }
};
Assert.False(AccountTelegramToolsService.IsMessageFromCurrentAccount(message, accountUserId: 123));
}
}