trying to get refactored memberhelper to pass tests -_-

This commit is contained in:
Aster Fialla
2026-02-20 11:28:28 -05:00
parent 932fc9c967
commit 0bca359b7f
2 changed files with 31 additions and 18 deletions

View File

@@ -24,18 +24,17 @@ const commandList = ['--help', 'new', 'remove', 'name', 'list', 'displayName', '
* @throws {Error} * @throws {Error}
*/ */
mh.parseMemberCommand = async function (authorId, authorFull, args, attachmentUrl = null, attachmentExpiration = null) { mh.parseMemberCommand = async function (authorId, authorFull, args, attachmentUrl = null, attachmentExpiration = null) {
let member; const memberName = !commandList.includes(args[0]) ? args[0] : args[1];
// checks whether command is in list, otherwise assumes it's a name // checks whether command is in list, otherwise assumes it's a name
if (!commandList.includes(args[0])) { const member = await mh.getMemberByName(authorId, memberName).then((m) => {
member = await mh.getMemberByName(authorId, args[1]).then((m) => {
if (!m) { if (!m) {
return enums.err.NO_MEMBER; return enums.err.NO_MEMBER;
} }
}) })
}
switch (args[0]) { switch (args[0]) {
case '--help':
return mh.getMemberCommandInfo();
case 'new': case 'new':
return await mh.addNewMember(authorId, args, attachmentUrl).catch((e) => { return await mh.addNewMember(authorId, args, attachmentUrl).catch((e) => {
throw e throw e
@@ -59,31 +58,33 @@ mh.parseMemberCommand = async function (authorId, authorFull, args, attachmentUr
return await mh.getAllMembersInfo(authorId, authorFull).catch((e) => { return await mh.getAllMembersInfo(authorId, authorFull).catch((e) => {
throw e throw e
}); });
case '--help':
case '': case '':
return enums.help.MEMBER; return mh.getMemberCommandInfo();
} }
switch (args[1]) { switch (args[1]) {
case 'name': case 'name':
return await mh.updateName(authorId, member.name, args[2]).catch((e) => { if (!args[2]) return member.name ?? `Name ${enums.err.NO_VALUE}`;
return await mh.updateName(authorId, args[1], args[2]).catch((e) => {
throw e throw e
}); });
case 'displayname': case 'displayname':
if (!args[2]) return member.displayname ?? `Display name ${enums.err.NO_VALUE}`; if (!args[2]) return member.displayname ?? `Display name ${enums.err.NO_VALUE}`;
return await mh.updateDisplayName(authorId, member.name, args[2]).catch((e) => { return await mh.updateDisplayName(authorId, args[1], args[2]).catch((e) => {
throw e throw e
}); });
case 'proxy': case 'proxy':
if (!args[2]) return member.proxy ?? `Proxy ${enums.err.NO_VALUE}`; if (!args[2]) return member.proxy ?? `Proxy ${enums.err.NO_VALUE}`;
return await mh.updateProxy(authorId, member.name, args[2]).catch((e) => { return await mh.updateProxy(authorId, args[1], args[2]).catch((e) => {
throw e throw e
}); });
case 'propic': case 'propic':
if (!args[2]) return member.propic ?? `Profile picture ${enums.err.NO_VALUE}`; if (!args[2]) return member.propic ?? `Profile picture ${enums.err.NO_VALUE}`;
return await mh.updatePropic(authorId, member.name, args[2], attachmentUrl, attachmentExpiration).catch((e) => { return await mh.updatePropic(authorId, args[1], args[2], attachmentUrl, attachmentExpiration).catch((e) => {
throw e throw e
}); });
default: default:
return await mh.getMemberInfo(authorId, member.name); return await mh.getMemberInfo(authorId, args[1]);
} }
} }

View File

@@ -12,6 +12,8 @@ jest.mock('../../src/database.js', () => {
create: jest.fn().mockResolvedValue(), create: jest.fn().mockResolvedValue(),
update: jest.fn().mockResolvedValue(), update: jest.fn().mockResolvedValue(),
destroy: jest.fn().mockResolvedValue(), destroy: jest.fn().mockResolvedValue(),
findOne: jest.fn().mockResolvedValue(),
findAll: jest.fn().mockResolvedValue(),
} }
} }
} }
@@ -24,15 +26,24 @@ describe('MemberHelper', () => {
const authorFull = "author#0001"; const authorFull = "author#0001";
const attachmentUrl = "../oya.png"; const attachmentUrl = "../oya.png";
const attachmentExpiration = new Date('2026-01-01T00.00.00.0000Z') const attachmentExpiration = new Date('2026-01-01T00.00.00.0000Z')
const member = {
name: "somePerson",
displayname: "Some Person",
proxy: "--text",
propic: "oya.png"
}
beforeEach(() => { beforeEach(() => {
jest.resetModules(); jest.resetModules();
jest.clearAllMocks(); jest.clearAllMocks();
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(member);
}) })
describe('parseMemberCommand', () => { describe('parseMemberCommand', () => {
beforeEach(() => { beforeEach(() => {
jest.spyOn(memberHelper, 'getMemberInfo').mockResolvedValue("member info"); jest.spyOn(memberHelper, 'getMemberInfo').mockResolvedValue("member info");
jest.spyOn(memberHelper, 'addNewMember').mockResolvedValue("new member"); jest.spyOn(memberHelper, 'addNewMember').mockResolvedValue("new member");
jest.spyOn(memberHelper, 'removeMember').mockResolvedValue("remove member"); jest.spyOn(memberHelper, 'removeMember').mockResolvedValue("remove member");
@@ -41,7 +52,8 @@ describe('MemberHelper', () => {
jest.spyOn(memberHelper, 'updateDisplayName').mockResolvedValue("update display name"); jest.spyOn(memberHelper, 'updateDisplayName').mockResolvedValue("update display name");
jest.spyOn(memberHelper, 'updateProxy').mockResolvedValue("update proxy"); jest.spyOn(memberHelper, 'updateProxy').mockResolvedValue("update proxy");
jest.spyOn(memberHelper, 'updatePropic').mockResolvedValue("update propic"); jest.spyOn(memberHelper, 'updatePropic').mockResolvedValue("update propic");
jest.spyOn(memberHelper, 'getProxyByMember').mockResolvedValue("get proxy");
jest.spyOn(memberHelper, 'getMemberCommandInfo').mockResolvedValue("member command info");
}); });
test.each([ test.each([