mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 11:28:15 +00:00
92 lines
2.3 KiB
TypeScript
92 lines
2.3 KiB
TypeScript
import { defaultTestOptions, tempData } from "../ws/start_bot.ts";
|
|
import { assertEquals, assertExists } from "../deps.ts";
|
|
import { cache } from "../../src/cache.ts";
|
|
import { DiscordReaction } from "../../src/types/messages/reaction.ts";
|
|
import { delay } from "../../src/util/utils.ts";
|
|
import { sendMessage } from "../../src/helpers/messages/send_message.ts";
|
|
import { addReaction } from "../../src/helpers/messages/add_reaction.ts";
|
|
import { createEmoji } from "../../src/helpers/emojis/create_emoji.ts"
|
|
|
|
async function ifItFailsBlameWolf(type: "getter" | "raw", custom = false) {
|
|
const message = await sendMessage(tempData.channelId, "Hello World!");
|
|
|
|
// Assertions
|
|
assertExists(message);
|
|
|
|
// Delay the execution by 5 seconds to allow MESSAGE_CREATE event to be processed
|
|
await delay(5000);
|
|
|
|
if (!cache.messages.has(message.id)) {
|
|
throw new Error("The message seemed to be sent but it was not cached.");
|
|
}
|
|
|
|
let emojiId = "❤";
|
|
|
|
if (custom) {
|
|
emojiId = `<:blamewolf:${
|
|
(
|
|
await createEmoji(
|
|
tempData.guildId,
|
|
"blamewolf",
|
|
"https://cdn.discordapp.com/emojis/814955268123000832.png",
|
|
{
|
|
name: "blamewolf",
|
|
image: "https://cdn.discordapp.com/emojis/814955268123000832.png",
|
|
roles: [],
|
|
}
|
|
)
|
|
).id
|
|
}>`;
|
|
}
|
|
|
|
if (type === "raw") {
|
|
await addReaction(message.channelId, message.id, emojiId);
|
|
} else {
|
|
await message.addReaction(emojiId);
|
|
}
|
|
|
|
await delay(5000);
|
|
|
|
assertEquals(
|
|
await cache.messages
|
|
.get(message.id)
|
|
?.reactions?.filter(
|
|
(reaction: DiscordReaction) =>
|
|
reaction.emoji?.name === (custom ? "blamewolf" : "❤")
|
|
).length,
|
|
1
|
|
);
|
|
}
|
|
|
|
Deno.test({
|
|
name: "[message] add a reaction",
|
|
async fn() {
|
|
await ifItFailsBlameWolf("raw");
|
|
},
|
|
...defaultTestOptions,
|
|
});
|
|
|
|
Deno.test({
|
|
name: "[message] message.addReaction()",
|
|
async fn() {
|
|
await ifItFailsBlameWolf("getter");
|
|
},
|
|
...defaultTestOptions,
|
|
});
|
|
|
|
Deno.test({
|
|
name: "[message] add a custom reaction",
|
|
async fn() {
|
|
await ifItFailsBlameWolf("raw", true);
|
|
},
|
|
...defaultTestOptions,
|
|
});
|
|
|
|
Deno.test({
|
|
name: "[message] message.addReaction() with a custom reaction",
|
|
async fn() {
|
|
await ifItFailsBlameWolf("getter", true);
|
|
},
|
|
...defaultTestOptions,
|
|
});
|