using System.Threading.Tasks; using AngleSharp.Dom; using DiscordChatExporter.Cli.Tests.Fixtures; using DiscordChatExporter.Cli.Tests.TestData; using DiscordChatExporter.Core.Discord; using FluentAssertions; using Xunit; namespace DiscordChatExporter.Cli.Tests.Specs; [Collection(nameof(ExportWrapperCollection))] public class HtmlMentionSpecs { private readonly ExportWrapperFixture _exportWrapper; public HtmlMentionSpecs(ExportWrapperFixture exportWrapper) { _exportWrapper = exportWrapper; } [Fact] public async Task User_mention_is_rendered_correctly() { // Act var message = await _exportWrapper.GetMessageAsHtmlAsync( ChannelIds.MentionTestCases, Snowflake.Parse("866458840245076028") ); // Assert message.Text().Should().Contain("User mention: @Tyrrrz"); message.InnerHtml.Should().Contain("Tyrrrz#5447"); } [Fact] public async Task Text_channel_mention_is_rendered_correctly() { // Act var message = await _exportWrapper.GetMessageAsHtmlAsync( ChannelIds.MentionTestCases, Snowflake.Parse("866459040480624680") ); // Assert message.Text().Should().Contain("Text channel mention: #mention-tests"); } [Fact] public async Task Voice_channel_mention_is_rendered_correctly() { // Act var message = await _exportWrapper.GetMessageAsHtmlAsync( ChannelIds.MentionTestCases, Snowflake.Parse("866459175462633503") ); // Assert message.Text().Should().Contain("Voice channel mention: 🔊general"); } [Fact] public async Task Role_mention_is_rendered_correctly() { // Act var message = await _exportWrapper.GetMessageAsHtmlAsync( ChannelIds.MentionTestCases, Snowflake.Parse("866459254693429258") ); // Assert message.Text().Should().Contain("Role mention: @Role 1"); } }