From 2e0a8adec50595b422dd93519a30d43cd2351adb Mon Sep 17 00:00:00 2001 From: Aster Fialla Date: Thu, 19 Feb 2026 01:31:38 -0500 Subject: [PATCH] added tests for updateDisplayName --- src/helpers/memberHelper.js | 6 +-- tests/helpers/memberHelper.test.js | 65 ++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 6 deletions(-) diff --git a/src/helpers/memberHelper.js b/src/helpers/memberHelper.js index 721ece0..df8eafd 100644 --- a/src/helpers/memberHelper.js +++ b/src/helpers/memberHelper.js @@ -142,7 +142,7 @@ mh.updateName = async function (authorId, args) { * @throws {RangeError} When the display name is too long or doesn't exist. */ mh.updateDisplayName = async function (authorId, args) { - if (args[1] && args[1] === "--help" || !args[1]) { + if (args[2] && args[2] === "--help") { return enums.help.DISPLAY_NAME; } @@ -155,11 +155,11 @@ mh.updateDisplayName = async function (authorId, args) { if (member && member.displayname) { return `Display name for ${memberName} is: \"${member.displayname}\".`; } else if (member) { - throw new EmptyResultError(`Display name ${enums.err.NO_VALUE}`); + throw new Error(`Display name ${enums.err.NO_VALUE}`); } }); } else if (displayName.length > 32) { - throw new RangeError(enums.err.NO_VALUE); + throw new RangeError(enums.err.DISPLAY_NAME_TOO_LONG); } else if (trimmedName === '') { throw new RangeError(`Display name ${enums.err.NO_VALUE}`); diff --git a/tests/helpers/memberHelper.test.js b/tests/helpers/memberHelper.test.js index 3b6ff43..13dec44 100644 --- a/tests/helpers/memberHelper.test.js +++ b/tests/helpers/memberHelper.test.js @@ -238,15 +238,16 @@ describe('MemberHelper', () => { test('sends help message when --help parameter passed in', async () => { // Arrange const args = ['somePerson', 'displayname', '--help']; - + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(); // Act return memberHelper.updateDisplayName(authorId, args).then((result) => { // Assert expect(result).toEqual(enums.help.DISPLAY_NAME); + expect(memberHelper.updateMemberField).not.toHaveBeenCalled(); }) }) - test('Sends string of current displayname when no displayname passed in', async () => { + test('Sends string of current displayname when it exists and no displayname passed in', async () => { // Arrange const args = ['somePerson', 'displayname']; const displayname = "Some Person"; @@ -254,11 +255,69 @@ describe('MemberHelper', () => { displayname: displayname, } jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member); - + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(); // Act return memberHelper.updateDisplayName(authorId, args).then((result) => { // Assert expect(result).toEqual(`Display name for ${args[0]} is: "${member.displayname}".`); + expect(memberHelper.updateMemberField).not.toHaveBeenCalled(); + }) + }) + + test('Sends error when no displayname passed in', async () => { + // Arrange + const args = ['somePerson', 'displayname']; + const member = {} + jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member); + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(); + // Act + return memberHelper.updateDisplayName(authorId, args).catch((result) => { + // Assert + expect(result).toEqual(new Error(`Display name ${enums.err.NO_VALUE}`)); + expect(memberHelper.updateMemberField).not.toHaveBeenCalled(); + }) + }) + + test('Sends error when display name is too long', async () => { + // Arrange + const displayname = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + const args = ['somePerson', 'displayname', displayname]; + const member = {}; + jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member); + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(); + // Act + return memberHelper.updateDisplayName(authorId, args).catch((result) => { + // Assert + expect(result).toEqual(new RangeError(enums.err.DISPLAY_NAME_TOO_LONG)); + expect(memberHelper.updateMemberField).not.toHaveBeenCalled(); + }) + }) + + test('Sends error when display name is blank', async () => { + // Arrange + const displayname = " "; + const args = ['somePerson', 'displayname', displayname]; + const member = {}; + jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member); + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(); + // Act + return memberHelper.updateDisplayName(authorId, args).catch((result) => { + // Assert + expect(result).toEqual(new Error(`Display name ${enums.err.NO_VALUE}`)); + expect(memberHelper.updateMemberField).not.toHaveBeenCalled(); + }) + }) + + test('call updateMemberField with correct arguments when displayname passed in correctly', async() => { + // Arrange + const args = ['somePerson', 'displayname', "Some Person"]; + const member = {}; + jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue(member); + // Act + return memberHelper.updateDisplayName(authorId, args).then((result) => { + // Assert + expect(memberHelper.updateMemberField).toHaveBeenCalledWith(authorId, args); + expect(memberHelper.updateMemberField).toHaveBeenCalledTimes(1); }) }) })