From 889eb2e16c46b1f5266384f3b700c08e478a7fc1 Mon Sep 17 00:00:00 2001 From: TriForMine Date: Sat, 10 Apr 2021 00:20:05 +0200 Subject: [PATCH] tests: add add_reaction test --- tests/messages/add_reaction.ts | 56 ++++++++++++++++++++++++++++++++++ tests/mod.ts | 1 + tests/ws/start_bot.ts | 7 ++++- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 tests/messages/add_reaction.ts diff --git a/tests/messages/add_reaction.ts b/tests/messages/add_reaction.ts new file mode 100644 index 000000000..304ce9869 --- /dev/null +++ b/tests/messages/add_reaction.ts @@ -0,0 +1,56 @@ +import { + addReaction, + cache, + delay, + DiscordReaction, + sendMessage, +} from "../../mod.ts"; +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertEquals, assertExists } from "../deps.ts"; + +async function ifItFailsBlameWolf(type: "getter" | "raw") { + 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.", + ); + } + + if (type === "raw") { + await addReaction(message.channelId, message.id, "❤"); + } else { + await message.addReaction("❤"); + } + + await delay(5000); + + assertEquals( + await cache.messages.get(message.id)?.reactions?.filter(( + reaction: DiscordReaction, + ) => reaction.emoji?.name === "❤").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, +}); diff --git a/tests/mod.ts b/tests/mod.ts index 141ec698e..48e24cd7c 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -16,6 +16,7 @@ import "./channels/create_channel.ts"; import "./channels/delete_channel.ts"; // Messages tests +import "./messages/add_reaction.ts"; import "./messages/create_message.ts"; import "./messages/delete_message.ts"; import "./messages/edit_message.ts"; diff --git a/tests/ws/start_bot.ts b/tests/ws/start_bot.ts index 13a8bef54..c614d8ae1 100644 --- a/tests/ws/start_bot.ts +++ b/tests/ws/start_bot.ts @@ -33,7 +33,12 @@ Deno.test({ await startBot({ token, - intents: ["GUILD_MESSAGES", "GUILDS"], + intents: [ + "GUILD_MESSAGES", + "GUILDS", + "GUILD_EMOJIS", + "GUILD_MESSAGE_REACTIONS", + ], }); // Delay the execution by 5 seconds