diff --git a/packages/builders/__tests__/util.test.ts b/packages/builders/__tests__/util.test.ts index 3e423a7ef44f..1a90e3acf277 100644 --- a/packages/builders/__tests__/util.test.ts +++ b/packages/builders/__tests__/util.test.ts @@ -1,5 +1,5 @@ import { describe, test, expect } from 'vitest'; -import { enableValidators, disableValidators, isValidationEnabled } from '../src/index.js'; +import { enableValidators, disableValidators, isValidationEnabled, normalizeArray } from '../src/index.js'; describe('validation', () => { test('enables validation', () => { @@ -12,3 +12,19 @@ describe('validation', () => { expect(isValidationEnabled()).toBeFalsy(); }); }); + +describe('normalizeArray', () => { + test('normalizes an array or array (when input is an array)', () => { + expect(normalizeArray([[1, 2, 3]])).toEqual([1, 2, 3]); + }); + + test('normalizes an array (when input is rest parameter)', () => { + expect(normalizeArray([1, 2, 3])).toEqual([1, 2, 3]); + }); + + test('always returns a clone', () => { + const arr = [1, 2, 3]; + expect(normalizeArray([arr])).toEqual(arr); + expect(normalizeArray([arr])).not.toBe(arr); + }); +}); diff --git a/packages/builders/src/components/selectMenu/MentionableSelectMenu.ts b/packages/builders/src/components/selectMenu/MentionableSelectMenu.ts index b577822e9e0a..2f5e71b7dba6 100644 --- a/packages/builders/src/components/selectMenu/MentionableSelectMenu.ts +++ b/packages/builders/src/components/selectMenu/MentionableSelectMenu.ts @@ -110,7 +110,7 @@ export class MentionableSelectMenuBuilder extends BaseSelectMenuBuilder(arr: RestOrArray): ItemType[] { - if (Array.isArray(arr[0])) return arr[0]; + if (Array.isArray(arr[0])) return [...arr[0]]; return arr as ItemType[]; }