@v4fire/core
Version:
V4Fire core library
69 lines (55 loc) • 1.48 kB
JavaScript
/* eslint-disable @typescript-eslint/typedef, @typescript-eslint/restrict-plus-operands */
/*!
* V4Fire Core
* https://github.com/V4Fire/Core
*
* Released under the MIT license
* https://github.com/V4Fire/Core/blob/master/LICENSE
*/
describe('core/prelude/object/metrics/size', () => {
it('array', () => {
expect(Object.size([1, 2, 3])).toBe(3);
});
it('object', () => {
expect(Object.size({a: 1})).toBe(1);
});
it('map', () => {
expect(Object.size(new Map([[0, 1]]))).toBe(1);
});
it('set', () => {
expect(Object.size(new Set([1, 2]))).toBe(2);
});
it('function', () => {
expect(Object.size(foo)).toBe(2);
function foo(a, b) {
return a + b;
}
});
it('string', () => {
expect(Object.size('123')).toBe(3);
});
it('number', () => {
expect(Object.size(2)).toBe(2);
expect(Object.size(NaN)).toBe(0);
expect(Object.size(Infinity)).toBe(Infinity);
});
it('iterable', () => {
expect(Object.size([1, 2].values())).toBe(2);
});
it('null', () => {
expect(Object.size(null)).toBe(0);
expect(Object.size(undefined)).toBe(0);
});
});
describe('core/prelude/object/metrics/isEmpty', () => {
it('is empty', () => {
expect(Object.isEmpty([])).toBe(true);
expect(Object.isEmpty({})).toBe(true);
expect(Object.isEmpty(null)).toBe(true);
});
it('is not empty', () => {
expect(Object.isEmpty([1])).toBe(false);
expect(Object.isEmpty(new Set([1, 2]))).toBe(false);
expect(Object.isEmpty(1)).toBe(false);
});
});