import { createSearch, decodeHtmlEntities, toTitleCase } from './string'; describe('createSearch', () => { it('matches search terms correctly', () => { const search = createSearch('test', (obj: { value: string }) => obj.value); const obj1 = { value: 'This is a test string.' }; const obj2 = { value: 'This is a different string.' }; const obj3 = { value: 'This is a test string.' }; const objects = [obj1, obj2, obj3]; expect(objects.filter(search)).toEqual([obj1, obj3]); }); }); describe('toTitleCase', () => { it('converts strings to title case correctly', () => { expect(toTitleCase('hello world')).toBe('Hello World'); expect(toTitleCase('HELLO WORLD')).toBe('Hello World'); expect(toTitleCase('HeLLo wORLd')).toBe('Hello World'); expect(toTitleCase('a tale of two cities')).toBe('A Tale of Two Cities'); expect(toTitleCase('war and peace')).toBe('War and Peace'); }); }); describe('decodeHtmlEntities', () => { it('decodes HTML entities and removes unnecessary HTML tags correctly', () => { expect(decodeHtmlEntities('
')).toBe('\n'); expect(decodeHtmlEntities('

Hello World

')).toBe('Hello World'); expect(decodeHtmlEntities('&')).toBe('&'); expect(decodeHtmlEntities('&')).toBe('&'); expect(decodeHtmlEntities('&')).toBe('&'); }); });