refactor: deduplicate IRC parsing (#5678)
This commit is contained in:
@@ -180,6 +180,7 @@
|
||||
}
|
||||
],
|
||||
"flags": "Collapsed|Subscription",
|
||||
"highlightColor": "#64c466ff",
|
||||
"id": "8c26e1ab-b50c-4d9d-bc11-3fd57a941d90",
|
||||
"localizedName": "",
|
||||
"loginName": "supinic",
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
"trailingSpace": true,
|
||||
"type": "SingleLineTextElement",
|
||||
"words": [
|
||||
"a"
|
||||
"b"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -169,6 +169,7 @@
|
||||
"localizedName": "",
|
||||
"loginName": "nerixyz",
|
||||
"messageText": "c",
|
||||
"replyParent": "474f19ab-a1b0-410a-877a-5b0e2ae8be6d",
|
||||
"replyThread": {
|
||||
"replies": [
|
||||
"474f19ab-a1b0-410a-877a-5b0e2ae8be6d",
|
||||
|
||||
@@ -256,6 +256,7 @@
|
||||
}
|
||||
],
|
||||
"flags": "Collapsed|Subscription|SharedMessage",
|
||||
"highlightColor": "#64c466ff",
|
||||
"id": "01cd601f-bc3f-49d5-ab4b-136fa9d6ec22",
|
||||
"localizedName": "",
|
||||
"loginName": "lahoooo",
|
||||
|
||||
@@ -243,6 +243,7 @@
|
||||
}
|
||||
],
|
||||
"flags": "Collapsed|Subscription",
|
||||
"highlightColor": "#64c466ff",
|
||||
"id": "db25007f-7a18-43eb-9379-80131e44d633",
|
||||
"localizedName": "",
|
||||
"loginName": "ronni",
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "singletons/Emotes.hpp"
|
||||
#include "Test.hpp"
|
||||
#include "util/IrcHelpers.hpp"
|
||||
#include "util/VectorMessageSink.hpp"
|
||||
|
||||
#include <IrcConnection>
|
||||
#include <QDebug>
|
||||
@@ -572,19 +573,14 @@ TEST_P(TestIrcMessageHandlerP, Run)
|
||||
{
|
||||
auto channel = makeMockTwitchChannel(u"pajlada"_s, *snapshot);
|
||||
|
||||
std::vector<MessagePtr> prevMessages;
|
||||
VectorMessageSink sink;
|
||||
|
||||
for (auto prevInput : snapshot->param("prevMessages").toArray())
|
||||
{
|
||||
auto *ircMessage = Communi::IrcMessage::fromData(
|
||||
prevInput.toString().toUtf8(), nullptr);
|
||||
ASSERT_NE(ircMessage, nullptr);
|
||||
auto builtMessages = IrcMessageHandler::parseMessageWithReply(
|
||||
channel.get(), ircMessage, prevMessages);
|
||||
for (const auto &builtMessage : builtMessages)
|
||||
{
|
||||
prevMessages.emplace_back(builtMessage);
|
||||
}
|
||||
IrcMessageHandler::parseMessageInto(ircMessage, sink, channel.get());
|
||||
delete ircMessage;
|
||||
}
|
||||
|
||||
@@ -592,13 +588,13 @@ TEST_P(TestIrcMessageHandlerP, Run)
|
||||
Communi::IrcMessage::fromData(snapshot->inputUtf8(), nullptr);
|
||||
ASSERT_NE(ircMessage, nullptr);
|
||||
|
||||
auto builtMessages = IrcMessageHandler::parseMessageWithReply(
|
||||
channel.get(), ircMessage, prevMessages);
|
||||
auto firstAddedMsg = sink.messages().size();
|
||||
IrcMessageHandler::parseMessageInto(ircMessage, sink, channel.get());
|
||||
|
||||
QJsonArray got;
|
||||
for (const auto &msg : builtMessages)
|
||||
for (auto i = firstAddedMsg; i < sink.messages().size(); i++)
|
||||
{
|
||||
got.append(msg->toJson());
|
||||
got.append(sink.messages()[i]->toJson());
|
||||
}
|
||||
|
||||
delete ircMessage;
|
||||
|
||||
Reference in New Issue
Block a user