diacritic-search-ts
Version:
A Node.js/TypeScript package for diacritic-insensitive search using regex
36 lines (35 loc) • 1.92 kB
JavaScript
// src/__tests__/maps.test.ts
import { slovakDiacriticMap, czechDiacriticMap, slovakCzechDiacriticMap } from '../maps.js'; // Použite .js rozšírenie pre ESM
describe('Diacritic Maps', () => {
it('slovakDiacriticMap should contain expected Slovak diacritics', () => {
expect(slovakDiacriticMap.a).toBe('[a,á,ä]');
expect(slovakDiacriticMap.l).toBe('[l,ľ,ĺ]');
expect(slovakDiacriticMap.r).toBe('[r,ŕ]');
expect(slovakDiacriticMap.z).toBe('[z,ž]');
// Check for some non-existent entries
expect(slovakDiacriticMap.q).toBeUndefined();
});
it('czechDiacriticMap should contain expected Czech diacritics', () => {
expect(czechDiacriticMap.a).toBe('[a,á]');
expect(czechDiacriticMap.e).toBe('[e,é,ě]');
expect(czechDiacriticMap.r).toBe('[r,ř]');
expect(czechDiacriticMap.z).toBe('[z,ž]');
// Ensure Slovak specific are not in Czech map if they shouldn't be
expect(czechDiacriticMap.ľ).toBeUndefined(); // Assuming 'ľ' is not a key
});
it('slovakCzechDiacriticMap should combine both and handle overlaps', () => {
// Should have Slovak 'ä'
expect(slovakCzechDiacriticMap.a).toBe('[a,á,ä]');
// Should have Czech 'ě'
expect(slovakCzechDiacriticMap.e).toBe('[e,é,ě]');
// Should have Slovak 'ľ' and 'ĺ'
expect(slovakCzechDiacriticMap.l).toBe('[l,ľ,ĺ]');
// Should have Slovak 'ŕ' and Czech 'ř'
expect(slovakCzechDiacriticMap.r).toBe('[r,ŕ,ř]');
});
it('all maps should have string values for regex patterns', () => {
Object.values(slovakDiacriticMap).forEach(val => expect(typeof val).toBe('string'));
Object.values(czechDiacriticMap).forEach(val => expect(typeof val).toBe('string'));
Object.values(slovakCzechDiacriticMap).forEach(val => expect(typeof val).toBe('string'));
});
});