diff --git a/tests/helpers/messages/getMessage.ts b/tests/helpers/messages/getMessage.ts new file mode 100644 index 000000000..58c037322 --- /dev/null +++ b/tests/helpers/messages/getMessage.ts @@ -0,0 +1,22 @@ +import { Bot } from "../../../src/bot.ts"; +import { assertEquals, assertExists } from "../../deps.ts"; +import { delayUntil } from "../../utils.ts"; + +export async function getMessageTest(bot: Bot, channelId: bigint, t: Deno.TestContext) { + const message = await bot.helpers.sendMessage(channelId, "Hello World!"); + + // Assertions + assertExists(message); + // Delay the execution by to allow MESSAGE_CREATE event to be processed + await delayUntil(10000, () => bot.cache.messages.has(message.id)); + // Make sure the message was created. + if (!bot.cache.messages.has(message.id)) { + throw new Error("The message seemed to be sent but it was not cached. Reason: ${reason}"); + } + + // Fetch the message + const fetchedMessage = await bot.helpers.getMessage(channelId, message.id); + // Check if getMessage has worked + assertEquals(fetchedMessage.id, message.id); + assertEquals(fetchedMessage.content, message.content); +} diff --git a/tests/mod.ts b/tests/mod.ts index 160cd8c0e..7cb1a9c3b 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -11,6 +11,7 @@ import { // CONDUCT LOCAL TESTS FIRST BEFORE RUNNING API TEST import "./local.ts"; +import { getMessageTest } from "./helpers/messages/getMessage.ts"; Deno.test("[Bot] - Starting Tests", async (t) => { // CHANGE TO TRUE WHEN DEBUGGING SANITIZATION ERRORS @@ -118,6 +119,13 @@ Deno.test("[Bot] - Starting Tests", async (t) => { }, ...sanitizeMode, }), + t.step({ + name: "[message] fetch a message", + fn: async (t) => { + await getMessageTest(bot, channel.id, t); + }, + ...sanitizeMode, + }), ]); }); });