mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 17:30:07 +00:00
test: add emoji e2e test
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { routes } from '@discordeno/constant'
|
||||
import TRANSFORMERS from '@discordeno/transformer'
|
||||
import type {
|
||||
BigString,
|
||||
Camelize,
|
||||
@@ -41,32 +42,7 @@ export async function createEmoji (
|
||||
} as DiscordCreateGuildEmoji
|
||||
)
|
||||
|
||||
return {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
roles: result.roles,
|
||||
user: result.user && {
|
||||
id: result.user.id,
|
||||
username: result.user.username,
|
||||
discriminator: result.user.discriminator,
|
||||
avatar: result.user.avatar,
|
||||
bot: result.user.bot,
|
||||
system: result.user.system,
|
||||
mfaEnabled: result.user.mfa_enabled,
|
||||
banner: result.user.banner,
|
||||
accentColor: result.user.accent_color,
|
||||
locale: result.user.locale,
|
||||
verified: result.user.verified,
|
||||
email: result.user.email,
|
||||
flags: result.user.flags,
|
||||
premiumType: result.user.premium_type,
|
||||
publicFlags: result.user.public_flags
|
||||
},
|
||||
requireColons: result.require_colons,
|
||||
managed: result.managed,
|
||||
animated: result.animated,
|
||||
available: result.animated
|
||||
}
|
||||
return TRANSFORMERS.emoji(result)
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/emoji#create-guild-emoji */
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { routes } from '@discordeno/constant'
|
||||
import TRANSFORMERS from '@discordeno/transformer'
|
||||
import type {
|
||||
BigString,
|
||||
Camelize,
|
||||
@@ -43,32 +44,7 @@ export async function editEmoji (
|
||||
} as DiscordModifyGuildEmoji
|
||||
)
|
||||
|
||||
return {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
roles: result.roles,
|
||||
user: result.user && {
|
||||
id: result.user.id,
|
||||
username: result.user.username,
|
||||
discriminator: result.user.discriminator,
|
||||
avatar: result.user.avatar,
|
||||
bot: result.user.bot,
|
||||
system: result.user.system,
|
||||
mfaEnabled: result.user.mfa_enabled,
|
||||
banner: result.user.banner,
|
||||
accentColor: result.user.accent_color,
|
||||
locale: result.user.locale,
|
||||
verified: result.user.verified,
|
||||
email: result.user.email,
|
||||
flags: result.user.flags,
|
||||
premiumType: result.user.premium_type,
|
||||
publicFlags: result.user.public_flags
|
||||
},
|
||||
requireColons: result.require_colons,
|
||||
managed: result.managed,
|
||||
animated: result.animated,
|
||||
available: result.animated
|
||||
}
|
||||
return TRANSFORMERS.emoji(result)
|
||||
}
|
||||
|
||||
/** https://discord.com/developers/docs/resources/emoji#modify-guild-emoji */
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { routes } from '@discordeno/constant'
|
||||
import TRANSFORMERS from '@discordeno/transformer'
|
||||
import type { BigString, Camelize, DiscordEmoji } from '@discordeno/types'
|
||||
import type { RestManager } from '../../restManager.js'
|
||||
|
||||
@@ -22,30 +23,5 @@ export async function getEmoji (
|
||||
routes.GUILD_EMOJI(guildId, emojiId)
|
||||
)
|
||||
|
||||
return {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
roles: result.roles,
|
||||
user: result.user && {
|
||||
id: result.user.id,
|
||||
username: result.user.username,
|
||||
discriminator: result.user.discriminator,
|
||||
avatar: result.user.avatar,
|
||||
bot: result.user.bot,
|
||||
system: result.user.system,
|
||||
mfaEnabled: result.user.mfa_enabled,
|
||||
banner: result.user.banner,
|
||||
accentColor: result.user.accent_color,
|
||||
locale: result.user.locale,
|
||||
verified: result.user.verified,
|
||||
email: result.user.email,
|
||||
flags: result.user.flags,
|
||||
premiumType: result.user.premium_type,
|
||||
publicFlags: result.user.public_flags
|
||||
},
|
||||
requireColons: result.require_colons,
|
||||
managed: result.managed,
|
||||
animated: result.animated,
|
||||
available: result.animated
|
||||
}
|
||||
return TRANSFORMERS.emoji(result)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { routes } from '@discordeno/constant'
|
||||
import TRANSFORMERS from '@discordeno/transformer'
|
||||
import type { BigString, Camelize, DiscordEmoji } from '@discordeno/types'
|
||||
import { Collection } from '@discordeno/utils'
|
||||
import type { RestManager } from '../../restManager.js'
|
||||
@@ -23,32 +24,7 @@ export async function getEmojis (
|
||||
|
||||
return new Collection(
|
||||
results.map((result) => {
|
||||
const emoji: Camelize<DiscordEmoji> = {
|
||||
id: result.id,
|
||||
name: result.name,
|
||||
roles: result.roles,
|
||||
user: result.user && {
|
||||
id: result.user.id,
|
||||
username: result.user.username,
|
||||
discriminator: result.user.discriminator,
|
||||
avatar: result.user.avatar,
|
||||
bot: result.user.bot,
|
||||
system: result.user.system,
|
||||
mfaEnabled: result.user.mfa_enabled,
|
||||
banner: result.user.banner,
|
||||
accentColor: result.user.accent_color,
|
||||
locale: result.user.locale,
|
||||
verified: result.user.verified,
|
||||
email: result.user.email,
|
||||
flags: result.user.flags,
|
||||
premiumType: result.user.premium_type,
|
||||
publicFlags: result.user.public_flags
|
||||
},
|
||||
requireColons: result.require_colons,
|
||||
managed: result.managed,
|
||||
animated: result.animated,
|
||||
available: result.animated
|
||||
}
|
||||
const emoji = TRANSFORMERS.emoji(result)
|
||||
return [emoji.id!, emoji]
|
||||
})
|
||||
)
|
||||
|
||||
126
packages/rest/tests/e2e/emoji.spec.ts
Normal file
126
packages/rest/tests/e2e/emoji.spec.ts
Normal file
@@ -0,0 +1,126 @@
|
||||
import type { Camelize, DiscordEmoji, DiscordGuild } from '@discordeno/types'
|
||||
import chai, { expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { afterEach, beforeEach, describe, it } from 'mocha'
|
||||
import { rest } from './utils.js'
|
||||
chai.use(chaiAsPromised)
|
||||
|
||||
describe('Emoji helpers', () => {
|
||||
let guild: Camelize<DiscordGuild>
|
||||
|
||||
beforeEach(async () => {
|
||||
guild = await rest.createGuild({
|
||||
name: 'Discordeno-test'
|
||||
})
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
await rest.deleteGuild(guild.id)
|
||||
})
|
||||
|
||||
describe('Create and delete', () => {
|
||||
it('create an emoji', async () => {
|
||||
const emoji = await rest.createEmoji(guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: 'https://cdn.discordapp.com/emojis/814955268123000832.png',
|
||||
roles: []
|
||||
})
|
||||
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
await rest.deleteEmoji(guild.id, emoji.id!)
|
||||
})
|
||||
|
||||
// delete an emoji without a reason
|
||||
it('delete an emoji without a reason', async () => {
|
||||
const emoji = await rest.createEmoji(guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: 'https://cdn.discordapp.com/emojis/814955268123000832.png',
|
||||
roles: []
|
||||
})
|
||||
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
|
||||
await rest.deleteEmoji(guild.id, emoji.id!)
|
||||
|
||||
await expect(rest.getEmoji(guild.id, emoji.id!)).to.eventually.rejected
|
||||
})
|
||||
|
||||
// delete an emoji with a reason
|
||||
it('delete an emoji with a reason', async () => {
|
||||
const emoji = await rest.createEmoji(guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: 'https://cdn.discordapp.com/emojis/814955268123000832.png',
|
||||
roles: []
|
||||
})
|
||||
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
|
||||
await rest.deleteEmoji(guild.id, emoji.id!, 'with a reason')
|
||||
|
||||
await expect(rest.getEmoji(guild.id, emoji.id!)).to.eventually.rejected
|
||||
})
|
||||
})
|
||||
|
||||
describe('edit and get', () => {
|
||||
let emoji: Camelize<DiscordEmoji> & { id: string }
|
||||
|
||||
beforeEach(async () => {
|
||||
emoji = (await rest.createEmoji(guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: 'https://cdn.discordapp.com/emojis/814955268123000832.png',
|
||||
roles: []
|
||||
})) as Camelize<DiscordEmoji> & { id: string }
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
/** No extra delete emoji is needed because we delete the guild contain emoji after each test */
|
||||
// await rest.deleteEmoji(guild.id, emoji.id)
|
||||
})
|
||||
|
||||
// edit an emoji name
|
||||
it('Edit an emoji name', async () => {
|
||||
await rest.editEmoji(guild.id, emoji.id, {
|
||||
name: 'edited'
|
||||
})
|
||||
|
||||
const edited = await rest.getEmoji(guild.id, emoji.id)
|
||||
|
||||
expect(edited.name).to.equal('edited')
|
||||
})
|
||||
|
||||
// edit an emoji roles
|
||||
it("Edit an emoji's roles", async () => {
|
||||
const role = await rest.createRole(guild.id, {
|
||||
name: 'dd-test-emoji'
|
||||
})
|
||||
await rest.editEmoji(guild.id, emoji.id, {
|
||||
roles: [role.id]
|
||||
})
|
||||
|
||||
const edited = await rest.getEmoji(guild.id, emoji.id)
|
||||
|
||||
expect(edited.roles?.length).to.equal(1)
|
||||
})
|
||||
|
||||
// get an emoji
|
||||
it('get an emoji', async () => {
|
||||
const exists = await rest.getEmoji(guild.id, emoji.id)
|
||||
expect(exists.id).to.be.exist
|
||||
expect(emoji.id).to.equal(exists.id)
|
||||
})
|
||||
|
||||
it('get all guild emojis', async () => {
|
||||
await rest.createEmoji(guild.id, {
|
||||
name: 'blamewolf2',
|
||||
image: 'https://cdn.discordapp.com/emojis/814955268123000832.png',
|
||||
roles: []
|
||||
})
|
||||
|
||||
const exists = await rest.getEmojis(guild.id)
|
||||
expect(exists.size).to.greaterThan(1)
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user