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.
|
* @throws {RangeError} When the display name is too long or doesn't exist.
|
||||||
*/
|
*/
|
||||||
mh.updateDisplayName = async function (authorId, args) {
|
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;
|
return enums.help.DISPLAY_NAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,11 +155,11 @@ mh.updateDisplayName = async function (authorId, args) {
|
|||||||
if (member && member.displayname) {
|
if (member && member.displayname) {
|
||||||
return `Display name for ${memberName} is: \"${member.displayname}\".`;
|
return `Display name for ${memberName} is: \"${member.displayname}\".`;
|
||||||
} else if (member) {
|
} 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) {
|
} else if (displayName.length > 32) {
|
||||||
throw new RangeError(enums.err.NO_VALUE);
|
throw new RangeError(enums.err.DISPLAY_NAME_TOO_LONG);
|
||||||
}
|
}
|
||||||
else if (trimmedName === '') {
|
else if (trimmedName === '') {
|
||||||
throw new RangeError(`Display name ${enums.err.NO_VALUE}`);
|
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 () => {
|
test('sends help message when --help parameter passed in', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const args = ['somePerson', 'displayname', '--help'];
|
const args = ['somePerson', 'displayname', '--help'];
|
||||||
|
jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue();
|
||||||
// Act
|
// Act
|
||||||
return memberHelper.updateDisplayName(authorId, args).then((result) => {
|
return memberHelper.updateDisplayName(authorId, args).then((result) => {
|
||||||
// Assert
|
// Assert
|
||||||
expect(result).toEqual(enums.help.DISPLAY_NAME);
|
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
|
// Arrange
|
||||||
const args = ['somePerson', 'displayname'];
|
const args = ['somePerson', 'displayname'];
|
||||||
const displayname = "Some Person";
|
const displayname = "Some Person";
|
||||||
@@ -254,11 +255,69 @@ describe('MemberHelper', () => {
|
|||||||
displayname: displayname,
|
displayname: displayname,
|
||||||
}
|
}
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member);
|
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member);
|
||||||
|
jest.spyOn(memberHelper, 'updateMemberField').mockResolvedValue();
|
||||||
// Act
|
// Act
|
||||||
return memberHelper.updateDisplayName(authorId, args).then((result) => {
|
return memberHelper.updateDisplayName(authorId, args).then((result) => {
|
||||||
// Assert
|
// Assert
|
||||||
expect(result).toEqual(`Display name for ${args[0]} is: "${member.displayname}".`);
|
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