From 6a94fe8f71878c4a7a72e88ba618ad8c2cc07cca Mon Sep 17 00:00:00 2001 From: Quentin Nicolini Date: Sat, 30 Oct 2021 14:04:45 +0200 Subject: [PATCH] [Unit Test] messages: getMessages --- tests/helpers/messages/getMessages.ts | 32 +++++++++++++++++++++++++++ tests/mod.ts | 8 +++++++ 2 files changed, 40 insertions(+) create mode 100644 tests/helpers/messages/getMessages.ts diff --git a/tests/helpers/messages/getMessages.ts b/tests/helpers/messages/getMessages.ts new file mode 100644 index 000000000..da914fd8d --- /dev/null +++ b/tests/helpers/messages/getMessages.ts @@ -0,0 +1,32 @@ +import { Bot } from "../../../src/bot.ts"; +import { assertEquals, assertExists } from "../../deps.ts"; +import { delayUntil } from "../../utils.ts"; + +export async function getMessagesTest(bot: Bot, channelId: bigint, t: Deno.TestContext) { + const message = await bot.helpers.sendMessage(channelId, "Hello World!"); + const secondMessage = await bot.helpers.sendMessage(channelId, "Hello World 2!"); + const thirdMessage = await bot.helpers.sendMessage(channelId, "Hello World 3!"); + + // Assertions + assertExists(message); + assertExists(secondMessage); + assertExists(thirdMessage); + // Delay the execution by to allow MESSAGE_CREATE event to be processed + await delayUntil(10000, () => bot.cache.messages.has(message.id) && bot.cache.messages.has(secondMessage.id) && bot.cache.messages.has(thirdMessage.id)); + // Make sure the messages was created. + if ( + !bot.cache.messages.has(message.id) || + !bot.cache.messages.has(secondMessage.id) || + !bot.cache.messages.has(thirdMessage.id) + ) { + throw new Error("The message seemed to be sent but it was not cached."); + } + + // Fetch the messages + const fetchedMessages = await bot.helpers.getMessages(channelId, { + after: message.id, + limit: 2, + }); + // Check if getMessage has worked + assertEquals(fetchedMessages?.length, 2); +} diff --git a/tests/mod.ts b/tests/mod.ts index 3dc66bdd6..9e6c8c6bc 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -2,6 +2,7 @@ import { TOKEN } from "../configs.ts"; import { createBot, createEventHandlers, DiscordChannelTypes, startBot, stopBot } from "../mod.ts"; import { assertEquals, assertExists } from "./deps.ts"; import { deleteMessageWithReasonTest, deleteMessageWithoutReasonTest } from "./helpers/messages/deleteMessage.ts"; +import { getMessagesTest } from "./helpers/messages/getMessages.ts"; import { delayUntil } from "./utils.ts"; // CONDUCT LOCAL TESTS FIRST BEFORE RUNNING API TEST @@ -104,6 +105,13 @@ Deno.test("[Bot] - Starting Tests", async (t) => { }, ...sanitizeMode, }), + t.step({ + name: "[message] fetch messages", + fn: async (t) => { + await getMessagesTest(bot, channel.id, t); + }, + ...sanitizeMode, + }), ]); }); });