normalize-string.spec.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. import { normalizeString } from './normalize-string';
  2. describe('normalizeString()', () => {
  3. it('lowercases the string', () => {
  4. expect(normalizeString('FOO')).toBe('foo');
  5. expect(normalizeString('Foo Bar')).toBe('foo bar');
  6. });
  7. it('replaces diacritical marks with plain equivalents', () => {
  8. expect(normalizeString('thé')).toBe('the');
  9. expect(normalizeString('curaçao')).toBe('curacao');
  10. expect(normalizeString('dấu hỏi')).toBe('dau hoi');
  11. expect(normalizeString('el niño')).toBe('el nino');
  12. expect(normalizeString('genkō yōshi')).toBe('genko yoshi');
  13. expect(normalizeString('việt nam')).toBe('viet nam');
  14. });
  15. it('replaces spaces with the spaceReplacer', () => {
  16. expect(normalizeString('old man', '_')).toBe('old_man');
  17. expect(normalizeString('old man', '_')).toBe('old_man');
  18. });
  19. it('strips non-alphanumeric characters', () => {
  20. expect(normalizeString('hi!!!')).toBe('hi');
  21. expect(normalizeString('who? me?')).toBe('who me');
  22. expect(normalizeString('!"£$%^&*()+[]{};:@#~?/,|\\><`¬')).toBe('');
  23. });
  24. it('allows a subset of non-alphanumeric characters to pass through', () => {
  25. expect(normalizeString('-_.')).toBe('-_.');
  26. });
  27. });