diff --git a/tests/channels/delete_channel.ts b/tests/channels/delete_channel.ts index 3d3d95fad..d2b46cb05 100644 --- a/tests/channels/delete_channel.ts +++ b/tests/channels/delete_channel.ts @@ -12,7 +12,7 @@ Deno.test({ name: "delete-channel", }); // wait 5 seconds to give it time for CHANNEL_CREATE event - delayUntil(3000, () => cache.channels.has(channel.id)); + await delayUntil(3000, () => cache.channels.has(channel.id)); // Make sure the channel was created. if (!cache.channels.has(channel.id)) { throw new Error( @@ -23,7 +23,7 @@ Deno.test({ // Delete the channel now without a reason await deleteChannel(tempData.guildId, channel.id); // wait 5 seconds to give it time for CHANNEL_DELETE event - delayUntil(3000, () => !cache.channels.has(channel.id)); + await delayUntil(3000, () => !cache.channels.has(channel.id)); // Make sure it is gone from cache if (cache.channels.has(channel.id)) { throw new Error( diff --git a/tests/emojis/create_emoji.ts b/tests/emojis/create_emoji.ts new file mode 100644 index 000000000..67ee228bd --- /dev/null +++ b/tests/emojis/create_emoji.ts @@ -0,0 +1,28 @@ +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import {assertEquals, assertExists} from "../deps.ts"; +import { cache } from "../../src/cache.ts"; +import { createEmoji } from "../../src/helpers/emojis/create_emoji.ts"; +import { delayUntil } from "../util/delay_until.ts"; + +Deno.test({ + name: "[emoji] create an emoji", + async fn() { + const emoji = await createEmoji( + tempData.guildId, + "blamewolf", + "https://cdn.discordapp.com/emojis/814955268123000832.png", + { + name: "blamewolf", + image: "https://cdn.discordapp.com/emojis/814955268123000832.png", + roles: [], + } + ); + + assertExists(emoji); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + assertEquals(cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id), true) + }, + ...defaultTestOptions, +}); diff --git a/tests/emojis/delete_emoji.ts b/tests/emojis/delete_emoji.ts new file mode 100644 index 000000000..0c5ee8c5b --- /dev/null +++ b/tests/emojis/delete_emoji.ts @@ -0,0 +1,45 @@ +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertEquals, assertExists } from "../deps.ts"; +import { cache } from "../../src/cache.ts"; +import { createEmoji } from "../../src/helpers/emojis/create_emoji.ts"; +import { delayUntil } from "../util/delay_until.ts"; +import {deleteEmoji} from "../../src/helpers/emojis/delete_emoji.ts"; + +async function ifItFailsBlameWolf(reason?: string) { + const emoji = await createEmoji( + tempData.guildId, + "blamewolf", + "https://cdn.discordapp.com/emojis/814955268123000832.png", + { + name: "blamewolf", + image: "https://cdn.discordapp.com/emojis/814955268123000832.png", + roles: [], + } + ); + + assertExists(emoji); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + await deleteEmoji(tempData.guildId, emoji.id!, reason); + + await delayUntil(10000, () => !cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + assertEquals(cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id), false) +} + +Deno.test({ + name: "[emoji] delete an emoji without a reason", + async fn() { + await ifItFailsBlameWolf(); + }, + ...defaultTestOptions, +}); + +Deno.test({ + name: "[emoji] delete an emoji with a reason", + async fn() { + await ifItFailsBlameWolf("with a reason"); + }, + ...defaultTestOptions, +}); diff --git a/tests/emojis/edit_emoji.ts b/tests/emojis/edit_emoji.ts new file mode 100644 index 000000000..e673a8629 --- /dev/null +++ b/tests/emojis/edit_emoji.ts @@ -0,0 +1,35 @@ +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertEquals, assertExists } from "../deps.ts"; +import { cache } from "../../src/cache.ts"; +import { createEmoji } from "../../src/helpers/emojis/create_emoji.ts"; +import { delayUntil } from "../util/delay_until.ts"; +import {editEmoji} from "../../src/helpers/emojis/edit_emoji.ts"; + +Deno.test({ + name: "[emoji] edit an emoji", + async fn() { + const emoji = await createEmoji( + tempData.guildId, + "blamewolf", + "https://cdn.discordapp.com/emojis/814955268123000832.png", + { + name: "blamewolf", + image: "https://cdn.discordapp.com/emojis/814955268123000832.png", + roles: [], + } + ); + + assertExists(emoji); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + await editEmoji(tempData.guildId, emoji.id, { + name: "blamewolf_infinite" + }); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.get(emoji.id)?.name === "blamewolf_infinite"); + + assertEquals(cache.guilds.get(tempData.guildId)?.emojis?.get(emoji.id)?.name, "blamewolf_infinite") + }, + ...defaultTestOptions, +}); diff --git a/tests/emojis/get_emoji.ts b/tests/emojis/get_emoji.ts new file mode 100644 index 000000000..20b7baf7c --- /dev/null +++ b/tests/emojis/get_emoji.ts @@ -0,0 +1,35 @@ +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertEquals, assertExists } from "../deps.ts"; +import { cache } from "../../src/cache.ts"; +import { createEmoji } from "../../src/helpers/emojis/create_emoji.ts"; +import { delayUntil } from "../util/delay_until.ts"; +import {getEmoji} from "../../src/helpers/emojis/get_emoji.ts"; + +Deno.test({ + name: "[emoji] get an emoji", + async fn() { + const emoji = await createEmoji( + tempData.guildId, + "blamewolf", + "https://cdn.discordapp.com/emojis/814955268123000832.png", + { + name: "blamewolf", + image: "https://cdn.discordapp.com/emojis/814955268123000832.png", + roles: [], + } + ); + + assertExists(emoji); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + cache.guilds.get(tempData.guildId)?.emojis?.delete(emoji.id); + + await getEmoji(tempData.guildId, emoji.id!); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id)); + + assertEquals(cache.guilds.get(tempData.guildId)?.emojis?.has(emoji.id), true); + }, + ...defaultTestOptions, +}); diff --git a/tests/emojis/get_emojis.ts b/tests/emojis/get_emojis.ts new file mode 100644 index 000000000..8f89c27f4 --- /dev/null +++ b/tests/emojis/get_emojis.ts @@ -0,0 +1,19 @@ +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertEquals } from "../deps.ts"; +import { cache } from "../../src/cache.ts"; +import { delayUntil } from "../util/delay_until.ts"; +import { getEmojis } from "../../src/helpers/mod.ts"; + +Deno.test({ + name: "[emoji] get emojis", + async fn() { + cache.guilds.get(tempData.guildId)?.emojis?.clear(); + + await getEmojis(tempData.guildId); + + await delayUntil(10000, () => cache.guilds.get(tempData.guildId)?.emojis?.size > 0); + + assertEquals(cache.guilds.get(tempData.guildId)?.emojis?.size > 0, true); + }, + ...defaultTestOptions, +}); diff --git a/tests/mod.ts b/tests/mod.ts index e2c739dc9..216393c9f 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -7,7 +7,7 @@ import "./util/utils.ts"; // API TESTING BELOW -// First initate the connection +// First initiate the connection import "./ws/start_bot.ts"; import "./guilds/create_guild.ts"; @@ -16,6 +16,13 @@ import "./channels/create_channel.ts"; import "./channels/category_children.ts"; import "./channels/delete_channel.ts"; +// Emojis tests +import "./emojis/create_emoji.ts"; +import "./emojis/delete_emoji.ts"; +import "./emojis/edit_emoji.ts"; +import "./emojis/get_emoji.ts"; +import "./emojis/get_emojis.ts"; + // Messages tests import "./messages/add_reaction.ts"; import "./messages/add_reactions.ts";