From e51936771f93b019ad5a2160df3fe22426a2df51 Mon Sep 17 00:00:00 2001 From: spokodev Date: Thu, 16 Jul 2026 23:39:17 +0100 Subject: [PATCH] fix(builders): require select menu max_values to be at least 1 (#11565) Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> --- packages/builders/__tests__/components/selectMenu.test.ts | 3 +++ packages/builders/src/components/Assertions.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/builders/__tests__/components/selectMenu.test.ts b/packages/builders/__tests__/components/selectMenu.test.ts index f7137f951..6ccf92b00 100644 --- a/packages/builders/__tests__/components/selectMenu.test.ts +++ b/packages/builders/__tests__/components/selectMenu.test.ts @@ -150,6 +150,9 @@ describe('Select Menu Components', () => { test('GIVEN invalid inputs THEN Select Menu does throw', () => { expect(() => selectMenu().setCustomId(longStr).toJSON()).toThrowError(); expect(() => selectMenuWithId().setMaxValues(30).toJSON()).toThrowError(); + expect(() => + selectMenuWithId().setMaxValues(0).addOptions({ label: 'test', value: 'test' }).toJSON(), + ).toThrowError(); expect(() => selectMenuWithId().setMinValues(-20).toJSON()).toThrowError(); // @ts-expect-error: Invalid disabled value expect(() => selectMenuWithId().setDisabled(0).toJSON()).toThrowError(); diff --git a/packages/builders/src/components/Assertions.ts b/packages/builders/src/components/Assertions.ts index 88de74009..7e20fa672 100644 --- a/packages/builders/src/components/Assertions.ts +++ b/packages/builders/src/components/Assertions.ts @@ -63,7 +63,7 @@ const selectMenuBasePredicate = z.object({ id: idPredicate, placeholder: z.string().max(150).optional(), min_values: z.number().min(0).max(25).optional(), - max_values: z.number().min(0).max(25).optional(), + max_values: z.number().min(1).max(25).optional(), custom_id: customIdPredicate, disabled: z.boolean().optional(), });