mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
chore: Code changes & formatting and linting (#3552)
* Do some code changes & run prettier and eslint
* Fix test:test-type script
* Apply code review suggestions
* update heartbeat interval & add a reason for the specific value
* Fix husky error
* Update to TS 5.5
And use ${configDir}
* Fix test.json tsconfig base
---------
Co-authored-by: Skillz4Killz <23035000+Skillz4Killz@users.noreply.github.com>
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
}
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,9 @@
|
||||
{
|
||||
"name": "benchmark",
|
||||
"name": "benchmarks",
|
||||
"version": "0.0.0",
|
||||
"main": "./dist/esm/index.js",
|
||||
"main": "./dist/index.js",
|
||||
"exports": {
|
||||
"import": "./dist/esm/index.js",
|
||||
"require": "./dist/cjs/index.cjs",
|
||||
"import": "./dist/index.js",
|
||||
"types": "./dist/types/index.d.ts"
|
||||
},
|
||||
"types": "./dist/types/index.d.ts",
|
||||
@@ -29,19 +28,17 @@
|
||||
"@discordeno/rest": "19.0.0-alpha.1",
|
||||
"@discordeno/types": "19.0.0-beta.1",
|
||||
"@discordeno/utils": "19.0.0-beta.1",
|
||||
"benchmark": "^2.1.4",
|
||||
"microtime": "^3.1.1",
|
||||
"node-fetch": "^3.3.2"
|
||||
"benchmark": "^2.1.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.3.9",
|
||||
"@swc/core": "^1.4.2",
|
||||
"@types/benchmark": "^2.1.5",
|
||||
"@types/node": "^20.11.25",
|
||||
"@types/node": "^20.14.7",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-discordeno": "*",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -9,7 +9,7 @@ events.forEach((event) => {
|
||||
})
|
||||
|
||||
suite.add(`Camelize 1 event`, () => {
|
||||
snakelize(events[1])
|
||||
camelize(events[1])
|
||||
})
|
||||
|
||||
suite.add(`Snakelize 1 event`, () => {
|
||||
+3
-7
@@ -1,4 +1,4 @@
|
||||
import { createBot, type Bot } from '@discordeno/bot'
|
||||
import { createBot, snakeToCamelCase, type Bot } from '@discordeno/bot'
|
||||
import { events as dbEvents } from '../utils/db.js'
|
||||
import { memoryBenchmark } from '../utils/memoryBenchmark.js'
|
||||
|
||||
@@ -27,12 +27,8 @@ await memoryBenchmark(
|
||||
}),
|
||||
),
|
||||
(bot, event) => {
|
||||
// @ts-expect-error it works
|
||||
bot.events[
|
||||
event.payload.t!.toLowerCase().replace(/_([a-z])/g, (g) => {
|
||||
return g[1].toUpperCase()
|
||||
})
|
||||
]?.(event.payload.d, {})
|
||||
const eventName = snakeToCamelCase(event.payload.t!)
|
||||
bot.events[eventName as keyof typeof bot.events]?.(event.payload.d as never, {})
|
||||
},
|
||||
dbEvents.filter((event) => event.payload.t),
|
||||
)
|
||||
+2
-2
@@ -95,11 +95,11 @@ await memoryBenchmark(
|
||||
'[transformer] message cache check',
|
||||
() => ({
|
||||
cache: [] as any[],
|
||||
}), // function reutrn a new instance of object wanted to test with
|
||||
}), // function returns a new instance of object wanted to test with
|
||||
(object, event: DiscordMessage) => object.cache.push(bot.transformers.message(bot, event)),
|
||||
// function specify how to add event to the object/ run the object
|
||||
[...new Array(MESSAGE_SIZE)].map(
|
||||
(i) =>
|
||||
() =>
|
||||
({
|
||||
activity: {
|
||||
party_id: 'party_id',
|
||||
@@ -4,8 +4,6 @@ const benchmarkData = await fetch(`https://raw.githubusercontent.com/discordeno/
|
||||
.then(async (res) => await res.text())
|
||||
.then((text) => JSON.parse(text.slice(24)))
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars
|
||||
// const commitSha = await fs.readFile('./sha', 'utf-8')
|
||||
const results = JSON.parse(await fs.readFile('./data.json', 'utf-8'))
|
||||
|
||||
interface BenchmarksData {
|
||||
@@ -1,6 +1,5 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
||||
import type { DiscordGatewayPayload } from '@discordeno/types'
|
||||
import fetch from 'node-fetch'
|
||||
import fs from 'node:fs/promises'
|
||||
|
||||
export const events: Array<{
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
+1
-1
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"test:e2e": "c8 --r lcov mocha --no-warnings --jobs 1 --t 30000 'tests/e2e/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js rest",
|
||||
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/unit/**/*.spec.ts'",
|
||||
"test:type": "tsc --noEmit",
|
||||
"test:test-type": "tsc --project tsconfig.test.json"
|
||||
"test:test-type": "tsc --project tests/tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordeno/gateway": "19.0.0-alpha.1",
|
||||
@@ -49,6 +49,6 @@
|
||||
"sinon": "^17.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Intents } from '@discordeno/types'
|
||||
import { delay, logger } from '@discordeno/utils'
|
||||
import { delay, logger, snakeToCamelCase } from '@discordeno/utils'
|
||||
import { use as chaiUse } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
@@ -23,12 +23,9 @@ describe('[Bot] Delete any guild owned guilds', () => {
|
||||
|
||||
// RUN DISPATCH CHECK
|
||||
await bot.events.dispatchRequirements?.(data, shard.id)
|
||||
bot.events[
|
||||
data.t.toLowerCase().replace(/_([a-z])/g, function (g) {
|
||||
return g[1].toUpperCase()
|
||||
}) as keyof EventHandlers
|
||||
// @ts-expect-error as any gets removed by linter
|
||||
]?.(data.d, shard)
|
||||
|
||||
const eventName = snakeToCamelCase(data.t)
|
||||
bot.events[eventName as keyof EventHandlers]?.(data.d as never, shard as never)
|
||||
},
|
||||
},
|
||||
intents: Intents.Guilds,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"test:deno-unit": "swc --strip-leading-paths tests --delete-dir-on-start --out-dir denoTestsDist && node ../../scripts/fixDenoTestExtension.js && deno test -A --import-map ../../denoImportMap.json denoTestsDist",
|
||||
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/**/*.spec.ts'",
|
||||
"test:type": "tsc --noEmit",
|
||||
"test:test-type": "tsc --project tsconfig.test.json"
|
||||
"test:test-type": "tsc --project tests/tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordeno/bot": "19.0.0-beta.1",
|
||||
@@ -51,6 +51,6 @@
|
||||
"sinon": "^17.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-require-extensions": "^0.1.3",
|
||||
"prettier": "^3.2.5",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
},
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/unit/**/*.spec.ts'",
|
||||
"test:integration": "c8 --r lcov mocha --no-warnings 'tests/integration/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js gateway",
|
||||
"test:type": "tsc --noEmit",
|
||||
"test:test-type": "tsc --project tsconfig.test.json"
|
||||
"test:test-type": "tsc --project tests/tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordeno/types": "19.0.0-beta.1",
|
||||
@@ -49,7 +49,7 @@
|
||||
"sinon": "^17.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5",
|
||||
"typescript": "^5.5.2",
|
||||
"uWebSockets.js": "https://github.com/uNetworking/uWebSockets.js.git#commit=42c9c0d5d31f46ca4115dc75672b0037ec970f28"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,17 @@
|
||||
import { Intents } from '@discordeno/types'
|
||||
import uWS from 'uWebSockets.js'
|
||||
import { createGatewayManager, ShardSocketCloseCodes } from '../../src/index.js'
|
||||
import { ShardSocketCloseCodes, createGatewayManager, type GatewayManager } from '../../src/index.js'
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
||||
const createGatewayManagerWithPort = (port: number) =>
|
||||
createGatewayManager({
|
||||
/**
|
||||
* This value needs to be AT LEAST `1017`
|
||||
*
|
||||
* The reason for this is because the calculation in Shard.calculateSafeRequests will return 0 not allowing any sort of message to the websocket server.
|
||||
* Discord uses a way higher number for this value, but during this test we lower it since it would be annoying and useless make the test last 40+ seconds to test the heartbeat, but to make this work it needs to be at least 1017 so that calculateSafeRequests return 2 allowing for the shard to send messages.
|
||||
*/
|
||||
const heartbeatInterval = 1050
|
||||
|
||||
function createGatewayManagerWithPort(port: number): GatewayManager {
|
||||
return createGatewayManager({
|
||||
connection: {
|
||||
url: `ws://localhost:${port}`,
|
||||
shards: 1,
|
||||
@@ -20,22 +27,22 @@ const createGatewayManagerWithPort = (port: number) =>
|
||||
intents: Intents.Guilds,
|
||||
events: {},
|
||||
})
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
||||
const createUws = async (options: {
|
||||
async function createUws(options: {
|
||||
onOpen?: () => any
|
||||
onMessage?: (message: any) => any
|
||||
onClose?: (code: number, message: string) => any
|
||||
closing?: boolean
|
||||
}) => {
|
||||
}): Promise<{ port: number; uwsToken: uWS.us_listen_socket }> {
|
||||
options.onOpen ??= () => {}
|
||||
options.onMessage ??= (message: any) => {}
|
||||
options.onClose ??= (code: number, message: string) => {}
|
||||
options.closing ??= false
|
||||
|
||||
return await new Promise<{ port: number; uwsToken: any }>((resolve, reject) => {
|
||||
return await new Promise<{ port: number; uwsToken: uWS.us_listen_socket }>((resolve, reject) => {
|
||||
let port = 0
|
||||
let uwsToken = 0
|
||||
|
||||
uWS
|
||||
.App()
|
||||
.ws('/*', {
|
||||
@@ -51,7 +58,7 @@ const createUws = async (options: {
|
||||
JSON.stringify({
|
||||
op: 10,
|
||||
d: {
|
||||
heartbeat_interval: 1017,
|
||||
heartbeat_interval: heartbeatInterval,
|
||||
},
|
||||
}),
|
||||
)
|
||||
@@ -118,10 +125,13 @@ const createUws = async (options: {
|
||||
if (!token) {
|
||||
reject(new Error())
|
||||
}
|
||||
// retrieve listening port
|
||||
uwsToken = token
|
||||
port = uWS.us_socket_local_port(token)
|
||||
resolve({ port, uwsToken })
|
||||
|
||||
port = uWS.us_socket_local_port(token as uWS.us_listen_socket)
|
||||
|
||||
resolve({
|
||||
port,
|
||||
uwsToken: token,
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -146,7 +156,7 @@ describe('gateway', () => {
|
||||
let resolveHeartbeat: () => void
|
||||
let resolveConnected: () => void
|
||||
const connected = new Promise<void>((resolve) => (resolveConnected = resolve))
|
||||
const Heartbeated = new Promise<void>((resolve) => (resolveHeartbeat = resolve))
|
||||
const heartbeated = new Promise<void>((resolve) => (resolveHeartbeat = resolve))
|
||||
const uwsOptions = {
|
||||
onOpen: resolveConnected!,
|
||||
onMessage: (message: any) => {
|
||||
@@ -159,10 +169,12 @@ describe('gateway', () => {
|
||||
const gateway = createGatewayManagerWithPort(port)
|
||||
await gateway.spawnShards()
|
||||
await connected
|
||||
|
||||
const timeout = setTimeout(() => {
|
||||
throw new Error('Not heartbeat in time')
|
||||
}, 1017)
|
||||
await Heartbeated
|
||||
}, heartbeatInterval)
|
||||
|
||||
await heartbeated
|
||||
clearTimeout(timeout)
|
||||
uwsOptions.closing = true
|
||||
await gateway.shutdown(ShardSocketCloseCodes.Shutdown, 'User requested bot stop')
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
export {}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,12 +27,11 @@
|
||||
"test:e2e": "c8 --r lcov mocha --exit --no-warnings --jobs 1 --t 30000 'tests/e2e/**/*.spec.ts' && node ../../scripts/coveragePathFixing.js rest",
|
||||
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/unit/**/*.spec.ts'",
|
||||
"test:type": "tsc --noEmit",
|
||||
"test:test-type": "tsc --project tsconfig.test.json"
|
||||
"test:test-type": "tsc --project tests/tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordeno/types": "19.0.0-beta.1",
|
||||
"@discordeno/utils": "19.0.0-beta.1",
|
||||
"dotenv": "^16.4.5"
|
||||
"@discordeno/utils": "19.0.0-beta.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.3.9",
|
||||
@@ -45,13 +44,13 @@
|
||||
"c8": "^9.1.0",
|
||||
"chai": "^5.1.1",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"dotenv": "^16.4.5",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-discordeno": "*",
|
||||
"mocha": "^10.5.1",
|
||||
"sinon": "^17.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5",
|
||||
"why-is-node-running": "^2.2.2"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import type { Camelize, DiscordChannel } from '@discordeno/types'
|
||||
import { AutoModerationActionType, AutoModerationEventTypes, AutoModerationTriggerTypes } from '@discordeno/types'
|
||||
import { expect } from 'chai'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
describe('Run automod tests', async () => {
|
||||
it('Create a MessageSend rule for Keyword with BlockMessage action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -36,7 +36,7 @@ describe('Run automod tests', async () => {
|
||||
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
const fetchedRule = await rest.getAutomodRule(e2ecache.guild.id, rule.id)
|
||||
const fetchedRule = await rest.getAutomodRule(e2eCache.guild.id, rule.id)
|
||||
|
||||
expect(fetchedRule.id).to.be.exist
|
||||
expect(fetchedRule.name).to.equal(rule.name)
|
||||
@@ -47,11 +47,11 @@ describe('Run automod tests', async () => {
|
||||
expect(fetchedRule.actions[0]).to.be.exist
|
||||
expect(fetchedRule.actions[0].type).to.equal(AutoModerationActionType.BlockMessage)
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
|
||||
it('Create a MessageSend rule for Keyword with Timeout action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -70,7 +70,7 @@ describe('Run automod tests', async () => {
|
||||
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
const fetchedRule = await rest.getAutomodRule(e2ecache.guild.id, rule.id)
|
||||
const fetchedRule = await rest.getAutomodRule(e2eCache.guild.id, rule.id)
|
||||
|
||||
expect(fetchedRule.id).to.be.exist
|
||||
expect(fetchedRule.name).to.equal(rule.name)
|
||||
@@ -82,11 +82,11 @@ describe('Run automod tests', async () => {
|
||||
expect(fetchedRule.actions[0].type).to.equal(AutoModerationActionType.Timeout)
|
||||
expect(fetchedRule.actions[0].metadata?.durationSeconds).to.equal(10)
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
|
||||
it('Create a MessageSend rule for Keyword with BlockMessage & Timeout action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -108,14 +108,14 @@ describe('Run automod tests', async () => {
|
||||
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
|
||||
describe('with a channel', () => {
|
||||
let channel: Camelize<DiscordChannel>
|
||||
|
||||
beforeEach(async () => {
|
||||
channel = await rest.createChannel(e2ecache.guild.id, {
|
||||
channel = await rest.createChannel(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
})
|
||||
})
|
||||
@@ -125,7 +125,7 @@ describe('Run automod tests', async () => {
|
||||
})
|
||||
|
||||
it('Create a MessageSend rule for Keyword with SendAlertMessage action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -144,7 +144,7 @@ describe('Run automod tests', async () => {
|
||||
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
const fetchedRule = await rest.getAutomodRule(e2ecache.guild.id, rule.id)
|
||||
const fetchedRule = await rest.getAutomodRule(e2eCache.guild.id, rule.id)
|
||||
|
||||
expect(fetchedRule.id).to.be.exist
|
||||
expect(fetchedRule.name).to.equal(rule.name)
|
||||
@@ -156,11 +156,11 @@ describe('Run automod tests', async () => {
|
||||
expect(fetchedRule.actions[0].type).to.equal(AutoModerationActionType.SendAlertMessage)
|
||||
expect(fetchedRule.actions[0].metadata?.channelId).to.equal(channel.id)
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
|
||||
it('Create a MessageSend rule for Keyword with SendAlertMessage & Timeout action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -185,11 +185,11 @@ describe('Run automod tests', async () => {
|
||||
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
|
||||
it('Create a MessageSend rule for Keyword with BlockMessage & SendAlertMessage & Timeout action.', async () => {
|
||||
const rule = await rest.createAutomodRule(e2ecache.guild.id, {
|
||||
const rule = await rest.createAutomodRule(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
eventType: AutoModerationEventTypes.MessageSend,
|
||||
triggerType: AutoModerationTriggerTypes.Keyword,
|
||||
@@ -218,7 +218,7 @@ describe('Run automod tests', async () => {
|
||||
expect(rule.id).to.be.exist
|
||||
|
||||
// Get the rule again to make sure it was created correctly
|
||||
const fetchedRule = await rest.getAutomodRule(e2ecache.guild.id, rule.id)
|
||||
const fetchedRule = await rest.getAutomodRule(e2eCache.guild.id, rule.id)
|
||||
expect(fetchedRule.id).to.be.exist
|
||||
expect(fetchedRule.name).to.equal(rule.name)
|
||||
expect(fetchedRule.eventType).to.equal(AutoModerationEventTypes.MessageSend)
|
||||
@@ -234,7 +234,7 @@ describe('Run automod tests', async () => {
|
||||
expect(fetchedRule.actions[1].type).to.equal(AutoModerationActionType.SendAlertMessage)
|
||||
expect(fetchedRule.actions[2].type).to.equal(AutoModerationActionType.Timeout)
|
||||
|
||||
await rest.deleteAutomodRule(e2ecache.guild.id, rule.id)
|
||||
await rest.deleteAutomodRule(e2eCache.guild.id, rule.id)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -3,28 +3,28 @@ import { urlToBase64 } from '@discordeno/utils'
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { after, afterEach, before, beforeEach, describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
describe('Create and delete emojis', () => {
|
||||
it('create an emoji', async () => {
|
||||
const emoji = await rest.createEmoji(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/814955268123000832.png'),
|
||||
roles: [],
|
||||
@@ -32,12 +32,12 @@ describe('Create and delete emojis', () => {
|
||||
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
await rest.deleteEmoji(e2ecache.guild.id, emoji.id!)
|
||||
await rest.deleteEmoji(e2eCache.guild.id, emoji.id!)
|
||||
})
|
||||
|
||||
// delete an emoji without a reason
|
||||
it('delete an emoji without a reason', async () => {
|
||||
const emoji = await rest.createEmoji(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/814955268123000832.png'),
|
||||
roles: [],
|
||||
@@ -46,14 +46,14 @@ describe('Create and delete emojis', () => {
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
|
||||
await rest.deleteEmoji(e2ecache.guild.id, emoji.id!)
|
||||
await rest.deleteEmoji(e2eCache.guild.id, emoji.id!)
|
||||
|
||||
await expect(rest.getEmoji(e2ecache.guild.id, emoji.id!)).to.eventually.rejected
|
||||
await expect(rest.getEmoji(e2eCache.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(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/814955268123000832.png'),
|
||||
roles: [],
|
||||
@@ -62,9 +62,9 @@ describe('Create and delete emojis', () => {
|
||||
// Assertions
|
||||
expect(emoji.id).to.be.exist
|
||||
|
||||
await rest.deleteEmoji(e2ecache.guild.id, emoji.id!, 'with a reason')
|
||||
await rest.deleteEmoji(e2eCache.guild.id, emoji.id!, 'with a reason')
|
||||
|
||||
await expect(rest.getEmoji(e2ecache.guild.id, emoji.id!)).to.eventually.rejected
|
||||
await expect(rest.getEmoji(e2eCache.guild.id, emoji.id!)).to.eventually.rejected
|
||||
})
|
||||
})
|
||||
|
||||
@@ -72,7 +72,7 @@ describe('Edit and get emojis', () => {
|
||||
let emoji: Camelize<DiscordEmoji> & { id: string }
|
||||
|
||||
beforeEach(async () => {
|
||||
emoji = (await rest.createEmoji(e2ecache.guild.id, {
|
||||
emoji = (await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'blamewolf',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/814955268123000832.png'),
|
||||
roles: [],
|
||||
@@ -80,49 +80,49 @@ describe('Edit and get emojis', () => {
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
await rest.deleteEmoji(e2ecache.guild.id, emoji.id)
|
||||
await rest.deleteEmoji(e2eCache.guild.id, emoji.id)
|
||||
})
|
||||
|
||||
// edit an emoji name
|
||||
it('Edit an emoji name', async () => {
|
||||
await rest.editEmoji(e2ecache.guild.id, emoji.id, {
|
||||
await rest.editEmoji(e2eCache.guild.id, emoji.id, {
|
||||
name: 'edited',
|
||||
})
|
||||
|
||||
const edited = await rest.getEmoji(e2ecache.guild.id, emoji.id)
|
||||
const edited = await rest.getEmoji(e2eCache.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(e2ecache.guild.id, {
|
||||
const role = await rest.createRole(e2eCache.guild.id, {
|
||||
name: 'dd-test-emoji',
|
||||
})
|
||||
await rest.editEmoji(e2ecache.guild.id, emoji.id, {
|
||||
await rest.editEmoji(e2eCache.guild.id, emoji.id, {
|
||||
roles: [role.id],
|
||||
})
|
||||
|
||||
const edited = await rest.getEmoji(e2ecache.guild.id, emoji.id)
|
||||
const edited = await rest.getEmoji(e2eCache.guild.id, emoji.id)
|
||||
|
||||
expect(edited.roles?.length).to.equal(1)
|
||||
})
|
||||
|
||||
// get an emoji
|
||||
it('get an emoji', async () => {
|
||||
const exists = await rest.getEmoji(e2ecache.guild.id, emoji.id)
|
||||
const exists = await rest.getEmoji(e2eCache.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(e2ecache.guild.id, {
|
||||
await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'blamewolf2',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/814955268123000832.png'),
|
||||
roles: [],
|
||||
})
|
||||
|
||||
const exists = await rest.getEmojis(e2ecache.guild.id)
|
||||
const exists = await rest.getEmojis(e2eCache.guild.id)
|
||||
expect(exists.length).to.greaterThan(1)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2,21 +2,21 @@ import { ChannelTypes } from '@discordeno/types'
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -25,7 +25,7 @@ describe('Manage Guilds', async () => {
|
||||
const guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
expect(e2ecache.guild.id).to.be.exist
|
||||
expect(e2eCache.guild.id).to.be.exist
|
||||
await rest.deleteGuild(guild.id)
|
||||
// Make sure the guild was deleted
|
||||
const deleted = await rest.getGuild(guild.id).catch(() => undefined)
|
||||
@@ -33,31 +33,31 @@ describe('Manage Guilds', async () => {
|
||||
})
|
||||
|
||||
it('Get a guild', async () => {
|
||||
const exists = await rest.getGuild(e2ecache.guild.id)
|
||||
const exists = await rest.getGuild(e2eCache.guild.id)
|
||||
expect(exists).to.be.exist
|
||||
expect(exists.id).to.be.exist
|
||||
expect(exists.name).to.equal(e2ecache.guild.name)
|
||||
expect(exists.name).to.equal(e2eCache.guild.name)
|
||||
})
|
||||
|
||||
it('AFK channel', async () => {
|
||||
const voiceChannel = await rest.createChannel(e2ecache.guild.id, {
|
||||
const voiceChannel = await rest.createChannel(e2eCache.guild.id, {
|
||||
name: 'edit-guild-test',
|
||||
type: ChannelTypes.GuildVoice,
|
||||
})
|
||||
expect(voiceChannel.id).to.be.exist
|
||||
|
||||
const edited = await rest.editGuild(e2ecache.guild.id, {
|
||||
const edited = await rest.editGuild(e2eCache.guild.id, {
|
||||
name: 'Discordeno-test-edited',
|
||||
afkChannelId: voiceChannel.id,
|
||||
// afkTimeout: 5,
|
||||
})
|
||||
expect(edited.name).to.equal('Discordeno-test-edited')
|
||||
expect(e2ecache.guild.afkChannelId).to.not.equal(voiceChannel.id)
|
||||
expect(e2eCache.guild.afkChannelId).to.not.equal(voiceChannel.id)
|
||||
expect(edited.afkChannelId).to.equal(voiceChannel.id)
|
||||
// expect(guild.afkTimeout).to.equal(0);
|
||||
// expect(edited.afkTimeout).to.equal(5);
|
||||
|
||||
const edited2 = await rest.editGuild(e2ecache.guild.id, { afkChannelId: null })
|
||||
const edited2 = await rest.editGuild(e2eCache.guild.id, { afkChannelId: null })
|
||||
expect(edited.afkChannelId).to.not.equal(edited2.afkChannelId)
|
||||
// Use boolean to check both undefined or null
|
||||
expect(!!edited2.afkChannelId).to.equal(false)
|
||||
@@ -70,48 +70,48 @@ describe('Manage Guilds', async () => {
|
||||
// });
|
||||
|
||||
it('Get audit logs', async () => {
|
||||
const auditLogs = await rest.getAuditLog(e2ecache.guild.id, { limit: 1 })
|
||||
const auditLogs = await rest.getAuditLog(e2eCache.guild.id, { limit: 1 })
|
||||
expect(auditLogs.auditLogEntries.length).to.be.exist
|
||||
})
|
||||
|
||||
// Get available voice regions
|
||||
it('Get available voice regions', async () => {
|
||||
const regions = await rest.getVoiceRegions(e2ecache.guild.id)
|
||||
const regions = await rest.getVoiceRegions(e2eCache.guild.id)
|
||||
expect(regions.length).to.be.exist
|
||||
})
|
||||
|
||||
it('Banning members', async () => {
|
||||
await rest.banMember(
|
||||
e2ecache.guild.id,
|
||||
e2eCache.guild.id,
|
||||
'379643682984296448',
|
||||
{
|
||||
deleteMessageSeconds: 604800,
|
||||
},
|
||||
'Blame Wolf',
|
||||
)
|
||||
const fetchedBan = await rest.getBan(e2ecache.guild.id, '379643682984296448')
|
||||
const fetchedBan = await rest.getBan(e2eCache.guild.id, '379643682984296448')
|
||||
|
||||
// Assertions
|
||||
expect(fetchedBan).to.be.exist
|
||||
expect(fetchedBan.user.id).to.equal('379643682984296448')
|
||||
|
||||
await rest.banMember(e2ecache.guild.id, '416477607966670869')
|
||||
const fetchedBans = await rest.getBans(e2ecache.guild.id)
|
||||
await rest.banMember(e2eCache.guild.id, '416477607966670869')
|
||||
const fetchedBans = await rest.getBans(e2eCache.guild.id)
|
||||
|
||||
// Assertions
|
||||
expect(fetchedBans).to.be.exist
|
||||
expect(fetchedBans.length).to.greaterThanOrEqual(2)
|
||||
|
||||
await rest.unbanMember(e2ecache.guild.id, '416477607966670869')
|
||||
await rest.unbanMember(e2ecache.guild.id, '379643682984296448')
|
||||
await rest.unbanMember(e2eCache.guild.id, '416477607966670869')
|
||||
await rest.unbanMember(e2eCache.guild.id, '379643682984296448')
|
||||
|
||||
const unbanned = await rest.getBans(e2ecache.guild.id)
|
||||
const unbanned = await rest.getBans(e2eCache.guild.id)
|
||||
expect(unbanned.length).to.equal(0)
|
||||
})
|
||||
|
||||
// Get vanity URL
|
||||
it('Get vanity URL', async () => {
|
||||
await expect(rest.getVanityUrl(e2ecache.guild.id)).to.eventually.rejected
|
||||
await expect(rest.getVanityUrl(e2eCache.guild.id)).to.eventually.rejected
|
||||
})
|
||||
|
||||
// Get a welcome screen
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
describe('Member tests', () => {
|
||||
it("Fetches the bot and compares the bot's id with the fetched member's id", async () => {
|
||||
const member = await rest.getMember(e2ecache.communityGuildId, rest.applicationId)
|
||||
const member = await rest.getMember(e2eCache.communityGuildId, rest.applicationId)
|
||||
expect(member?.user.id).to.exist
|
||||
expect(member?.user.id).to.equal(rest.applicationId.toString())
|
||||
})
|
||||
|
||||
it('Gets a member list and checks if the bot is in the member list', async () => {
|
||||
const members = await rest.getMembers(e2ecache.communityGuildId, {
|
||||
const members = await rest.getMembers(e2eCache.communityGuildId, {
|
||||
limit: 10,
|
||||
})
|
||||
expect(members.some((m) => m.user.id === rest.applicationId.toString())).to.equal(true)
|
||||
@@ -35,20 +35,20 @@ describe('Member tests', () => {
|
||||
|
||||
// fetch a single member by id
|
||||
it('Fetch a single member by id', async () => {
|
||||
const member = await rest.getMember(e2ecache.communityGuildId, rest.applicationId)
|
||||
const member = await rest.getMember(e2eCache.communityGuildId, rest.applicationId)
|
||||
|
||||
expect(member?.user.id).to.exist
|
||||
})
|
||||
|
||||
it("Edit a bot's nickname", async () => {
|
||||
const nick = 'lts20050703'
|
||||
const member = await rest.editBotMember(e2ecache.communityGuildId, {
|
||||
const member = await rest.editBotMember(e2eCache.communityGuildId, {
|
||||
nick,
|
||||
})
|
||||
expect(member.nick).to.equal(nick)
|
||||
|
||||
// Change nickname back
|
||||
const member2 = await rest.editBotMember(e2ecache.communityGuildId, {
|
||||
const member2 = await rest.editBotMember(e2eCache.communityGuildId, {
|
||||
nick: null,
|
||||
})
|
||||
expect(member2.nick).to.null
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import { processReactionString, urlToBase64 } from '@discordeno/utils'
|
||||
import { expect } from 'chai'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
describe('Send a message', () => {
|
||||
it('With content', async () => {
|
||||
const message = await rest.sendMessage(e2ecache.channel.id, { content: 'testing rate limit manager' })
|
||||
const message = await rest.sendMessage(e2eCache.channel.id, { content: 'testing rate limit manager' })
|
||||
expect(message.content).to.be.equal('testing rate limit manager')
|
||||
|
||||
const edited = await rest.editMessage(message.channelId, message.id, { content: 'testing rate limit manager edited' })
|
||||
@@ -36,7 +36,7 @@ describe('Send a message', () => {
|
||||
expect(image).to.not.be.undefined
|
||||
if (!image) throw new Error('Was not able to fetch the image.')
|
||||
|
||||
const message = await rest.sendMessage(e2ecache.channel.id, { files: [{ blob: image, name: 'gamer' }] })
|
||||
const message = await rest.sendMessage(e2eCache.channel.id, { files: [{ blob: image, name: 'gamer' }] })
|
||||
expect(message.attachments.length).to.be.greaterThan(0)
|
||||
const [attachment] = message.attachments
|
||||
|
||||
@@ -46,7 +46,7 @@ describe('Send a message', () => {
|
||||
it('With a file attachment', async () => {
|
||||
const txtFile = new Blob(['hello world'], { type: 'text/plain' })
|
||||
|
||||
const fileMsg = await rest.sendMessage(e2ecache.channel.id, {
|
||||
const fileMsg = await rest.sendMessage(e2eCache.channel.id, {
|
||||
content: '222',
|
||||
files: [
|
||||
{
|
||||
@@ -64,7 +64,7 @@ describe('Send a message', () => {
|
||||
|
||||
const txtFile2 = new Blob(['hello world edit'], { type: 'text/plain' })
|
||||
|
||||
const edited = await rest.editMessage(e2ecache.channel.id, fileMsg.id, {
|
||||
const edited = await rest.editMessage(e2eCache.channel.id, fileMsg.id, {
|
||||
content: '222 edit',
|
||||
files: [
|
||||
{
|
||||
@@ -84,7 +84,7 @@ describe('Send a message', () => {
|
||||
|
||||
describe('Manage reactions', async () => {
|
||||
it('Add and delete a unicode reaction', async () => {
|
||||
const reactionChannel = await rest.createChannel(e2ecache.guild.id, { name: 'reactions' })
|
||||
const reactionChannel = await rest.createChannel(e2eCache.guild.id, { name: 'reactions' })
|
||||
const message = await rest.sendMessage(reactionChannel.id, { content: 'add reaction test' })
|
||||
|
||||
await rest.addReaction(message.channelId, message.id, '📙')
|
||||
@@ -98,13 +98,13 @@ describe('Manage reactions', async () => {
|
||||
})
|
||||
|
||||
it('Add and delete a custom reaction', async () => {
|
||||
const emoji = await rest.createEmoji(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'discordeno',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/785403373817823272.webp?size=96'),
|
||||
})
|
||||
const emojiCode = `<:${emoji.name!}:${emoji.id!}>`
|
||||
|
||||
const reactionChannel = await rest.createChannel(e2ecache.guild.id, { name: 'reactions' })
|
||||
const reactionChannel = await rest.createChannel(e2eCache.guild.id, { name: 'reactions' })
|
||||
const message = await rest.sendMessage(reactionChannel.id, { content: 'add reaction test' })
|
||||
|
||||
await rest.addReaction(message.channelId, message.id, emojiCode)
|
||||
@@ -121,13 +121,13 @@ describe('Manage reactions', async () => {
|
||||
})
|
||||
|
||||
it('Add several reactions with random order and delete all of them', async () => {
|
||||
const emoji = await rest.createEmoji(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'discordeno',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/785403373817823272.webp?size=96'),
|
||||
})
|
||||
const emojiCode = `<:${emoji.name!}:${emoji.id!}>`
|
||||
|
||||
const reactionChannel = await rest.createChannel(e2ecache.guild.id, { name: 'reactions' })
|
||||
const reactionChannel = await rest.createChannel(e2eCache.guild.id, { name: 'reactions' })
|
||||
const message = await rest.sendMessage(reactionChannel.id, { content: 'add reaction test' })
|
||||
|
||||
await rest.addReactions(message.channelId, message.id, [emojiCode, '📙'])
|
||||
@@ -141,13 +141,13 @@ describe('Manage reactions', async () => {
|
||||
})
|
||||
|
||||
it('Add several reactions in an order and delete emoji reaction', async () => {
|
||||
const emoji = await rest.createEmoji(e2ecache.guild.id, {
|
||||
const emoji = await rest.createEmoji(e2eCache.guild.id, {
|
||||
name: 'discordeno',
|
||||
image: await urlToBase64('https://cdn.discordapp.com/emojis/785403373817823272.webp?size=96'),
|
||||
})
|
||||
const emojiCode = `<:${emoji.name!}:${emoji.id!}>`
|
||||
|
||||
const reactionChannel = await rest.createChannel(e2ecache.guild.id, { name: 'reactions' })
|
||||
const reactionChannel = await rest.createChannel(e2eCache.guild.id, { name: 'reactions' })
|
||||
const message = await rest.sendMessage(reactionChannel.id, { content: 'add reaction test' })
|
||||
|
||||
await rest.addReactions(message.channelId, message.id, [emojiCode, '📙'], true)
|
||||
@@ -167,7 +167,7 @@ describe('Manage reactions', async () => {
|
||||
|
||||
describe('Manage pins', () => {
|
||||
it('Pin, get, and unpin messages', async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, { name: 'pinning' })
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, { name: 'pinning' })
|
||||
const message = await rest.sendMessage(channel.id, { content: 'pin me' })
|
||||
const message2 = await rest.sendMessage(channel.id, { content: 'pin me 2' })
|
||||
|
||||
@@ -188,7 +188,7 @@ describe('Manage pins', () => {
|
||||
|
||||
describe('Rate limit manager testing', () => {
|
||||
it('Send 10 messages to 1 channel', async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, { name: 'rate-limit-1' })
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, { name: 'rate-limit-1' })
|
||||
await Promise.all(
|
||||
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(async (i) => {
|
||||
await rest.sendMessage(channel.id, { content: `10 messages to 1 channel testing rate limit manager ${i}` })
|
||||
@@ -199,7 +199,7 @@ describe('Rate limit manager testing', () => {
|
||||
it('Send 10 messages to 10 channels', async () => {
|
||||
await Promise.all(
|
||||
[...Array(10).keys()].map(async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, { name: 'rate-limit-x' })
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, { name: 'rate-limit-x' })
|
||||
|
||||
await Promise.all(
|
||||
[...Array(10).keys()].map(async (_, index) => {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { describe } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
|
||||
describe('Typings', () => {
|
||||
it('Trigger Typing Indication', async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, { name: 'typing' })
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, { name: 'typing' })
|
||||
await rest.triggerTypingIndicator(channel.id)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
import { calculateBits } from '@discordeno/utils'
|
||||
import { expect } from 'chai'
|
||||
import { before, describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -21,7 +21,7 @@ describe('Role tests', async () => {
|
||||
// Create a role with a reason
|
||||
it('Create a role with a reason', async () => {
|
||||
const role = await rest.createRole(
|
||||
e2ecache.guild?.id,
|
||||
e2eCache.guild?.id,
|
||||
{
|
||||
name: `test role ${Date.now()}`,
|
||||
},
|
||||
@@ -32,7 +32,7 @@ describe('Role tests', async () => {
|
||||
|
||||
// Create a role without a reason
|
||||
it('Create a role without a reason', async () => {
|
||||
const role = await rest.createRole(e2ecache.guild.id, {
|
||||
const role = await rest.createRole(e2eCache.guild.id, {
|
||||
name: `test role ${Date.now()}`,
|
||||
})
|
||||
expect(role.id).to.exist
|
||||
@@ -40,21 +40,21 @@ describe('Role tests', async () => {
|
||||
|
||||
// Delete a role
|
||||
it('Delete a role', async () => {
|
||||
const role = await rest.createRole(e2ecache.guild.id, {
|
||||
const role = await rest.createRole(e2eCache.guild.id, {
|
||||
name: `test role ${Date.now()}`,
|
||||
})
|
||||
await rest.deleteRole(e2ecache.guild.id, role.id)
|
||||
const deletedRoles = await rest.getRoles(e2ecache.guild.id)
|
||||
await rest.deleteRole(e2eCache.guild.id, role.id)
|
||||
const deletedRoles = await rest.getRoles(e2eCache.guild.id)
|
||||
expect(deletedRoles.some((r) => r.id === role.id)).to.equal(false)
|
||||
})
|
||||
|
||||
// Edit a role
|
||||
it('Edit a role', async () => {
|
||||
const role = await rest.createRole(e2ecache.guild.id, {
|
||||
const role = await rest.createRole(e2eCache.guild.id, {
|
||||
name: `test role ${Date.now()}`,
|
||||
})
|
||||
|
||||
const edited = await rest.editRole(e2ecache.guild.id, role.id, {
|
||||
const edited = await rest.editRole(e2eCache.guild.id, role.id, {
|
||||
name: 'test role 4',
|
||||
color: 0x0000ff,
|
||||
hoist: true,
|
||||
@@ -67,11 +67,11 @@ describe('Role tests', async () => {
|
||||
expect(edited.mentionable).to.equal(true)
|
||||
expect(edited.permissions.toString()).to.equal(calculateBits(['SEND_MESSAGES', 'VIEW_CHANNEL']))
|
||||
|
||||
await rest.editRole(e2ecache.guild.id, role.id, {
|
||||
await rest.editRole(e2eCache.guild.id, role.id, {
|
||||
hoist: false,
|
||||
mentionable: false,
|
||||
})
|
||||
const roles = await rest.getRoles(e2ecache.guild.id)
|
||||
const roles = await rest.getRoles(e2eCache.guild.id)
|
||||
const unedited = roles.find((r) => r.id === role.id)
|
||||
|
||||
expect(unedited?.hoist).to.equal(false)
|
||||
@@ -79,27 +79,27 @@ describe('Role tests', async () => {
|
||||
})
|
||||
|
||||
it('Add and remove role from user', async () => {
|
||||
const role = await rest.createRole(e2ecache.guild.id, {
|
||||
const role = await rest.createRole(e2eCache.guild.id, {
|
||||
name: `test role ${Date.now()}`,
|
||||
})
|
||||
|
||||
// Assign the role to the user
|
||||
await rest.addRole(e2ecache.guild.id, rest.applicationId, role.id)
|
||||
const member = await rest.getMember(e2ecache.guild.id, rest.applicationId)
|
||||
await rest.addRole(e2eCache.guild.id, rest.applicationId, role.id)
|
||||
const member = await rest.getMember(e2eCache.guild.id, rest.applicationId)
|
||||
expect(member?.roles.includes(role.id)).to.equal(true)
|
||||
|
||||
await rest.removeRole(e2ecache.guild.id, rest.applicationId, role.id)
|
||||
const removed = await rest.getMember(e2ecache.guild.id, rest.applicationId)
|
||||
await rest.removeRole(e2eCache.guild.id, rest.applicationId, role.id)
|
||||
const removed = await rest.getMember(e2eCache.guild.id, rest.applicationId)
|
||||
// console.log('member', member.errors.userId.Errors)
|
||||
expect(removed?.roles.includes(role.id)).to.equal(false)
|
||||
|
||||
// With a reason
|
||||
await rest.addRole(e2ecache.guild.id, rest.applicationId, role.id, 'test reason')
|
||||
const member2 = await rest.getMember(e2ecache.guild.id, rest.applicationId)
|
||||
await rest.addRole(e2eCache.guild.id, rest.applicationId, role.id, 'test reason')
|
||||
const member2 = await rest.getMember(e2eCache.guild.id, rest.applicationId)
|
||||
expect(member2?.roles.includes(role.id)).to.equal(true)
|
||||
|
||||
await rest.removeRole(e2ecache.guild.id, rest.applicationId, role.id, 'test reason')
|
||||
const member3 = await rest.getMember(e2ecache.guild.id, rest.applicationId)
|
||||
await rest.removeRole(e2eCache.guild.id, rest.applicationId, role.id, 'test reason')
|
||||
const member3 = await rest.getMember(e2eCache.guild.id, rest.applicationId)
|
||||
expect(member3?.roles.includes(role.id)).to.equal(false)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -2,21 +2,21 @@ import { StickerFormatTypes } from '@discordeno/types'
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -28,7 +28,7 @@ describe('Sticker tests', async () => {
|
||||
})
|
||||
|
||||
it('Create, edit, get, and delete guild sticker', async () => {
|
||||
const sticker = await rest.createGuildSticker(e2ecache.guild.id, {
|
||||
const sticker = await rest.createGuildSticker(e2eCache.guild.id, {
|
||||
name: 'sticker name',
|
||||
description: 'sticker description',
|
||||
tags: 'sticker tags',
|
||||
@@ -42,7 +42,7 @@ describe('Sticker tests', async () => {
|
||||
expect(sticker.description).to.equal('sticker description')
|
||||
expect(sticker.tags).to.equal('sticker tags')
|
||||
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, {
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, {
|
||||
name: 'test',
|
||||
})
|
||||
const message = await rest.sendMessage(channel.id, {
|
||||
@@ -53,13 +53,13 @@ describe('Sticker tests', async () => {
|
||||
expect(message.stickerItems?.[0].id).to.equal(sticker.id)
|
||||
expect(message.stickerItems?.[0].name).to.equal(sticker.name)
|
||||
|
||||
const getSticker = await rest.getGuildSticker(e2ecache.guild.id, sticker.id)
|
||||
const getSticker = await rest.getGuildSticker(e2eCache.guild.id, sticker.id)
|
||||
|
||||
expect(getSticker.name).to.equal('sticker name')
|
||||
expect(getSticker.description).to.equal('sticker description')
|
||||
expect(getSticker.tags).to.equal('sticker tags')
|
||||
|
||||
const editSticker = await rest.editGuildSticker(e2ecache.guild.id, sticker.id, {
|
||||
const editSticker = await rest.editGuildSticker(e2eCache.guild.id, sticker.id, {
|
||||
name: 'sticker name',
|
||||
description: 'sticker description',
|
||||
tags: 'sticker tags',
|
||||
@@ -69,7 +69,7 @@ describe('Sticker tests', async () => {
|
||||
expect(editSticker.description).to.equal('sticker description')
|
||||
expect(editSticker.tags).to.equal('sticker tags')
|
||||
|
||||
await rest.createGuildSticker(e2ecache.guild.id, {
|
||||
await rest.createGuildSticker(e2eCache.guild.id, {
|
||||
name: 'sticker 2',
|
||||
description: 'sticker 2',
|
||||
tags: 'sticker tags 2',
|
||||
@@ -78,10 +78,10 @@ describe('Sticker tests', async () => {
|
||||
name: 'ddlogo.png',
|
||||
},
|
||||
})
|
||||
const stickers = await rest.getGuildStickers(e2ecache.guild.id)
|
||||
const stickers = await rest.getGuildStickers(e2eCache.guild.id)
|
||||
expect(stickers.length).to.greaterThan(1)
|
||||
|
||||
await rest.deleteGuildSticker(e2ecache.guild.id, sticker.id)
|
||||
await expect(rest.getGuildSticker(e2ecache.guild.id, sticker.id)).to.eventually.rejected
|
||||
await rest.deleteGuildSticker(e2eCache.guild.id, sticker.id)
|
||||
await expect(rest.getGuildSticker(e2eCache.guild.id, sticker.id)).to.eventually.rejected
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ rest.deleteQueueDelay = 10000
|
||||
const guild = await rest.createGuild({ name: 'ddenotester' })
|
||||
const channel = await rest.createChannel(guild.id, { name: 'ddenotestchannel' })
|
||||
|
||||
export const e2ecache = {
|
||||
export const e2eCache = {
|
||||
guild,
|
||||
channel,
|
||||
deletedGuild: false,
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import { use as chaiUse, expect } from 'chai'
|
||||
import chaiAsPromised from 'chai-as-promised'
|
||||
import { describe, it } from 'mocha'
|
||||
import { e2ecache, rest } from './utils.js'
|
||||
import { e2eCache, rest } from './utils.js'
|
||||
chaiUse(chaiAsPromised)
|
||||
|
||||
before(async () => {
|
||||
if (!e2ecache.guild) {
|
||||
e2ecache.guild = await rest.createGuild({
|
||||
if (!e2eCache.guild) {
|
||||
e2eCache.guild = await rest.createGuild({
|
||||
name: 'Discordeno-test',
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
if (e2ecache.guild.id && !e2ecache.deletedGuild) {
|
||||
e2ecache.deletedGuild = true
|
||||
await rest.deleteGuild(e2ecache.guild.id)
|
||||
if (e2eCache.guild.id && !e2eCache.deletedGuild) {
|
||||
e2eCache.deletedGuild = true
|
||||
await rest.deleteGuild(e2eCache.guild.id)
|
||||
}
|
||||
})
|
||||
|
||||
describe('Webhook helpers', async () => {
|
||||
it('Manage webhooks', async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, {
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, {
|
||||
name: 'wbhook',
|
||||
})
|
||||
|
||||
@@ -76,7 +76,7 @@ describe('Webhook helpers', async () => {
|
||||
})
|
||||
|
||||
it('Manage webhook messages', async () => {
|
||||
const channel = await rest.createChannel(e2ecache.guild.id, {
|
||||
const channel = await rest.createChannel(e2eCache.guild.id, {
|
||||
name: 'wbhook',
|
||||
})
|
||||
const webhook = await rest.createWebhook(channel.id, {
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
@@ -4,6 +4,9 @@
|
||||
"compilerOptions": {
|
||||
"target": "es2022",
|
||||
"module": "es2022",
|
||||
"rootDir": "${configDir}/src",
|
||||
"outDir": "${configDir}/dist",
|
||||
"tsBuildInfoFile": "${configDir}/dist/.tsbuildinfo",
|
||||
"composite": false,
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
@@ -16,11 +19,12 @@
|
||||
"noUnusedParameters": false,
|
||||
"preserveWatchOutput": true,
|
||||
"skipLibCheck": true,
|
||||
"skipDefaultLibCheck": true,
|
||||
"strict": true,
|
||||
"incremental": true,
|
||||
"resolveJsonModule": true
|
||||
},
|
||||
"exclude": ["node_modules", "dist", "tests", "test"],
|
||||
"include": ["${configDir}/src"],
|
||||
"ts-node": {
|
||||
"swc": true,
|
||||
"esm": true
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": "./base.json",
|
||||
"compilerOptions": {
|
||||
"noEmit": true,
|
||||
"incremental": false
|
||||
}
|
||||
"incremental": false,
|
||||
"tsBuildInfoFile": null,
|
||||
"rootDir": null,
|
||||
"outDir": null,
|
||||
},
|
||||
"include": ["${configDir}"],
|
||||
}
|
||||
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,17 +29,14 @@
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.3.9",
|
||||
"@swc/core": "^1.4.2",
|
||||
"@types/chai": "^4.3.11",
|
||||
"@types/mocha": "^10.0.7",
|
||||
"@types/node": "^20.11.25",
|
||||
"@types/sinon": "^17.0.3",
|
||||
"c8": "^9.1.0",
|
||||
"chai": "^5.1.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-discordeno": "*",
|
||||
"mocha": "^10.5.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
@@ -22,4 +22,4 @@
|
||||
"noInterop": false
|
||||
},
|
||||
"sourceMaps": "inline"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,10 @@
|
||||
"test:bun-unit": "node ../../scripts/fixBunTestExtension.js && bun test bunTestsDist",
|
||||
"test:unit:watch": "mocha --no-warnings --watch --parallel 'tests/**/*.spec.ts'",
|
||||
"test:type": "tsc --noEmit",
|
||||
"test:test-type": "tsc --project tsconfig.test.json"
|
||||
"test:test-type": "tsc --project tests/tsconfig.json"
|
||||
},
|
||||
"dependencies": {
|
||||
"@discordeno/types": "19.0.0-beta.1",
|
||||
"tweetnacl": "^1.0.3"
|
||||
"@discordeno/types": "19.0.0-beta.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@swc/cli": "^0.3.9",
|
||||
@@ -47,6 +46,6 @@
|
||||
"sinon": "^17.0.1",
|
||||
"ts-node": "^10.9.2",
|
||||
"tsconfig": "*",
|
||||
"typescript": "5.4.5"
|
||||
"typescript": "^5.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json"
|
||||
}
|
||||
@@ -1,8 +1,3 @@
|
||||
{
|
||||
"extends": "tsconfig/base.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": ["./src/**/*.ts", "./src/**/*.tsx"],
|
||||
"exclude": ["node_modules", "dist", "test", "tests"]
|
||||
"extends": "tsconfig/base.json"
|
||||
}
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "tsconfig/test.json",
|
||||
"include": ["tests"],
|
||||
"exclude": ["node_modules", "dist", "src"]
|
||||
}
|
||||
Reference in New Issue
Block a user