forked from PluralFlux/PluralFlux
added tests for updateDisplayName
This commit is contained in:
@@ -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}`);
|
||||
|
||||
@@ -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);
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user