@logtape/pretty
Version:
Beautiful text formatter for LogTape—perfect for local development
68 lines (56 loc) • 2.01 kB
text/typescript
import { suite } from "@alinea/suite";
import { assert } from "@std/assert/assert";
import { assertEquals } from "@std/assert/equals";
import {
getOptimalWordWrapWidth,
getTerminalWidth,
isTerminal,
} from "./terminal.ts";
const test = suite(import.meta);
test("isTerminal() returns boolean", () => {
const result = isTerminal();
assert(typeof result === "boolean", "isTerminal should return a boolean");
});
test("getTerminalWidth() returns number or null", () => {
const result = getTerminalWidth();
assert(
result === null || (typeof result === "number" && result > 0),
"getTerminalWidth should return null or a positive number",
);
});
test("getOptimalWordWrapWidth() returns default when not in terminal", () => {
// We can't easily mock the function, so we'll test with a large default
// to distinguish from common terminal widths
const result = getOptimalWordWrapWidth(123);
assert(
typeof result === "number" && result > 0,
"getOptimalWordWrapWidth should return a positive number",
);
// If we're not in a terminal (which is likely in test environment),
// we should get the default value
if (!isTerminal()) {
assertEquals(result, 123, "Should return default when not in terminal");
}
});
test("getOptimalWordWrapWidth() uses reasonable default", () => {
const result = getOptimalWordWrapWidth();
assert(
typeof result === "number" && result > 0,
"Should return a positive number",
);
assert(
result >= 20 && result <= 1000,
"Should return a reasonable terminal width (20-1000 columns)",
);
});
test("getOptimalWordWrapWidth() respects custom default", () => {
const customDefault = 150;
const result = getOptimalWordWrapWidth(customDefault);
// If not in terminal, should return custom default
if (!isTerminal()) {
assertEquals(result, customDefault);
} else {
// If in terminal, should return detected width (which may differ)
assert(typeof result === "number" && result > 0);
}
});