diff --git a/tests/commands/timeout.test.ts b/tests/commands/timeout.test.ts index 8d62207..67c1d21 100644 --- a/tests/commands/timeout.test.ts +++ b/tests/commands/timeout.test.ts @@ -348,7 +348,48 @@ describe('execute', () => { expect(interaction.reply).toBeCalledWith('Fields are required.'); }); - test.todo('GIVEN targetMember IS NOT manageable by the bot, EXPECT insufficient permissions error'); + test('GIVEN targetMember IS NOT manageable by the bot, EXPECT insufficient permissions error', async () => { + const command = new Timeout(); + + const interaction = { + reply: jest.fn(), + guild: mock(), + guildId: 'guildId', + user: { + id: 'moderatorId', + }, + options: { + get: jest.fn((value: string): CommandInteractionOption | null => { + switch (value) { + case 'target': + return { + user: { + id: 'userId', + tag: 'userTag', + } as User, + member: { + manageable: false, + } as GuildMember + } as CommandInteractionOption; + case 'length': + return { + value: '1m', + } as CommandInteractionOption; + case 'reason': + return { + value: 'Test reason', + } as CommandInteractionOption; + default: + return null; + } + }), + } + } as unknown as CommandInteraction; + + await command.execute(interaction); + + expect(interaction.reply).toBeCalledWith('Insufficient bot permissions. Please contact a moderator.'); + }); // Reason variable test.todo('GIVEN reason IS NOT NULL, EXPECT to be ran with reason set');