import { describe, expect, it } from 'vitest'; import { endingHours, houseSlug, resolveHouse } from './auction-house'; describe('auction house slugs', () => { it('slugifies house names deterministically and drops apostrophes', () => { expect(houseSlug("Sotheby's")).toBe('sothebys'); expect(houseSlug('Hake’s Auctions')).toBe('hakes-auctions'); expect(houseSlug('Yahoo! Auctions Japan (ヤフオク!)')).toMatch(/^yahoo-auctions-japan/); expect(houseSlug(' ')).toBe('house'); }); it('resolves a slug back to the registry entry', () => { const houses = [{ house: "Sotheby's", lots: 1 }, { house: 'Bonhams', lots: 2 }]; expect(resolveHouse('sothebys', houses)?.house).toBe("Sotheby's"); expect(resolveHouse('BONHAMS', houses)?.lots).toBe(2); expect(resolveHouse('christies', houses)).toBeNull(); }); it('maps ending-window ids to hours', () => { expect(endingHours('24h')).toBe(24); expect(endingHours('7d')).toBe(168); expect(endingHours('nope')).toBeNull(); }); });