import { Collection, GuildMember, Role } from "discord.js" import { filterRolesFromMemberUpdate } from "../../server/helper/roleFilter" function buildFakeRole(id: string, name: string): Role { return { id, name } } test('filterRolesFromMemberUpdate', () => { const oldMemberRoles: Collection = new Collection() oldMemberRoles.set('1', buildFakeRole('01', 'Role01')) oldMemberRoles.set('2', buildFakeRole('02', 'Role02')) const newMemberRoles: Collection = new Collection() newMemberRoles.set('1', buildFakeRole('01', 'Role01')) newMemberRoles.set('2', buildFakeRole('02', 'Role02')) newMemberRoles.set('3', buildFakeRole('03', 'Role03')) const oldMember: GuildMember = { roles: { cache: oldMemberRoles }, guild: { id: "guildid" } } const newMember: GuildMember = { roles: { cache: newMemberRoles }, guild: { id: "guildid" } } const output = filterRolesFromMemberUpdate(oldMember, newMember) const expectedAddedRoles: Collection = new Collection() expectedAddedRoles.set('3', buildFakeRole('03', 'Role03')) const expectedRemovedRoles: Collection = new Collection() expect(output.addedRoles).toEqual(expectedAddedRoles) expect(output.removedRoles).toEqual(expectedRemovedRoles) })