From 15a040d1d1fa2a01e5623329908376a17770c8b9 Mon Sep 17 00:00:00 2001 From: Aster Fialla Date: Tue, 24 Feb 2026 16:55:51 -0500 Subject: [PATCH] forgot to switch over some tests in bot.test and commands.test --- src/commands.js | 1 - tests/bot.test.js | 115 ++++++++++++++++++++-------------------- tests/commands.test.js | 116 +++++++++++++++++++++-------------------- 3 files changed, 117 insertions(+), 115 deletions(-) diff --git a/src/commands.js b/src/commands.js index 79f7f41..853a13b 100644 --- a/src/commands.js +++ b/src/commands.js @@ -35,7 +35,6 @@ cmds.memberCommand = async function(message, args) { reply = await memberHelper.parseMemberCommand(message.author.id, authorFull, args, attachmentUrl, attachmentExpires) } catch(e) { - console.log(e); await message.reply(e.message); } diff --git a/tests/bot.test.js b/tests/bot.test.js index 634acf4..748550b 100644 --- a/tests/bot.test.js +++ b/tests/bot.test.js @@ -75,7 +75,7 @@ describe('bot', () => { describe('handleMessageCreate', () => { - test('on message creation, if message is from bot, return', async() => { + test('on message creation, if message is from bot, return', async () => { // Arrange const message = { author: { @@ -87,7 +87,7 @@ describe('bot', () => { expect(res).toBeUndefined(); }) - test('on message creation, if message is empty, return', async() => { + test('on message creation, if message is empty, return', async () => { // Arrange const message = { content: " ", @@ -127,7 +127,8 @@ describe('bot', () => { bot: false } } - jest.spyOn(global.console, 'error').mockImplementation(() => {}) + jest.spyOn(global.console, 'error').mockImplementation(() => { + }) // Act await handleMessageCreate(message); // Assert @@ -137,7 +138,7 @@ describe('bot', () => { expect(console.error).toHaveBeenCalledWith(new Error('error')); }) - test("if no command after prefix, return correct enum", async() => { + test("if no command after prefix, return correct enum", async () => { // Arrange const message = { content: "pf;", @@ -154,7 +155,7 @@ describe('bot', () => { expect(webhookHelper.sendMessageAsMember).not.toHaveBeenCalled(); }) - test("if command after prefix, call parseCommandArgs and commandsMap.get", async() => { + test("if command after prefix, call parseCommandArgs and commandsMap.get", async () => { // Arrange const message = { content: "pf;help", @@ -177,7 +178,7 @@ describe('bot', () => { expect(webhookHelper.sendMessageAsMember).not.toHaveBeenCalled(); }) - test('if commands.commandsMap.get returns undefined, call aliasesMap.get and commandsMap.get again with that value', async() => { + test('if commands.commandsMap.get returns undefined, call aliasesMap.get and commandsMap.get again with that value', async () => { // Arrange const message = { content: "pf;m", @@ -202,7 +203,7 @@ describe('bot', () => { }) - test('if aliasesMap.get returns undefined, do not call commandsMap again', async() => { + test('if aliasesMap.get returns undefined, do not call commandsMap again', async () => { // Arrange const message = { content: "pf;m", @@ -223,7 +224,7 @@ describe('bot', () => { expect(commands.aliasesMap.get).toHaveBeenCalledWith('m'); }) - test("if command exists, call command.execute", () => { + test("if command exists, call command.execute", async () => { // Arrange const message = { content: "pf;member test", @@ -240,58 +241,58 @@ describe('bot', () => { command.execute = jest.fn().mockResolvedValue(); // Act - return handleMessageCreate(message).then(() => { - // Assert - expect(command.execute).toHaveBeenCalledTimes(1); - expect(command.execute).toHaveBeenCalledWith(message, ['test']); - expect(webhookHelper.sendMessageAsMember).not.toHaveBeenCalled(); - }); - }) - - test("if command.execute returns error, log error", async () => { - // Arrange - const command = { - execute: jest.fn() - } - commands.commandsMap.get = jest.fn().mockReturnValue(command); - command.execute.mockImplementation(() => { - throw Error("error") - }); - const message = { - content: "pf;member test", - author: { - bot: false - }, - reply: jest.fn() - } - jest.spyOn(global.console, 'error').mockImplementation(() => {}) - // Act - await handleMessageCreate(message); + await handleMessageCreate(message) // Assert - expect(console.error).toHaveBeenCalledTimes(1); - expect(console.error).toHaveBeenCalledWith(new Error('error')) - }) - - test("if command does not exist, return correct enum", async() => { - // Arrange - commands.commandsMap.get = jest.fn().mockReturnValue(); - commands.aliasesMap.get = jest.fn().mockReturnValue(); - const message = { - content: "pf;asdfjlas", - author: { - bot: false - }, - reply: jest.fn() - } - // Act - await handleMessageCreate(message); - // Assert - expect(message.reply).toHaveBeenCalledWith(enums.err.COMMAND_NOT_RECOGNIZED); - expect(message.reply).toHaveBeenCalledTimes(1); - }) + expect(command.execute).toHaveBeenCalledTimes(1); + expect(command.execute).toHaveBeenCalledWith(message, ['test']); + expect(webhookHelper.sendMessageAsMember).not.toHaveBeenCalled(); + }); }) - test('login calls client.login with correct argument', async() => { + test("if command.execute returns error, log error", async () => { + // Arrange + const command = { + execute: jest.fn() + } + commands.commandsMap.get = jest.fn().mockReturnValue(command); + command.execute.mockImplementation(() => { + throw Error("error") + }); + const message = { + content: "pf;member test", + author: { + bot: false + }, + reply: jest.fn() + } + jest.spyOn(global.console, 'error').mockImplementation(() => { + }) + // Act + await handleMessageCreate(message); + // Assert + expect(console.error).toHaveBeenCalledTimes(1); + expect(console.error).toHaveBeenCalledWith(new Error('error')) + }) + + test("if command does not exist, return correct enum", async () => { + // Arrange + commands.commandsMap.get = jest.fn().mockReturnValue(); + commands.aliasesMap.get = jest.fn().mockReturnValue(); + const message = { + content: "pf;asdfjlas", + author: { + bot: false + }, + reply: jest.fn() + } + // Act + await handleMessageCreate(message); + // Assert + expect(message.reply).toHaveBeenCalledWith(enums.err.COMMAND_NOT_RECOGNIZED); + expect(message.reply).toHaveBeenCalledTimes(1); + }) + + test('login calls client.login with correct argument', async () => { // Arrange client.login = jest.fn().mockResolvedValue(); // Act diff --git a/tests/commands.test.js b/tests/commands.test.js index f880b8d..9c38f59 100644 --- a/tests/commands.test.js +++ b/tests/commands.test.js @@ -72,80 +72,82 @@ describe('commands', () => { describe('memberCommand', () => { - test('calls parseMemberCommand with the correct arguments', () => { + test('calls parseMemberCommand with the correct arguments', async () => { // Arrange memberHelper.parseMemberCommand = jest.fn().mockResolvedValue("parsed command"); // Act - return commands.memberCommand(message, args).then(() => { - expect(memberHelper.parseMemberCommand).toHaveBeenCalledTimes(1); - expect(memberHelper.parseMemberCommand).toHaveBeenCalledWith(authorId, `${username}#${discriminator}`, args, attachmentUrl, attachmentExpiration); - }); - }) + await commands.memberCommand(message, args) + // Assert + expect(memberHelper.parseMemberCommand).toHaveBeenCalledTimes(1); + expect(memberHelper.parseMemberCommand).toHaveBeenCalledWith(authorId, `${username}#${discriminator}`, args, attachmentUrl, attachmentExpiration); + }); + }) - test('if parseMemberCommand returns error, log error and reply with error', () => { - // Arrange - memberHelper.parseMemberCommand = jest.fn().mockImplementation(() => { - throw new Error('error') - }); - // Act - return commands.memberCommand(message, args).catch(() => { - expect(message.reply).toHaveBeenCalledTimes(1); - expect(message.reply).toHaveBeenCalledWith('error'); - expect(console.error).toHaveBeenCalledWith(new Error('error')); - }); - }) + test('if parseMemberCommand returns error, log error and reply with error', async () => { + // Arrange + memberHelper.parseMemberCommand = jest.fn().mockImplementation(() => { + throw new Error('error') + }); + // Act + await commands.memberCommand(message, args) + // Assert + expect(message.reply).toHaveBeenCalledTimes(1); + expect(message.reply).toHaveBeenCalledWith('error'); + }); - test('if parseMemberCommand returns embed, reply with embed', async () => { - // Arrange - const embed = new EmbedBuilder(); - memberHelper.parseMemberCommand = jest.fn().mockResolvedValue(embed); - // Act - await commands.memberCommand(message, args); - expect(message.reply).toHaveBeenCalledTimes(1); - expect(message.reply).toHaveBeenCalledWith({embeds: [embed]}) - }) + test('if parseMemberCommand returns embed, reply with embed', async () => { + // Arrange + const embed = new EmbedBuilder(); + memberHelper.parseMemberCommand = jest.fn().mockResolvedValue(embed); + // Act + await commands.memberCommand(message, args); + expect(message.reply).toHaveBeenCalledTimes(1); + expect(message.reply).toHaveBeenCalledWith({embeds: [embed]}) + }) - test('if parseMemberCommand returns object, reply with embed and content', () => { - // Arrange - const reply = { - errors: ['error', 'error2'], - success: 'success', - embed: {} - } - memberHelper.parseMemberCommand = jest.fn().mockResolvedValue(reply); - // Act - return commands.memberCommand(message, args).catch(() => { - // Assert - expect(message.reply).toHaveBeenCalledTimes(1); - expect(message.reply).toHaveBeenCalledWith({ - content: `success\n\n${enums.err.ERRORS_OCCURRED}\n\nerror\nerror2}`, - embeds: [reply.embed] - }) - }); + test('if parseMemberCommand returns object, reply with embed and content', async () => { + // Arrange + const reply = { + errors: ['error', 'error2'], + success: 'success', + embed: {} + } + memberHelper.parseMemberCommand = jest.fn().mockResolvedValue(reply); + // Act + await commands.memberCommand(message, args); + // Assert + expect(message.reply).toHaveBeenCalledTimes(1); + expect(message.reply).toHaveBeenCalledWith({ + content: `success\n\n${enums.err.ERRORS_OCCURRED}\n\nerror\nerror2`, + embeds: [reply.embed] }) }) describe('importCommand', () => { - test('if message includes --help and no attachmentURL, return help message', () => { + test('if message includes --help and no attachmentURL, return help message', async () => { + // Arrange const args = ["--help"]; message.content = "pf;import --help"; message.attachments.size = 0; - return commands.importCommand(message, args).then(() => { - expect(message.reply).toHaveBeenCalledTimes(1); - expect(message.reply).toHaveBeenCalledWith(enums.help.IMPORT); - expect(importHelper.pluralKitImport).not.toHaveBeenCalled(); - }) + // Act + await commands.importCommand(message, args) + // Assert + expect(message.reply).toHaveBeenCalledTimes(1); + expect(message.reply).toHaveBeenCalledWith(enums.help.IMPORT); + expect(importHelper.pluralKitImport).not.toHaveBeenCalled(); }) - test('if no args and no attachmentURL, return help message', () => { + test('if no args and no attachmentURL, return help message', async () => { + // Arrange const args = [""]; message.content = 'pf;import' message.attachments.size = 0; - return commands.importCommand(message, args).then(() => { - expect(message.reply).toHaveBeenCalledTimes(1); - expect(message.reply).toHaveBeenCalledWith(enums.help.IMPORT); - expect(importHelper.pluralKitImport).not.toHaveBeenCalled(); - }) + // Act + await commands.importCommand(message, args) + // Assert + expect(message.reply).toHaveBeenCalledTimes(1); + expect(message.reply).toHaveBeenCalledWith(enums.help.IMPORT); + expect(importHelper.pluralKitImport).not.toHaveBeenCalled(); }) test('if attachment URL, call pluralKitImport with correct arguments', async () => { @@ -195,7 +197,7 @@ describe('commands', () => { expect(message.reply).toHaveBeenCalledWith(expected); }) - test('if pluralKitImport returns one error, reply with error', async() => { + test('if pluralKitImport returns one error, reply with error', async () => { // Arrange importHelper.pluralKitImport = jest.fn().mockImplementation(() => { throw new Error('error');