import { describe, expect, it } from 'vitest'; import { normalizeForSearch, searchQuerySchema } from './search'; describe('normalizeForSearch (issue #49)', () => { it('strips diacritics and lowercases so accents do not matter', () => { expect(normalizeForSearch('Bäume')).toBe('baume'); expect(normalizeForSearch('Café')).toBe('cafe'); expect(normalizeForSearch('Zürich Über')).toBe('zurich uber'); }); it('leaves ascii text lowercased and otherwise intact', () => { expect(normalizeForSearch('Zebra Alpha')).toBe('zebra alpha'); }); }); describe('searchQuerySchema (issue #49)', () => { it('requires a non-empty query and parses optional scope', () => { expect(searchQuerySchema.safeParse({ q: '' }).success).toBe(false); const ok = searchQuerySchema.parse({ q: ' hi ', pondId: 'p1', labels: ['a', 'b'] }); expect(ok).toEqual({ q: 'hi', pondId: 'p1', labels: ['a', 'b'] }); }); });