mirror of
https://github.com/roleypoly/roleypoly.git
synced 2025-06-16 17:49:09 +00:00
feat(common): port utils, tests currently broken
This commit is contained in:
parent
c7afd84e1e
commit
5b440ffa8d
10 changed files with 235 additions and 0 deletions
37
src/common/utils/hasPermission.spec.ts
Normal file
37
src/common/utils/hasPermission.spec.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
import { hasPermission, permissions, hasPermissionOrAdmin } from './hasPermission';
|
||||
import { Role } from 'roleypoly/src/rpc/shared';
|
||||
import { guildRoles } from 'roleypoly/hack/fixtures/storyData';
|
||||
|
||||
const roles: Role.AsObject[] = [
|
||||
{
|
||||
...guildRoles.rolesList[0],
|
||||
permissions: permissions.ADMINISTRATOR,
|
||||
},
|
||||
{
|
||||
...guildRoles.rolesList[0],
|
||||
permissions:
|
||||
permissions.SPEAK | permissions.BAN_MEMBERS | permissions.CHANGE_NICKNAME,
|
||||
},
|
||||
{
|
||||
...guildRoles.rolesList[0],
|
||||
permissions: permissions.BAN_MEMBERS,
|
||||
},
|
||||
];
|
||||
|
||||
it('finds a permission within a list of roles', () => {
|
||||
const result = hasPermission(roles, permissions.CHANGE_NICKNAME);
|
||||
|
||||
expect(result).toBe(true);
|
||||
});
|
||||
|
||||
it('finds admin within a list of roles', () => {
|
||||
const result = hasPermissionOrAdmin(roles, permissions.BAN_MEMBERS);
|
||||
|
||||
expect(result).toBe(true);
|
||||
});
|
||||
|
||||
it('does not find a permission within a list of roles without one', () => {
|
||||
const result = hasPermission(roles, permissions.KICK_MEMBERS);
|
||||
|
||||
expect(result).toBe(false);
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue