mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-03-31 09:33:03 -06:00
Co-authored-by: Tyrrrz <1935960+Tyrrrz@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
90 lines
2.5 KiB
C#
90 lines
2.5 KiB
C#
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using AngleSharp.Dom;
|
|
using CliFx.Infrastructure;
|
|
using DiscordChatExporter.Cli.Commands;
|
|
using DiscordChatExporter.Cli.Tests.Infra;
|
|
using DiscordChatExporter.Cli.Tests.Utils;
|
|
using DiscordChatExporter.Core.Exporting;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace DiscordChatExporter.Cli.Tests.Specs;
|
|
|
|
public class HtmlContentSpecs
|
|
{
|
|
[Fact]
|
|
public async Task I_can_export_a_channel_in_the_HTML_format()
|
|
{
|
|
// Act
|
|
var messages = await ExportWrapper.GetMessagesAsHtmlAsync(ChannelIds.DateRangeTestCases);
|
|
|
|
// Assert
|
|
messages
|
|
.Select(e => e.GetAttribute("data-message-id"))
|
|
.Should()
|
|
.Equal(
|
|
"866674314627121232",
|
|
"866710679758045195",
|
|
"866732113319428096",
|
|
"868490009366396958",
|
|
"868505966528835604",
|
|
"868505969821364245",
|
|
"868505973294268457",
|
|
"885169254029213696"
|
|
);
|
|
|
|
messages
|
|
.SelectMany(e => e.Text())
|
|
.Should()
|
|
.ContainInOrder(
|
|
"Hello world",
|
|
"Goodbye world",
|
|
"Foo bar",
|
|
"Hurdle Durdle",
|
|
"One",
|
|
"Two",
|
|
"Three",
|
|
"Yeet"
|
|
);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task I_can_export_a_channel_in_the_HTML_format_in_the_reverse_order()
|
|
{
|
|
// Arrange
|
|
using var file = TempFile.Create();
|
|
|
|
// Act
|
|
await new ExportChannelsCommand
|
|
{
|
|
Token = Secrets.DiscordToken,
|
|
ChannelIds = [ChannelIds.DateRangeTestCases],
|
|
ExportFormat = ExportFormat.HtmlDark,
|
|
OutputPath = file.Path,
|
|
Locale = "en-US",
|
|
IsUtcNormalizationEnabled = true,
|
|
IsReverseMessageOrder = true,
|
|
}.ExecuteAsync(new FakeConsole());
|
|
|
|
var document = Html.Parse(await File.ReadAllTextAsync(file.Path));
|
|
var messages = document.QuerySelectorAll("[data-message-id]").ToArray();
|
|
|
|
// Assert
|
|
messages
|
|
.Select(e => e.GetAttribute("data-message-id"))
|
|
.Should()
|
|
.Equal(
|
|
"885169254029213696",
|
|
"868505973294268457",
|
|
"868505969821364245",
|
|
"868505966528835604",
|
|
"868490009366396958",
|
|
"866732113319428096",
|
|
"866710679758045195",
|
|
"866674314627121232"
|
|
);
|
|
}
|
|
}
|