import { describe, expect, test } from 'bun:test' import { padAligned } from '../markdown' describe('padAligned', () => { test('left-aligns: pads with spaces on right', () => { const result = padAligned('hello', 5, 10, 'left') expect(result).toBe('hello ') expect(result.length).toBe(10) }) test('right-aligns: pads with spaces on left', () => { const result = padAligned('hello', 5, 10, 'right') expect(result).toBe(' hello') expect(result.length).toBe(10) }) test('center-aligns: pads with spaces on both sides', () => { const result = padAligned('hi', 2, 6, 'center') expect(result).toBe(' hi ') expect(result.length).toBe(6) }) test('no padding when displayWidth equals targetWidth', () => { const result = padAligned('hello', 5, 5, 'left') expect(result).toBe('hello') }) test('handles content wider than targetWidth', () => { const result = padAligned('hello world', 11, 5, 'left') expect(result).toBe('hello world') }) test('null/undefined align defaults to left', () => { expect(padAligned('hi', 2, 5, null)).toBe('hi ') expect(padAligned('hi', 2, 5, undefined)).toBe('hi ') }) test('handles empty string content', () => { const result = padAligned('', 0, 5, 'center') expect(result).toBe(' ') }) test('handles zero displayWidth', () => { const result = padAligned('', 0, 3, 'left') expect(result).toBe(' ') }) test('handles zero targetWidth', () => { const result = padAligned('hello', 5, 0, 'left') expect(result).toBe('hello') }) test('center alignment with odd padding distribution', () => { const result = padAligned('hi', 2, 7, 'center') expect(result).toBe(' hi ') expect(result.length).toBe(7) }) })