colors.test.ts
1 import { describe, expect, test } from "bun:test"; 2 import { hexToPdf } from "~/utils/colors"; 3 4 describe("colors", () => { 5 describe("hexToPdf", () => { 6 test("should convert white hex to PDF RGB", () => { 7 const result = hexToPdf(0xFFFFFF); 8 expect(result.red).toBeCloseTo(1, 5); 9 expect(result.green).toBeCloseTo(1, 5); 10 expect(result.blue).toBeCloseTo(1, 5); 11 }); 12 13 test("should convert black hex to PDF RGB", () => { 14 const result = hexToPdf(0x000000); 15 expect(result.red).toBeCloseTo(0, 5); 16 expect(result.green).toBeCloseTo(0, 5); 17 expect(result.blue).toBeCloseTo(0, 5); 18 }); 19 20 test("should convert red hex to PDF RGB", () => { 21 const result = hexToPdf(0xFF0000); 22 expect(result.red).toBeCloseTo(1, 5); 23 expect(result.green).toBeCloseTo(0, 5); 24 expect(result.blue).toBeCloseTo(0, 5); 25 }); 26 27 test("should convert green hex to PDF RGB", () => { 28 const result = hexToPdf(0x00FF00); 29 expect(result.red).toBeCloseTo(0, 5); 30 expect(result.green).toBeCloseTo(1, 5); 31 expect(result.blue).toBeCloseTo(0, 5); 32 }); 33 34 test("should convert blue hex to PDF RGB", () => { 35 const result = hexToPdf(0x0000FF); 36 expect(result.red).toBeCloseTo(0, 5); 37 expect(result.green).toBeCloseTo(0, 5); 38 expect(result.blue).toBeCloseTo(1, 5); 39 }); 40 41 test("should convert custom color hex to PDF RGB", () => { 42 const result = hexToPdf(0x7F7F7F); // 50% gray 43 expect(result.red).toBeCloseTo(0.498, 2); 44 expect(result.green).toBeCloseTo(0.498, 2); 45 expect(result.blue).toBeCloseTo(0.498, 2); 46 }); 47 48 test("should convert another custom color", () => { 49 const result = hexToPdf(0xABCDEF); 50 expect(result.red).toBeCloseTo(171 / 255, 3); 51 expect(result.green).toBeCloseTo(205 / 255, 3); 52 expect(result.blue).toBeCloseTo(239 / 255, 3); 53 }); 54 }); 55 });