From 569c22f1f419a21f9a371a513756298a8a00bcb7 Mon Sep 17 00:00:00 2001 From: Ethan Lane Date: Thu, 19 Aug 2021 17:27:47 +0100 Subject: [PATCH] More tests --- src/client/util.ts | 2 +- tests/client/util.test.ts | 168 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+), 1 deletion(-) diff --git a/src/client/util.ts b/src/client/util.ts index 187ce37..311ec00 100644 --- a/src/client/util.ts +++ b/src/client/util.ts @@ -70,7 +70,7 @@ export class Util { } else { return { valid: false, - message: "Comamnd folder does not exist", + message: "Command folder does not exist", } } } diff --git a/tests/client/util.test.ts b/tests/client/util.test.ts index 5b715e2..a406731 100644 --- a/tests/client/util.test.ts +++ b/tests/client/util.test.ts @@ -66,5 +66,173 @@ test('LoadCommand_GivenSuccessfulExection_ExpectSuccessfulResult', () => { expect(result.valid).toBeTruthy(); + client.destroy(); +}); + +test('LoadCommand_GivenMemberIsNull_ExpectFailedResult', () => { + process.env = { + BOT_TOKEN: 'TOKEN', + BOT_PREFIX: '!', + FOLDERS_COMMANDS: 'commands', + FOLDERS_EVENTS: 'events', + } + + process.cwd = jest.fn().mockReturnValue("../../tests/__mocks"); + fs.existsSync = jest.fn().mockReturnValue(true); + + const util = new Util(); + + let client = new Client(); + let user = new User(client, { + id: SnowflakeUtil.generate(), + username: "test-user", + discriminator: 1234, + }); + let guild = new Guild(client, { + id: SnowflakeUtil.generate(), + }); + let message = new Message( + client, + { + content: "!test first", + id: "test", + type: 0, + author: user, + }, + new TextChannel(guild, { + client: client, + guild: guild, + id: "channel-id", + }), + ); + + const result = util.loadCommand("name", [ "first" ], message); + + expect(result.valid).toBeFalsy(); + expect(result.message).toBe("Member is not part of message"); + + client.destroy(); +}); + +test('LoadCommand_GivenFolderDoesNotExist_ExpectFailedResult', () => { + process.env = { + BOT_TOKEN: 'TOKEN', + BOT_PREFIX: '!', + FOLDERS_COMMANDS: 'commands', + FOLDERS_EVENTS: 'events', + } + + process.cwd = jest.fn().mockReturnValue("../../tests/__mocks"); + fs.existsSync = jest.fn().mockReturnValue(false); + + const util = new Util(); + + let client = new Client(); + let user = new User(client, { + id: SnowflakeUtil.generate(), + username: "test-user", + discriminator: 1234, + }); + let guild = new Guild(client, { + id: SnowflakeUtil.generate(), + members: [{ + user: user, + nick: "Test User", + roles: [], + joined_at: "2015-04-26T06:26:56.936000+00:00", + deaf: false, + mute: false + }] + }); + let message = new Message( + client, + { + content: "!test first", + id: "test", + member: { + user: user, + nick: "NOT API SUPPORT", + roles: [], + joined_at: "2015-04-26T06:26:56.936000+00:00", + deaf: false, + mute: false + }, + type: 0, + author: user, + }, + new TextChannel(guild, { + client: client, + guild: guild, + id: "channel-id", + }), + ); + + const result = util.loadCommand("name", [ "first" ], message); + + expect(result.valid).toBeFalsy(); + expect(result.message).toBe("Command folder does not exist"); + + client.destroy(); +}); + +test('LoadCommand_GivenFileDoesNotExist_ExpectFailedResult', () => { + process.env = { + BOT_TOKEN: 'TOKEN', + BOT_PREFIX: '!', + FOLDERS_COMMANDS: 'commands', + FOLDERS_EVENTS: 'events', + } + + process.cwd = jest.fn().mockReturnValue("../../tests/__mocks"); + fs.existsSync = jest.fn().mockReturnValueOnce(true) + .mockReturnValue(false); + + const util = new Util(); + + let client = new Client(); + let user = new User(client, { + id: SnowflakeUtil.generate(), + username: "test-user", + discriminator: 1234, + }); + let guild = new Guild(client, { + id: SnowflakeUtil.generate(), + members: [{ + user: user, + nick: "Test User", + roles: [], + joined_at: "2015-04-26T06:26:56.936000+00:00", + deaf: false, + mute: false + }] + }); + let message = new Message( + client, + { + content: "!test first", + id: "test", + member: { + user: user, + nick: "NOT API SUPPORT", + roles: [], + joined_at: "2015-04-26T06:26:56.936000+00:00", + deaf: false, + mute: false + }, + type: 0, + author: user, + }, + new TextChannel(guild, { + client: client, + guild: guild, + id: "channel-id", + }), + ); + + const result = util.loadCommand("name", [ "first" ], message); + + expect(result.valid).toBeFalsy(); + expect(result.message).toBe("File does not exist"); + client.destroy(); }); \ No newline at end of file