openclaw/src/cli/parse-bytes.test.ts

26 lines
786 B
TypeScript

import { describe, expect, it } from "vitest";
import { parseByteSize } from "./parse-bytes.js";
describe("parseByteSize", () => {
it("parses bytes with units", () => {
expect(parseByteSize("10kb")).toBe(10 * 1024);
expect(parseByteSize("1mb")).toBe(1024 * 1024);
expect(parseByteSize("2gb")).toBe(2 * 1024 * 1024 * 1024);
});
it("parses shorthand units", () => {
expect(parseByteSize("5k")).toBe(5 * 1024);
expect(parseByteSize("1m")).toBe(1024 * 1024);
});
it("uses default unit when omitted", () => {
expect(parseByteSize("123")).toBe(123);
});
it("rejects invalid values", () => {
expect(() => parseByteSize("")).toThrow();
expect(() => parseByteSize("nope")).toThrow();
expect(() => parseByteSize("-5kb")).toThrow();
});
});