2024-08-25 09:45:42 +02:00
|
|
|
const sizify = require("../../src/utils/sizify");
|
2024-08-25 09:44:53 +02:00
|
|
|
|
|
|
|
describe('"sizify" function', () => {
|
|
|
|
test('should return "0" for 0 bytes', () => {
|
2024-08-25 09:45:42 +02:00
|
|
|
expect(sizify(0)).toBe("0");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
test("should handle negative bytes", () => {
|
|
|
|
expect(sizify(-1024)).toBe("1K");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
test("should return correct size for small values", () => {
|
|
|
|
expect(sizify(1000)).toBe("1000");
|
|
|
|
expect(sizify(1024)).toBe("1K");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
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");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
test("should handle very large values", () => {
|
2024-08-25 09:44:53 +02:00
|
|
|
const largeValue = 2 ** 100; // A very large number
|
2024-08-25 09:45:42 +02:00
|
|
|
expect(sizify(largeValue)).toBe("1Q");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
test('should add "i" suffix when addI is true', () => {
|
2024-08-25 09:45:42 +02:00
|
|
|
expect(sizify(1024, true)).toBe("1Ki");
|
|
|
|
expect(sizify(1048576, true)).toBe("1Mi");
|
|
|
|
expect(sizify(1073741824, true)).toBe("1Gi");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
test('should not add "i" suffix when addI is false', () => {
|
2024-08-25 09:45:42 +02:00
|
|
|
expect(sizify(1024, false)).toBe("1K");
|
|
|
|
expect(sizify(1048576, false)).toBe("1M");
|
|
|
|
expect(sizify(1073741824, false)).toBe("1G");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
test("should handle decimal points correctly", () => {
|
|
|
|
expect(sizify(1500)).toBe("1.47K");
|
|
|
|
expect(sizify(1500000)).toBe("1.44M");
|
|
|
|
expect(sizify(1500000000)).toBe("1.4G");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
|
2024-08-25 09:45:42 +02:00
|
|
|
test("should handle edge cases", () => {
|
|
|
|
expect(sizify(1)).toBe("1");
|
|
|
|
expect(sizify(1023)).toBe("1023");
|
|
|
|
expect(sizify(1025)).toBe("1.01K");
|
2024-08-25 09:44:53 +02:00
|
|
|
});
|
|
|
|
});
|