diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ea265e8..ba3f23ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Breaking:** set minimum Node version to 22.12.0 - **Breaking:** upgrade to Node 24 - Replace `nodemon` with `node --watch` for the `npm run dev` script +- Use `clientReady` event instead of `ready` to fix deprecation warning ### Removed diff --git a/src/events/ready.test.ts b/src/events/clientReady.test.ts similarity index 92% rename from src/events/ready.test.ts rename to src/events/clientReady.test.ts index b761f526..8f6fcd7a 100644 --- a/src/events/ready.test.ts +++ b/src/events/clientReady.test.ts @@ -56,9 +56,9 @@ const mockVerifyCommandDeployments = verifyCommandDeployments as Mock< vi.mock('../logger.js'); // Import the code to test -import { ready } from './ready.js'; +import { clientReady } from './clientReady.js'; -describe('once(ready)', () => { +describe('once(clientReady)', () => { beforeEach(() => { // Default is no deploy, no revoke, no method behavior mockParseArgs.mockReturnValue({ @@ -77,7 +77,7 @@ describe('once(ready)', () => { deploy: false, revoke: false, }); - await ready.execute(client); + await clientReady.execute(client); expect(mockDeployCommands).not.toHaveBeenCalled(); expect(mockRevokeCommands).not.toHaveBeenCalled(); }); @@ -87,7 +87,7 @@ describe('once(ready)', () => { deploy: true, revoke: false, }); - await ready.execute(client); + await clientReady.execute(client); expect(mockDeployCommands).toHaveBeenCalledWith(client); expect(mockRevokeCommands).not.toHaveBeenCalled(); }); @@ -97,7 +97,7 @@ describe('once(ready)', () => { deploy: false, revoke: true, }); - await ready.execute(client); + await clientReady.execute(client); expect(mockDeployCommands).not.toHaveBeenCalled(); expect(mockRevokeCommands).toHaveBeenCalledWith(client); }); @@ -107,18 +107,18 @@ describe('once(ready)', () => { deploy: true, revoke: true, }); - await ready.execute(client); + await clientReady.execute(client); expect(mockDeployCommands).toHaveBeenCalledWith(client); expect(mockRevokeCommands).not.toHaveBeenCalled(); }); test('verifies command deployments', async () => { - await ready.execute(client); + await clientReady.execute(client); expect(mockVerifyCommandDeployments).toHaveBeenCalledWith(client); }); test('sets user activity', async () => { - await ready.execute(client); + await clientReady.execute(client); expect(mockSetActivity).toHaveBeenCalledOnce(); }); }); diff --git a/src/events/ready.ts b/src/events/clientReady.ts similarity index 97% rename from src/events/ready.ts rename to src/events/clientReady.ts index e05532c1..864a738d 100644 --- a/src/events/ready.ts +++ b/src/events/clientReady.ts @@ -13,7 +13,7 @@ import { info } from '../logger.js'; /** * The event handler for when the Discord Client is ready for action */ -export const ready = onEvent('ready', { +export const clientReady = onEvent('clientReady', { once: true, async execute(client) { info(`Starting ${client.user.username} v${appVersion}...`); diff --git a/src/events/index.test.ts b/src/events/index.test.ts index 6641058d..7a683345 100644 --- a/src/events/index.test.ts +++ b/src/events/index.test.ts @@ -53,7 +53,7 @@ describe('allEvents', () => { (allEventHandlers as Map).clear(); const fakeReadyEvent: EventHandler = { - name: 'ready', + name: 'clientReady', once: true, execute: vi.fn(), }; diff --git a/src/events/index.ts b/src/events/index.ts index a2b581e1..1339672b 100644 --- a/src/events/index.ts +++ b/src/events/index.ts @@ -53,15 +53,15 @@ export function registerEventHandlers(client: Client): void { } // Install event handlers +import { clientReady } from './clientReady.js'; import { error } from './error.js'; import { interactionCreate } from './interactionCreate.js'; import { messageReactionAdd } from './messageReactionAdd.js'; import { messageReactionRemove } from './messageReactionRemove.js'; -import { ready } from './ready.js'; +_add(clientReady as EventHandler); _add(error as EventHandler); _add(interactionCreate as EventHandler); _add(messageReactionAdd as EventHandler); _add(messageReactionRemove as EventHandler); -_add(ready as EventHandler); // Not sure why these type casts are necessary, but they seem sound. We can remove them when TS gets smarter, or we learn what I did wrong diff --git a/src/helpers/onEvent.test.ts b/src/helpers/onEvent.test.ts index 0d4fa0d1..17d77f47 100644 --- a/src/helpers/onEvent.test.ts +++ b/src/helpers/onEvent.test.ts @@ -11,11 +11,11 @@ describe('Creating event handlers', () => { // few arguments, or arguments of the wrong type. test('creates a proper event handler', () => { - const handler = onEvent('ready', { + const handler = onEvent('clientReady', { once: true, execute: executeMock, }); - expect(handler).toHaveProperty('name', 'ready'); + expect(handler).toHaveProperty('name', 'clientReady'); expect(handler).toHaveProperty('once', true); expect(handler).toHaveProperty('execute', executeMock); });