From b2970bb2dddf70d2d918fda825059315f35d23f3 Mon Sep 17 00:00:00 2001 From: Amgelo563 <61554601+Amgelo563@users.noreply.github.com> Date: Sun, 21 Jul 2024 10:08:24 -0500 Subject: [PATCH] feat(SlashCommandBuilder): Add explicit command type when building (#10395) * feat(SlashCommandBuilder): add explicit command type when building * test: add tests * chore: merge import --------- Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: almeidx --- .../SlashCommands/SlashCommands.test.ts | 5 +++++ .../slashCommands/mixins/SharedSlashCommand.ts | 14 ++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/builders/__tests__/interactions/SlashCommands/SlashCommands.test.ts b/packages/builders/__tests__/interactions/SlashCommands/SlashCommands.test.ts index acfb6fdc2286..64e9d97a710d 100644 --- a/packages/builders/__tests__/interactions/SlashCommands/SlashCommands.test.ts +++ b/packages/builders/__tests__/interactions/SlashCommands/SlashCommands.test.ts @@ -1,4 +1,5 @@ import { + ApplicationCommandType, ApplicationIntegrationType, ChannelType, InteractionContextType, @@ -133,6 +134,10 @@ describe('Slash Commands', () => { }); describe('Builder with simple options', () => { + test('GIVEN valid builder THEN returns type included', () => { + expect(getNamedBuilder().toJSON()).includes({ type: ApplicationCommandType.ChatInput }); + }); + test('GIVEN valid builder with options THEN does not throw error', () => { expect(() => getBuilder() diff --git a/packages/builders/src/interactions/slashCommands/mixins/SharedSlashCommand.ts b/packages/builders/src/interactions/slashCommands/mixins/SharedSlashCommand.ts index 5d39cfc60a31..3908925bdea8 100644 --- a/packages/builders/src/interactions/slashCommands/mixins/SharedSlashCommand.ts +++ b/packages/builders/src/interactions/slashCommands/mixins/SharedSlashCommand.ts @@ -1,9 +1,10 @@ -import type { - ApplicationIntegrationType, - InteractionContextType, - LocalizationMap, - Permissions, - RESTPostAPIChatInputApplicationCommandsJSONBody, +import { + ApplicationCommandType, + type ApplicationIntegrationType, + type InteractionContextType, + type LocalizationMap, + type Permissions, + type RESTPostAPIChatInputApplicationCommandsJSONBody, } from 'discord-api-types/v10'; import type { RestOrArray } from '../../../util/normalizeArray.js'; import { normalizeArray } from '../../../util/normalizeArray.js'; @@ -149,6 +150,7 @@ export class SharedSlashCommand { return { ...this, + type: ApplicationCommandType.ChatInput, options: this.options.map((option) => option.toJSON()), }; }