mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-01 20:46:08 +00:00
66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
import { assert, describe, test } from 'vitest';
|
|
import { BitField } from '../lib/structures/extra/BitField';
|
|
import { PermissionsBitField } from '../lib/structures/extra/Permissions';
|
|
import { PermissionFlagsBits } from '../lib/types';
|
|
|
|
describe('PermissionsBitField', () => {
|
|
test('constructor', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
assert.equal(p.bits, PermissionFlagsBits.CreateEvents);
|
|
});
|
|
|
|
test('add', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
p.add(['AttachFiles']);
|
|
p.add('ChangeNickname');
|
|
assert.equal(
|
|
p.bits,
|
|
PermissionFlagsBits.CreateEvents | PermissionFlagsBits.AttachFiles | PermissionFlagsBits.ChangeNickname,
|
|
);
|
|
});
|
|
|
|
test('remove', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
p.remove('CreateEvents');
|
|
assert.equal(p.bits, BitField.None);
|
|
});
|
|
|
|
test('keys', () => {
|
|
const p = new PermissionsBitField(['CreateEvents', 'Administrator']);
|
|
p.add(['AttachFiles']);
|
|
p.add('ChangeNickname');
|
|
|
|
const keys = ['CreateEvents', 'Administrator', 'AttachFiles', 'ChangeNickname'];
|
|
assert.equal(
|
|
true,
|
|
p.keys().every(x => keys.includes(x)),
|
|
);
|
|
assert.equal(p.keys().length, 4);
|
|
});
|
|
|
|
test('values', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
p.add('Administrator');
|
|
p.add(['ChangeNickname']);
|
|
assert.deepEqual(p.values(), [
|
|
PermissionFlagsBits.Administrator,
|
|
PermissionFlagsBits.ChangeNickname,
|
|
PermissionFlagsBits.CreateEvents,
|
|
]);
|
|
});
|
|
|
|
test('missings', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
p.add('Administrator');
|
|
p.add(['ChangeNickname']);
|
|
assert.deepEqual(p.missings('Connect'), [PermissionFlagsBits.Connect]);
|
|
});
|
|
|
|
test('equals', () => {
|
|
const p = new PermissionsBitField(['CreateEvents']);
|
|
p.add(['ChangeNickname']);
|
|
assert.deepEqual(p.equals(['ChangeNickname', 'CreateEvents']), true);
|
|
assert.deepEqual(p.equals('Connect'), false);
|
|
});
|
|
});
|