mirror of
https://github.com/pieartsy/PluralFlux.git
synced 2026-04-16 17:45:28 +10:00
updating tests
This commit is contained in:
@@ -5,7 +5,7 @@ const {commands} = require("./commands.js");
|
|||||||
const {webhookHelper} = require("./helpers/webhookHelper.js");
|
const {webhookHelper} = require("./helpers/webhookHelper.js");
|
||||||
const env = require('dotenv');
|
const env = require('dotenv');
|
||||||
const {utils} = require("./helpers/utils.js");
|
const {utils} = require("./helpers/utils.js");
|
||||||
const {AppDataSource} = require("../database/data-source");
|
const { AppDataSource } = require("../database/data-source");
|
||||||
|
|
||||||
env.config();
|
env.config();
|
||||||
|
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ memberHelper.addNewMember = async function (authorId, memberName, values, attach
|
|||||||
const propic = values[2] ?? attachmentUrl;
|
const propic = values[2] ?? attachmentUrl;
|
||||||
|
|
||||||
const memberObj = await memberHelper.addFullMember(authorId, memberName, displayName, proxy, propic, attachmentExpiration);
|
const memberObj = await memberHelper.addFullMember(authorId, memberName, displayName, proxy, propic, attachmentExpiration);
|
||||||
const memberInfoEmbed = memberHelper.getMemberInfo(memberObj);
|
const memberInfoEmbed = memberHelper.getMemberInfo(memberObj.member);
|
||||||
return {embed: memberInfoEmbed, errors: memberObj.errors, success: `${memberName} has been added successfully.`}
|
return {embed: memberInfoEmbed, errors: memberObj.errors, success: `${memberName} has been added successfully.`}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,11 +314,11 @@ memberHelper.removeMember = async function (authorId, memberName) {
|
|||||||
* @param {string | null} [proxy] - The proxy tag of the member.
|
* @param {string | null} [proxy] - The proxy tag of the member.
|
||||||
* @param {string | null} [propic] - The profile picture URL of the member.
|
* @param {string | null} [propic] - The profile picture URL of the member.
|
||||||
* @param {string | null} [attachmentExpiration] - The expiration date of an uploaded profile picture.
|
* @param {string | null} [attachmentExpiration] - The expiration date of an uploaded profile picture.
|
||||||
* @returns {Promise<{ObjectLiteral[], string[]}>} A successful addition object, including errors if there are any.
|
* @returns {Promise<{Members, string[]}>} A successful addition object, including errors if there are any.
|
||||||
* @throws {Error} When the member already exists, there are validation errors, or adding a member doesn't work.
|
* @throws {Error} When the member already exists, there are validation errors, or adding a member doesn't work.
|
||||||
*/
|
*/
|
||||||
memberHelper.addFullMember = async function (authorId, memberName, displayName = null, proxy = null, propic = null, attachmentExpiration = null) {
|
memberHelper.addFullMember = async function (authorId, memberName, displayName = null, proxy = null, propic = null, attachmentExpiration = null) {
|
||||||
const existingMember = await memberHelper.getMemberByName(authorId, memberName);
|
const existingMember = await memberRepo.getMemberByName(authorId, memberName);
|
||||||
if (existingMember) {
|
if (existingMember) {
|
||||||
throw new Error(`Can't add ${memberName}. ${enums.err.MEMBER_EXISTS}`);
|
throw new Error(`Can't add ${memberName}. ${enums.err.MEMBER_EXISTS}`);
|
||||||
}
|
}
|
||||||
@@ -403,7 +403,7 @@ memberHelper.updateMemberField = async function (authorId, memberName, columnNam
|
|||||||
/**
|
/**
|
||||||
* Gets the details for a member.
|
* Gets the details for a member.
|
||||||
*
|
*
|
||||||
* @param {{ObjectLiteral, string[]}} member - The member object
|
* @param {{Members, string[]}} member - The member object
|
||||||
* @returns {EmbedBuilder} The member's info.
|
* @returns {EmbedBuilder} The member's info.
|
||||||
*/
|
*/
|
||||||
memberHelper.getMemberInfo = function (member) {
|
memberHelper.getMemberInfo = function (member) {
|
||||||
@@ -451,7 +451,7 @@ memberHelper.checkIfProxyExists = async function (authorId, proxy) {
|
|||||||
if (splitProxy.length < 2) throw new Error(enums.err.NO_TEXT_FOR_PROXY);
|
if (splitProxy.length < 2) throw new Error(enums.err.NO_TEXT_FOR_PROXY);
|
||||||
if (!splitProxy[0] && !splitProxy[1]) throw new Error(enums.err.NO_PROXY_WRAPPER);
|
if (!splitProxy[0] && !splitProxy[1]) throw new Error(enums.err.NO_PROXY_WRAPPER);
|
||||||
|
|
||||||
const memberList = await memberHelper.getMembersByAuthor(authorId);
|
const memberList = await memberRepo.getMembersByAuthor(authorId);
|
||||||
const proxyExists = memberList.some(member => member.proxy === proxy);
|
const proxyExists = memberList.some(member => member.proxy === proxy);
|
||||||
if (proxyExists) {
|
if (proxyExists) {
|
||||||
throw new Error(enums.err.PROXY_EXISTS);
|
throw new Error(enums.err.PROXY_EXISTS);
|
||||||
|
|||||||
@@ -56,6 +56,15 @@ jest.mock("../src/commands.js", () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
jest.mock('../database/data-source.ts', () => {
|
||||||
|
return {
|
||||||
|
AppDataSource: {
|
||||||
|
IsInitialized: false,
|
||||||
|
initialize: jest.fn().mockResolvedValue()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
const {Client, Events} = require('@fluxerjs/core');
|
const {Client, Events} = require('@fluxerjs/core');
|
||||||
const {messageHelper} = require("../src/helpers/messageHelper.js");
|
const {messageHelper} = require("../src/helpers/messageHelper.js");
|
||||||
|
|||||||
@@ -2,17 +2,15 @@ const {enums} = require('../../src/enums.js');
|
|||||||
const {utils} = require("../../src/helpers/utils.js");
|
const {utils} = require("../../src/helpers/utils.js");
|
||||||
|
|
||||||
jest.mock('@fluxerjs/core', () => jest.fn());
|
jest.mock('@fluxerjs/core', () => jest.fn());
|
||||||
jest.mock('../../src/database.js', () => {
|
jest.mock('../../src/repositories/memberRepository.js', () => {
|
||||||
return {
|
return {
|
||||||
database: {
|
memberRepo: {
|
||||||
members: {
|
getMemberByName: jest.fn().mockResolvedValue(),
|
||||||
create: jest.fn().mockResolvedValue(),
|
getMembersByAuthor: jest.fn().mockResolvedValue(),
|
||||||
update: jest.fn().mockResolvedValue(),
|
removeMember: jest.fn().mockResolvedValue(),
|
||||||
destroy: jest.fn().mockResolvedValue(),
|
createMember: jest.fn().mockResolvedValue(),
|
||||||
findOne: jest.fn().mockResolvedValue(),
|
updateMemberValue: jest.fn().mockResolvedValue(),
|
||||||
findAll: jest.fn().mockResolvedValue(),
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -25,10 +23,8 @@ jest.mock("../../src/helpers/utils.js", () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const {Op} = require('sequelize');
|
|
||||||
|
|
||||||
const {memberHelper} = require("../../src/helpers/memberHelper.js");
|
const {memberHelper} = require("../../src/helpers/memberHelper.js");
|
||||||
const {database} = require("../../src/database");
|
const {memberRepo} = require("../../src/repositories/memberRepository.js");
|
||||||
|
|
||||||
describe('MemberHelper', () => {
|
describe('MemberHelper', () => {
|
||||||
const authorId = "0001";
|
const authorId = "0001";
|
||||||
@@ -270,29 +266,29 @@ describe('MemberHelper', () => {
|
|||||||
['propic', `The profile picture for ${mockMember.name} is \"${mockMember.propic}\".`],
|
['propic', `The profile picture for ${mockMember.name} is \"${mockMember.propic}\".`],
|
||||||
])('%s calls getMemberByName and returns value', async (command, expected) => {
|
])('%s calls getMemberByName and returns value', async (command, expected) => {
|
||||||
// Arrange
|
// Arrange
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(mockMember);
|
memberRepo.getMemberByName.mockResolvedValue(mockMember);
|
||||||
// Act
|
// Act
|
||||||
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, command);
|
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, command);
|
||||||
// Assert
|
// Assert
|
||||||
expect(result).toEqual(expected);
|
expect(result).toEqual(expected);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledTimes(1);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test('returns error if no member found', async () => {
|
test('returns error if no member found', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(null);
|
memberRepo.getMemberByName.mockResolvedValue(null);
|
||||||
// Act
|
// Act
|
||||||
await expect(memberHelper.sendCurrentValue(authorId, mockMember.name, 'name')).rejects.toThrow(enums.err.NO_MEMBER);
|
await expect(memberHelper.sendCurrentValue(authorId, mockMember.name, 'name')).rejects.toThrow(enums.err.NO_MEMBER);
|
||||||
// Assert
|
// Assert
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledTimes(1);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('calls getMemberInfo with member if no command present', async () => {
|
test('calls getMemberInfo with member if no command present', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(mockMember);
|
memberRepo.getMemberByName.mockResolvedValue(mockMember);
|
||||||
jest.spyOn(memberHelper, 'getMemberInfo').mockResolvedValue('member info');
|
jest.spyOn(memberHelper, 'getMemberInfo').mockResolvedValue('member info');
|
||||||
// Act
|
// Act
|
||||||
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, null);
|
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, null);
|
||||||
@@ -309,13 +305,13 @@ describe('MemberHelper', () => {
|
|||||||
])('returns null message if no value found', async (command, expected) => {
|
])('returns null message if no value found', async (command, expected) => {
|
||||||
// Arrange
|
// Arrange
|
||||||
const empty = {name: mockMember.name, displayname: null, proxy: null, propic: null}
|
const empty = {name: mockMember.name, displayname: null, proxy: null, propic: null}
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue(empty);
|
memberRepo.getMemberByName.mockResolvedValue(empty);
|
||||||
// Act
|
// Act
|
||||||
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, command);
|
const result = await memberHelper.sendCurrentValue(authorId, mockMember.name, command);
|
||||||
// Assert
|
// Assert
|
||||||
expect(result).toEqual(expected);
|
expect(result).toEqual(expected);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledTimes(1);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -479,39 +475,38 @@ describe('MemberHelper', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('addFullMember', () => {
|
describe('addFullMember', () => {
|
||||||
const {database} = require('../../src/database.js');
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.spyOn(memberHelper, 'getMemberByName').mockResolvedValue();
|
|
||||||
})
|
|
||||||
|
|
||||||
test('calls getMemberByName', async () => {
|
test('calls getMemberByName', async () => {
|
||||||
|
// Arrange
|
||||||
|
memberRepo.getMemberByName.mockResolvedValue();
|
||||||
// Act
|
// Act
|
||||||
await memberHelper.addFullMember(authorId, mockMember.name)
|
await memberHelper.addFullMember(authorId, mockMember.name)
|
||||||
// Assert
|
// Assert
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledWith(authorId, mockMember.name);
|
||||||
expect(memberHelper.getMemberByName).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMemberByName).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if getMemberByName returns member, throw error', async () => {
|
test('if getMemberByName returns member, throw error', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
memberHelper.getMemberByName.mockResolvedValue({name: mockMember.name});
|
memberRepo.getMemberByName.mockResolvedValue({name: mockMember.name});
|
||||||
// Act & Assert
|
// Act & Assert
|
||||||
await expect(memberHelper.addFullMember(authorId, mockMember.name)).rejects.toThrow(`Can't add ${mockMember.name}. ${enums.err.MEMBER_EXISTS}`)
|
await expect(memberHelper.addFullMember(authorId, mockMember.name)).rejects.toThrow(`Can't add ${mockMember.name}. ${enums.err.MEMBER_EXISTS}`)
|
||||||
// Assert
|
// Assert
|
||||||
expect(database.members.create).not.toHaveBeenCalled();
|
expect(memberRepo.createMember).not.toHaveBeenCalled();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
test('if name is not filled out, throw error', async () => {
|
test('if name is not filled out, throw error', async () => {
|
||||||
// Act & Assert
|
// Arrange
|
||||||
|
memberRepo.getMemberByName.mockResolvedValue();
|
||||||
|
// Act
|
||||||
await expect(memberHelper.addFullMember(authorId, " ")).rejects.toThrow(`Name ${enums.err.NO_VALUE}. ${enums.err.NAME_REQUIRED}`);
|
await expect(memberHelper.addFullMember(authorId, " ")).rejects.toThrow(`Name ${enums.err.NO_VALUE}. ${enums.err.NAME_REQUIRED}`);
|
||||||
// Assert
|
// Assert
|
||||||
expect(database.members.create).not.toHaveBeenCalled();
|
expect(memberRepo.createMember).not.toHaveBeenCalled();
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if displayname is over 32 characters, call database.member.create with null value', async () => {
|
test('if displayname is over 32 characters, call memberRepo.createMember with null value', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
memberHelper.getMemberByName.mockResolvedValue();
|
memberRepo.getMemberByName.mockResolvedValue();
|
||||||
const tooLongDisplayName = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
const tooLongDisplayName = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
|
||||||
const expectedMemberArgs = {
|
const expectedMemberArgs = {
|
||||||
name: mockMember.name,
|
name: mockMember.name,
|
||||||
@@ -520,7 +515,7 @@ describe('MemberHelper', () => {
|
|||||||
proxy: null,
|
proxy: null,
|
||||||
propic: null
|
propic: null
|
||||||
}
|
}
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
const expectedReturn = {
|
const expectedReturn = {
|
||||||
member: expectedMemberArgs,
|
member: expectedMemberArgs,
|
||||||
errors: [`Tried to set displayname to \"${tooLongDisplayName}\". ${enums.err.DISPLAY_NAME_TOO_LONG}. ${enums.err.SET_TO_NULL}`]
|
errors: [`Tried to set displayname to \"${tooLongDisplayName}\". ${enums.err.DISPLAY_NAME_TOO_LONG}. ${enums.err.SET_TO_NULL}`]
|
||||||
@@ -530,8 +525,8 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.addFullMember(authorId, mockMember.name, tooLongDisplayName, null, null);
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, tooLongDisplayName, null, null);
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if proxy, call checkIfProxyExists', async () => {
|
test('if proxy, call checkIfProxyExists', async () => {
|
||||||
@@ -544,7 +539,7 @@ describe('MemberHelper', () => {
|
|||||||
proxy: null,
|
proxy: null,
|
||||||
propic: null
|
propic: null
|
||||||
}
|
}
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
@@ -553,8 +548,8 @@ describe('MemberHelper', () => {
|
|||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(memberHelper.checkIfProxyExists).toHaveBeenCalledWith(authorId, mockMember.proxy);
|
expect(memberHelper.checkIfProxyExists).toHaveBeenCalledWith(authorId, mockMember.proxy);
|
||||||
expect(memberHelper.checkIfProxyExists).toHaveBeenCalledTimes(1);
|
expect(memberHelper.checkIfProxyExists).toHaveBeenCalledTimes(1);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if checkProxyExists throws error, call database.member.create with null value', async () => {
|
test('if checkProxyExists throws error, call database.member.create with null value', async () => {
|
||||||
@@ -567,7 +562,7 @@ describe('MemberHelper', () => {
|
|||||||
proxy: null,
|
proxy: null,
|
||||||
propic: null
|
propic: null
|
||||||
}
|
}
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
const expectedReturn = {
|
const expectedReturn = {
|
||||||
member: expectedMemberArgs,
|
member: expectedMemberArgs,
|
||||||
errors: [`Tried to set proxy to \"${mockMember.proxy}\". error. ${enums.err.SET_TO_NULL}`]
|
errors: [`Tried to set proxy to \"${mockMember.proxy}\". error. ${enums.err.SET_TO_NULL}`]
|
||||||
@@ -577,8 +572,8 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, mockMember.proxy, null)
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, mockMember.proxy, null)
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if propic, call checkImageFormatValidity', async () => {
|
test('if propic, call checkImageFormatValidity', async () => {
|
||||||
@@ -591,7 +586,7 @@ describe('MemberHelper', () => {
|
|||||||
propic: null
|
propic: null
|
||||||
}
|
}
|
||||||
utils.setExpirationWarning = jest.fn().mockReturnValue();
|
utils.setExpirationWarning = jest.fn().mockReturnValue();
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
||||||
// Act
|
// Act
|
||||||
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic);
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic);
|
||||||
@@ -599,8 +594,8 @@ describe('MemberHelper', () => {
|
|||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(utils.checkImageFormatValidity).toHaveBeenCalledWith(mockMember.propic);
|
expect(utils.checkImageFormatValidity).toHaveBeenCalledWith(mockMember.propic);
|
||||||
expect(utils.checkImageFormatValidity).toHaveBeenCalledTimes(1);
|
expect(utils.checkImageFormatValidity).toHaveBeenCalledTimes(1);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if checkImageFormatValidity throws error, call database.member.create with null value', async () => {
|
test('if checkImageFormatValidity throws error, call database.member.create with null value', async () => {
|
||||||
@@ -613,7 +608,7 @@ describe('MemberHelper', () => {
|
|||||||
proxy: null,
|
proxy: null,
|
||||||
propic: null
|
propic: null
|
||||||
}
|
}
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
const expectedReturn = {
|
const expectedReturn = {
|
||||||
member: expectedMemberArgs,
|
member: expectedMemberArgs,
|
||||||
errors: [`Tried to set profile picture to \"${mockMember.propic}\". error. ${enums.err.SET_TO_NULL}`]
|
errors: [`Tried to set profile picture to \"${mockMember.propic}\". error. ${enums.err.SET_TO_NULL}`]
|
||||||
@@ -622,8 +617,8 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic);
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic);
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
test('calls setExpirationWarning if attachmentExpiration exists', async () => {
|
test('calls setExpirationWarning if attachmentExpiration exists', async () => {
|
||||||
@@ -647,7 +642,7 @@ describe('MemberHelper', () => {
|
|||||||
proxy: mockMember.proxy,
|
proxy: mockMember.proxy,
|
||||||
propic: mockMember.propic
|
propic: mockMember.propic
|
||||||
}
|
}
|
||||||
database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs);
|
memberRepo.createMember = jest.fn().mockResolvedValue(expectedMemberArgs);
|
||||||
utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true);
|
utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true);
|
||||||
utils.setExpirationWarning = jest.fn().mockReturnValue();
|
utils.setExpirationWarning = jest.fn().mockReturnValue();
|
||||||
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
const expectedReturn = {member: expectedMemberArgs, errors: []}
|
||||||
@@ -655,19 +650,16 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.addFullMember(authorId, mockMember.name, mockMember.displayname, mockMember.proxy, mockMember.propic);
|
const res = await memberHelper.addFullMember(authorId, mockMember.name, mockMember.displayname, mockMember.proxy, mockMember.propic);
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(expectedReturn);
|
expect(res).toEqual(expectedReturn);
|
||||||
expect(database.members.create).toHaveBeenCalledWith(expectedMemberArgs);
|
expect(memberRepo.createMember).toHaveBeenCalledWith(expectedMemberArgs);
|
||||||
expect(database.members.create).toHaveBeenCalledTimes(1);
|
expect(memberRepo.createMember).toHaveBeenCalledTimes(1);
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('updateMemberField', () => {
|
describe('updateMemberField', () => {
|
||||||
const {database} = require('../../src/database.js');
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
utils.setExpirationWarning = jest.fn().mockReturnValue(`warning`);
|
utils.setExpirationWarning = jest.fn().mockReturnValue(`warning`);
|
||||||
database.members = {
|
memberRepo.updateMemberValue = jest.fn().mockResolvedValue([1]);
|
||||||
update: jest.fn().mockResolvedValue([1])
|
|
||||||
};
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test.each([
|
test.each([
|
||||||
@@ -682,20 +674,13 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.updateMemberField(authorId, mockMember.name, columnName, value, attachmentExpiration)
|
const res = await memberHelper.updateMemberField(authorId, mockMember.name, columnName, value, attachmentExpiration)
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(expected);
|
expect(res).toEqual(expected);
|
||||||
expect(database.members.update).toHaveBeenCalledTimes(1);
|
expect(memberRepo.updateMemberValue).toHaveBeenCalledTimes(1);
|
||||||
expect(database.members.update).toHaveBeenCalledWith({[columnName]: value}, {
|
expect(memberRepo.updateMemberValue).toHaveBeenCalledWith(authorId, mockMember.name, columnName, value)
|
||||||
where: {
|
|
||||||
name: {[Op.iLike]: mockMember.name},
|
|
||||||
userid: authorId
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
test('if database.members.update returns 0 rows changed, throw error', async () => {
|
test('if database.members.update returns 0 rows changed, throw error', async () => {
|
||||||
// Arrange
|
// Arrange
|
||||||
database.members = {
|
memberRepo.updateMemberValue = jest.fn().mockResolvedValue(0);
|
||||||
update: jest.fn().mockResolvedValue([0])
|
|
||||||
};
|
|
||||||
// Act
|
// Act
|
||||||
await expect(memberHelper.updateMemberField(authorId, mockMember.name, "displayname", mockMember.displayname)).rejects.toThrow(`Can't update ${mockMember.name}. ${enums.err.NO_MEMBER}.`);
|
await expect(memberHelper.updateMemberField(authorId, mockMember.name, "displayname", mockMember.displayname)).rejects.toThrow(`Can't update ${mockMember.name}. ${enums.err.NO_MEMBER}.`);
|
||||||
})
|
})
|
||||||
@@ -704,7 +689,7 @@ describe('MemberHelper', () => {
|
|||||||
describe('checkIfProxyExists', () => {
|
describe('checkIfProxyExists', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.spyOn(memberHelper, "getMembersByAuthor").mockResolvedValue([mockMember]);
|
memberRepo.getMembersByAuthor.mockResolvedValue([mockMember]);
|
||||||
})
|
})
|
||||||
|
|
||||||
test.each([
|
test.each([
|
||||||
@@ -722,8 +707,8 @@ describe('MemberHelper', () => {
|
|||||||
const res = await memberHelper.checkIfProxyExists(authorId, proxy)
|
const res = await memberHelper.checkIfProxyExists(authorId, proxy)
|
||||||
// Assert
|
// Assert
|
||||||
expect(res).toEqual(false)
|
expect(res).toEqual(false)
|
||||||
expect(memberHelper.getMembersByAuthor).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMembersByAuthor).toHaveBeenCalledTimes(1);
|
||||||
expect(memberHelper.getMembersByAuthor).toHaveBeenCalledWith(authorId);
|
expect(memberRepo.getMembersByAuthor).toHaveBeenCalledWith(authorId);
|
||||||
})
|
})
|
||||||
|
|
||||||
test.each([
|
test.each([
|
||||||
@@ -734,13 +719,13 @@ describe('MemberHelper', () => {
|
|||||||
// Act & Assert
|
// Act & Assert
|
||||||
await expect(memberHelper.checkIfProxyExists(authorId, proxy)).rejects.toThrow(error);
|
await expect(memberHelper.checkIfProxyExists(authorId, proxy)).rejects.toThrow(error);
|
||||||
|
|
||||||
expect(memberHelper.getMembersByAuthor).not.toHaveBeenCalled();
|
expect(memberRepo.getMembersByAuthor).not.toHaveBeenCalled();
|
||||||
})
|
})
|
||||||
|
|
||||||
test('--text returns correct error and calls getMemberByAuthor', async () => {
|
test('--text returns correct error and calls getMemberByAuthor', async () => {
|
||||||
await expect(memberHelper.checkIfProxyExists(authorId, "--text")).rejects.toThrow(enums.err.PROXY_EXISTS);
|
await expect(memberHelper.checkIfProxyExists(authorId, "--text")).rejects.toThrow(enums.err.PROXY_EXISTS);
|
||||||
expect(memberHelper.getMembersByAuthor).toHaveBeenCalledTimes(1);
|
expect(memberRepo.getMembersByAuthor).toHaveBeenCalledTimes(1);
|
||||||
expect(memberHelper.getMembersByAuthor).toHaveBeenCalledWith(authorId);
|
expect(memberRepo.getMembersByAuthor).toHaveBeenCalledWith(authorId);
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user