1
0
Fork 0
forked from svrjs/svrjs
This repository has been archived on 2024-11-10. You can view files and clone it, but cannot push or open issues or pull requests.
svrjs/tests/utils/sizify.test.js

57 lines
1.8 KiB
JavaScript

const sizify = require('../../src/utils/sizify');
describe('"sizify" function', () => {
test('should return "0" for 0 bytes', () => {
expect(sizify(0)).toBe('0');
});
test('should handle negative bytes', () => {
expect(sizify(-1024)).toBe('1K');
});
test('should return correct size for small values', () => {
expect(sizify(1000)).toBe('1000');
expect(sizify(1024)).toBe('1K');
});
test('should return correct size for larger values', () => {
expect(sizify(1048576)).toBe('1M');
expect(sizify(1073741824)).toBe('1G');
expect(sizify(1099511627776)).toBe('1T');
expect(sizify(1125899906842624)).toBe('1P');
expect(sizify(1152921504606846976)).toBe('1E');
expect(sizify(1180591620717411303424)).toBe('1Z');
expect(sizify(1208925819614629174706176)).toBe('1Y');
expect(sizify(1237940039285380274899124224)).toBe('1R');
expect(sizify(1267650600228229401496703205376)).toBe('1Q');
});
test('should handle very large values', () => {
const largeValue = 2 ** 100; // A very large number
expect(sizify(largeValue)).toBe('1Q');
});
test('should add "i" suffix when addI is true', () => {
expect(sizify(1024, true)).toBe('1Ki');
expect(sizify(1048576, true)).toBe('1Mi');
expect(sizify(1073741824, true)).toBe('1Gi');
});
test('should not add "i" suffix when addI is false', () => {
expect(sizify(1024, false)).toBe('1K');
expect(sizify(1048576, false)).toBe('1M');
expect(sizify(1073741824, false)).toBe('1G');
});
test('should handle decimal points correctly', () => {
expect(sizify(1500)).toBe('1.47K');
expect(sizify(1500000)).toBe('1.44M');
expect(sizify(1500000000)).toBe('1.4G');
});
test('should handle edge cases', () => {
expect(sizify(1)).toBe('1');
expect(sizify(1023)).toBe('1023');
expect(sizify(1025)).toBe('1.01K');
});
});