mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-15 19:08:17 +00:00
feat: add scheduled events unit tests
This commit is contained in:
@@ -2,6 +2,7 @@ import { Bot } from "../../../../src/bot.ts";
|
||||
import { ChannelTypes } from "../../../../src/types/channels/channelTypes.ts";
|
||||
import { CreateScheduledEvent, ScheduledEventEntityType } from "../../../../src/types/guilds/scheduledEvents.ts";
|
||||
import { assertEquals, assertExists } from "../../../deps.ts";
|
||||
import { CACHED_COMMUNITY_GUILD_ID } from "../../../mod.ts";
|
||||
|
||||
export async function createScheduledEventTests(
|
||||
bot: Bot,
|
||||
@@ -9,23 +10,34 @@ export async function createScheduledEventTests(
|
||||
options: CreateScheduledEvent,
|
||||
t: Deno.TestContext
|
||||
) {
|
||||
if ([ScheduledEventEntityType.StageInstance, ScheduledEventEntityType.Voice].includes(options.entityType)) {
|
||||
const channel = await bot.helpers.createChannel(guildId, {
|
||||
name: "entity",
|
||||
type:
|
||||
options.entityType === ScheduledEventEntityType.Voice ? ChannelTypes.GuildVoice : ChannelTypes.GuildStageVoice,
|
||||
});
|
||||
const channel = [
|
||||
ScheduledEventEntityType.StageInstance,
|
||||
ScheduledEventEntityType.Voice,
|
||||
ScheduledEventEntityType.External,
|
||||
].includes(options.entityType)
|
||||
? await bot.helpers.createChannel(guildId, {
|
||||
name: "entity",
|
||||
type:
|
||||
options.entityType === ScheduledEventEntityType.Voice
|
||||
? ChannelTypes.GuildVoice
|
||||
: options.entityType === ScheduledEventEntityType.StageInstance
|
||||
? ChannelTypes.GuildStageVoice
|
||||
: ChannelTypes.GuildText,
|
||||
})
|
||||
: undefined;
|
||||
|
||||
options.channelId = channel.id;
|
||||
}
|
||||
if (channel && options.entityType !== ScheduledEventEntityType.External) options.channelId = channel.id;
|
||||
|
||||
const event = await bot.helpers.createScheduledEvent(guildId, options);
|
||||
|
||||
if (channel && guildId === CACHED_COMMUNITY_GUILD_ID) {
|
||||
await bot.helpers.deleteChannel(channel.id);
|
||||
}
|
||||
|
||||
// Assertions
|
||||
assertExists(event.id);
|
||||
|
||||
assertEquals(event.channelId, options.channelId);
|
||||
assertEquals(event.speakerIds?.length, options.speakerIds?.length);
|
||||
assertEquals(event.location, options.location);
|
||||
assertEquals(event.name, options.name);
|
||||
assertEquals(event.description, options.description);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import { Bot } from "../../../../src/bot.ts";
|
||||
import { ScheduledEventEntityType, ScheduledEventPrivacyLevel } from "../../../../src/types/guilds/scheduledEvents.ts";
|
||||
|
||||
export async function deleteScheduledEventTests(bot: Bot, guildId: bigint, t: Deno.TestContext) {
|
||||
const event = await bot.helpers.createScheduledEvent(guildId, {
|
||||
name: "lfg",
|
||||
description: "itoh is an imposter",
|
||||
scheduledStartTime: Date.now() + 600000,
|
||||
scheduledEndTime: Date.now() + 1200000,
|
||||
privacyLevel: ScheduledEventPrivacyLevel.GuildOnly,
|
||||
entityType: ScheduledEventEntityType.External,
|
||||
location: "heaven",
|
||||
});
|
||||
await bot.helpers.deleteScheduledEvent(guildId, event.id);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import { Bot } from "../../../../src/bot.ts";
|
||||
import { ChannelTypes } from "../../../../src/types/channels/channelTypes.ts";
|
||||
import { CreateScheduledEvent, ScheduledEventEntityType, ScheduledEventPrivacyLevel } from "../../../../src/types/guilds/scheduledEvents.ts";
|
||||
import { assertEquals } from "../../../deps.ts";
|
||||
|
||||
export async function editScheduledEventTests(bot: Bot, guildId: bigint, t: Deno.TestContext) {
|
||||
const channel = await bot.helpers.createChannel(guildId, {
|
||||
name: "entity",
|
||||
type: ChannelTypes.GuildStageVoice,
|
||||
});
|
||||
const event = await bot.helpers.createScheduledEvent(guildId, {
|
||||
name: "lfg",
|
||||
description: "itoh is an imposter",
|
||||
scheduledStartTime: Date.now() + 600000,
|
||||
privacyLevel: ScheduledEventPrivacyLevel.GuildOnly,
|
||||
entityType: ScheduledEventEntityType.StageInstance,
|
||||
channelId: channel.id,
|
||||
});
|
||||
let edited = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
name: "lfg2",
|
||||
});
|
||||
|
||||
assertEquals(event.name, "lfg");
|
||||
assertEquals(edited.name, "lfg2");
|
||||
assertEquals(edited.description, "itoh is an imposter");
|
||||
|
||||
edited = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
description: "skillz is not an imposter",
|
||||
});
|
||||
assertEquals(edited.description, "skillz is not an imposter");
|
||||
|
||||
let edited2 = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
scheduledStartTime: edited.scheduledStartTime - 60000,
|
||||
});
|
||||
assertEquals(edited.scheduledStartTime > edited2.scheduledStartTime, true);
|
||||
|
||||
let edited3 = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
scheduledStartTime: edited.scheduledStartTime + 600000,
|
||||
});
|
||||
assertEquals(edited2.scheduledStartTime < edited3.scheduledStartTime, true);
|
||||
|
||||
const voice = await bot.helpers.createChannel(guildId, {
|
||||
name: "xxx",
|
||||
type: ChannelTypes.GuildVoice,
|
||||
});
|
||||
edited2 = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
entityType: ScheduledEventEntityType.Voice,
|
||||
channelId: voice.id,
|
||||
});
|
||||
assertEquals(edited.entityType, ScheduledEventEntityType.StageInstance);
|
||||
assertEquals(edited2.entityType, ScheduledEventEntityType.Voice);
|
||||
|
||||
edited2 = await bot.helpers.editScheduledEvent(guildId, event.id, {
|
||||
entityType: ScheduledEventEntityType.External,
|
||||
// @ts-ignore
|
||||
channelId: null,
|
||||
scheduledStartTime: Date.now() + 60000,
|
||||
scheduledEndTime: Date.now() + 600000,
|
||||
location: "heaven",
|
||||
});
|
||||
assertEquals(edited2.entityType, ScheduledEventEntityType.External);
|
||||
|
||||
await bot.helpers.deleteChannel(voice.id);
|
||||
await bot.helpers.deleteChannel(channel.id);
|
||||
}
|
||||
Reference in New Issue
Block a user