added tests for updateDisplayName

This commit is contained in:
Aster Fialla
2026-02-19 01:31:38 -05:00
parent 7aeae1837f
commit 2e0a8adec5
2 changed files with 65 additions and 6 deletions

View File

@@ -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}`);

View File

@@ -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);
})
})
})