diff --git a/src/helpers/channels/create_channel.ts b/src/helpers/channels/create_channel.ts index 57ebc3106..39d09b60f 100644 --- a/src/helpers/channels/create_channel.ts +++ b/src/helpers/channels/create_channel.ts @@ -14,7 +14,6 @@ import { /** Create a channel in your server. Bot needs MANAGE_CHANNEL permissions in the server. */ export async function createChannel( guildId: string, - name: string, options?: CreateGuildChannel, ) { const requiredPerms: Set = new Set(["MANAGE_CHANNELS"]); @@ -31,7 +30,6 @@ export async function createChannel( endpoints.GUILD_CHANNELS(guildId), { ...options, - name, permission_overwrites: options?.permissionOverwrites?.map((perm) => ({ ...perm, diff --git a/src/rest/rest.ts b/src/rest/rest.ts index 856c176a1..d61391df3 100644 --- a/src/rest/rest.ts +++ b/src/rest/rest.ts @@ -23,7 +23,7 @@ export const rest = { // BY DEFAULT WE WILL LOG ALL ERRORS TO CONSOLE. USER CAN CHOOSE TO OVERRIDE error: console.error, // PLACEHOLDERS TO ALLOW USERS TO CUSTOMIZE - debug: function (_type, error) {}, + debug: function (_type, error, ...args) {}, fetching() {}, fetched() {}, fetchSuccess() {}, diff --git a/tests/channels/create_channel.ts b/tests/channels/create_channel.ts new file mode 100644 index 000000000..7a0e8fdd0 --- /dev/null +++ b/tests/channels/create_channel.ts @@ -0,0 +1,27 @@ +import { cache, createChannel, delay } from "../../mod.ts"; +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; +import { assertExists } from "../deps.ts"; + +Deno.test({ + name: "[channel] create a new channel", + async fn() { + const channel = await createChannel(tempData.guildId, { + name: "Discordeno-test", + }); + + // Assertions + assertExists(channel); + + tempData.channelId = channel.id; + + // Delay the execution by 5 seconds to allow CHANNEL_CREATE event to be processed + await delay(5000); + + if (!cache.channels.has(channel.id)) { + throw new Error( + "The channel seemed to be created but it was not cached.", + ); + } + }, + ...defaultTestOptions, +}); diff --git a/tests/channels/delete_channel.ts b/tests/channels/delete_channel.ts new file mode 100644 index 000000000..401b91170 --- /dev/null +++ b/tests/channels/delete_channel.ts @@ -0,0 +1,62 @@ +import { cache, createChannel, delay, deleteChannel } from "../../mod.ts"; +import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; + +Deno.test({ + name: "[channel] delete a channel without a reason.", + async fn() { + // Create the necessary channels + const channel = await createChannel(tempData.guildId, { + name: "delete-channel", + }); + // wait 5 seconds to give it time for CHANNEL_CREATE event + await delay(5000); + // Make sure the channel was created. + if (!cache.channels.has(channel.id)) { + throw new Error( + "The channel should have been created but it is not in the cache.", + ); + } + + // Delete the channel now without a reason + await deleteChannel(tempData.guildId, channel.id); + // wait 5 seconds to give it time for CHANNEL_DELETE event + await delay(5000); + // Make sure it is gone from cache + if (cache.channels.has(channel.id)) { + throw new Error( + "The channel should have been deleted but it is still in cache.", + ); + } + }, + ...defaultTestOptions, +}); + +Deno.test({ + name: "[channel] delete a channel with a reason.", + async fn() { + // Create the necessary channels + const channel = await createChannel(tempData.guildId, { + name: "delete-channel", + }); + // wait 5 seconds to give it time for CHANNEL_CREATE event + await delay(5000); + // Make sure the channel was created. + if (!cache.channels.has(channel.id)) { + throw new Error( + "The channel should have been created but it is not in the cache.", + ); + } + + // Delete the channel now without a reason + await deleteChannel(tempData.guildId, channel.id, "with a reason"); + // wait 5 seconds to give it time for CHANNEL_DELETE event + await delay(5000); + // Make sure it is gone from cache + if (cache.channels.has(channel.id)) { + throw new Error( + "The channel should have been deleted but it is still in cache.", + ); + } + }, + ...defaultTestOptions, +}); diff --git a/tests/guilds/create_guild.ts b/tests/guilds/create_guild.ts index b63546e72..7da00835b 100644 --- a/tests/guilds/create_guild.ts +++ b/tests/guilds/create_guild.ts @@ -1,6 +1,6 @@ import { cache, createGuild, delay } from "../../mod.ts"; import { defaultTestOptions, tempData } from "../ws/start_bot.ts"; -import { assertEquals, assertExists } from "../deps.ts"; +import { assertExists } from "../deps.ts"; Deno.test({ name: "[guild] create a new guild", @@ -13,7 +13,6 @@ Deno.test({ assertExists(guild); tempData.guildId = guild.id; - assertEquals(tempData.guildId, guild.id); // Delay the execution by 5 seconds to allow GUILD_CREATE event to be processed await delay(5000); diff --git a/tests/mod.ts b/tests/mod.ts index ef2fafdd2..229a86911 100644 --- a/tests/mod.ts +++ b/tests/mod.ts @@ -10,5 +10,11 @@ import "./util/utils.ts"; // First initate the connection import "./ws/start_bot.ts"; import "./guilds/create_guild.ts"; + +// Channel tests +import "./channels/create_channel.ts"; +import "./channels/delete_channel.ts"; + +// Final cleanup import "./guilds/delete_server.ts"; import "./ws/ws_close.ts";