seyfert/tests/bitfield.test.mts
Marcos Susaña 4dd69aeb14
ci(test): change to vitest (#275)
* ci(test): change to vitest

* fix: mts tests
2024-10-10 21:02:55 -04:00

66 lines
1.9 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);
});
});