forked from PluralFlux/PluralFlux
trying to get refactored memberhelper to pass tests -_-
This commit is contained in:
@@ -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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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([
|
||||||
|
|||||||
Reference in New Issue
Block a user