diff --git a/src/bot.js b/src/bot.js index 3e9d62d..157f95d 100644 --- a/src/bot.js +++ b/src/bot.js @@ -26,7 +26,7 @@ client.on(Events.MessageCreate, async (message) => { // If message doesn't start with the bot prefix, it could still be a message with a proxy tag. If it's not, return. if (!content.startsWith(messageHelper.prefix)) { - await webhookHelper.sendMessageAsMember(client, message, content).catch((e) => { + await webhookHelper.sendMessageAsMember(client, message).catch((e) => { throw e }); return; diff --git a/tests/helpers/membersHelper.test.js b/tests/helpers/membersHelper.test.js new file mode 100644 index 0000000..b3ee50c --- /dev/null +++ b/tests/helpers/membersHelper.test.js @@ -0,0 +1,59 @@ +jest.mock('@fluxerjs/core', () => jest.fn()); +jest.mock('../../src/db.js', () => jest.fn()); +jest.mock('sequelize', () => jest.fn()); +jest.mock('../../src/enums.js', () => ({ + enums: jest.requireActual('../../src/enums.js') +})); + +const {enums} = require("../../src/enums.js"); +const memberHelper = require("../../src/helpers/memberHelper.js"); + +describe('parseMemberCommand', () => { + + beforeEach(() => { + jest.resetModules(); + jest.clearAllMocks(); + jest.spyOn(memberHelper, 'getMemberInfo').mockResolvedValue("member info"); + jest.spyOn(memberHelper, 'addNewMember').mockResolvedValue("new member"); + jest.spyOn(memberHelper, 'removeMember').mockResolvedValue("remove member"); + jest.spyOn(memberHelper, 'getAllMembersInfo').mockResolvedValue("all member info"); + jest.spyOn(memberHelper, 'updateName').mockResolvedValue("update name"); + jest.spyOn(memberHelper, 'updateDisplayName').mockResolvedValue("update display name"); + jest.spyOn(memberHelper, 'updateProxy').mockResolvedValue("update proxy"); + jest.spyOn(memberHelper, 'updatePropic').mockResolvedValue("update propic"); + jest.spyOn(memberHelper, 'getProxyByMember').mockResolvedValue("update proxy"); + }); + + + test.each([ + [['--help'], enums.help.MEMBER], + [['new'], 'new member'], + [['remove'], 'remove member'], + [['name'], enums.help.NAME], + [['displayname'], enums.help.DISPLAY_NAME], + [['proxy'], enums.help.PROXY], + [['propic'], enums.help.PROPIC], + [['list'], 'all member info'], + [[''], enums.help.MEMBER], + [['somePerson', 'new'], enums.help.NEW], + [['somePerson', 'name'], 'update name'], + [['somePerson', 'displayname'], 'update display name'], + [['somePerson', 'proxy'], 'update proxy'], + [['somePerson', 'propic'], 'update propic'], + [['somePerson'], 'member info'], + ])('%s returns correct values', async(args, expectedResult) => { + // Arrange + const authorId = '1'; + const authorFull = 'somePerson#0001'; + // Act + const result = await memberHelper.parseMemberCommand(authorId, authorFull, args); + // + expect(result).toEqual(expectedResult); + }); + + afterEach(() => { + // restore the spy created with spyOn + jest.restoreAllMocks(); + }); +}) +