feat: add telegram-style resource stream
This commit is contained in:
34
src/components/messageStream/utils/formatBytes.test.ts
Normal file
34
src/components/messageStream/utils/formatBytes.test.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { formatBytes } from "./formatBytes";
|
||||
|
||||
describe("formatBytes", () => {
|
||||
it("returns bytes under 1 KB unchanged", () => {
|
||||
expect(formatBytes(0)).toBe("0 B");
|
||||
expect(formatBytes(512)).toBe("512 B");
|
||||
expect(formatBytes(1023)).toBe("1023 B");
|
||||
});
|
||||
|
||||
it("formats KB with one decimal when small", () => {
|
||||
expect(formatBytes(1024)).toBe("1 KB");
|
||||
expect(formatBytes(1536)).toBe("1.5 KB");
|
||||
});
|
||||
|
||||
it("formats MB with one decimal", () => {
|
||||
expect(formatBytes(3_549_239)).toBe("3.4 MB");
|
||||
expect(formatBytes(4_800_000)).toBe("4.6 MB");
|
||||
});
|
||||
|
||||
it("drops decimals once value >= 100", () => {
|
||||
expect(formatBytes(150 * 1024 * 1024)).toBe("150 MB");
|
||||
});
|
||||
|
||||
it("handles GB and TB", () => {
|
||||
expect(formatBytes(2 * 1024 ** 3)).toBe("2 GB");
|
||||
expect(formatBytes(3 * 1024 ** 4)).toBe("3 TB");
|
||||
});
|
||||
|
||||
it("guards against invalid input", () => {
|
||||
expect(formatBytes(-1)).toBe("0 B");
|
||||
expect(formatBytes(Number.NaN)).toBe("0 B");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user