Files
formulation/src/lib/format.test.ts
T
nicholasandnicholas 2a1e16ed30
Build & Deploy Formulation / Build & Push Image (push) Failing after 15s
Build & Deploy Formulation / deploy (push) Skipped
add core features (#14)
Reviewed-on: #14
Co-authored-by: Nicholas Ward <nicholaspward@outlook.com>
2026-08-18 18:22:34 -05:00

31 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { number, roundForDisplay, titleCase } from "./format";
describe("display number formatting", () => {
it("uses two decimal places for ordinary values", () => {
expect(number(12.3456)).toBe("12.35");
expect(roundForDisplay(12.3456)).toBe(12.35);
});
it("uses three decimal places for small nonzero values", () => {
expect(number(0.0964)).toBe("0.096");
expect(roundForDisplay(0.0964)).toBe(0.096);
});
it("does not add insignificant trailing zeroes", () => {
expect(number(2)).toBe("2");
expect(number(0)).toBe("0");
});
});
describe("title case formatting", () => {
it("capitalizes the first letter of each word without lowercasing source data", () => {
expect(titleCase("baking powder, double-acting")).toBe("Baking Powder, Double-acting");
expect(titleCase("USDA choice beef")).toBe("USDA Choice Beef");
});
it("preserves punctuation and whitespace-separated numeric tokens", () => {
expect(titleCase("2% milk")).toBe("2% Milk");
});
});