The uniqueSlug charmap option was set to the multicharmap in order to keep the modified german umlaut settings to overide the internal settings for other diacritics. The test cases strings were extended to improve coverage of diacritic removal.

This commit is contained in:
Brandon Tripp 2021-01-20 18:49:04 -07:00
parent c8ac972e20
commit 00e0ccd7a4
2 changed files with 6 additions and 6 deletions

View File

@ -2,7 +2,7 @@ import slugify from 'slug'
export default async function uniqueSlug(string, isUnique) {
const slug = slugify(string || 'anonymous', {
lower: true,
charmap: { Ä: 'AE', ä: 'ae', Ö: 'OE', ö: 'oe', Ü: 'UE', ü: 'ue', ñ: 'n' },
multicharmap: { Ä: 'AE', ä: 'ae', Ö: 'OE', ö: 'oe', Ü: 'UE', ü: 'ue', ß: 'ss' },
})
if (await isUnique(slug)) return slug

View File

@ -20,14 +20,14 @@ describe('uniqueSlug', () => {
})
it('Converts umlaut to a two letter equivalent', async () => {
const umlaut = 'ä'
const umlaut = 'ÄÖÜäöüß'
const isUnique = jest.fn().mockResolvedValue(true)
await expect(uniqueSlug(umlaut, isUnique)).resolves.toEqual('ae')
await expect(uniqueSlug(umlaut, isUnique)).resolves.toEqual('aeoeueaeoeuess')
})
it('Removes Spanish enya ', async () => {
const enya = '
it('Removes Spanish enya and diacritics', async () => {
const diacritics = 'áàéèíìóòúùñçÁÀÉÈÍÌÓÒÚÙÑÇ'
const isUnique = jest.fn().mockResolvedValue(true)
await expect(uniqueSlug(enya, isUnique)).resolves.toEqual('n')
await expect(uniqueSlug(diacritics, isUnique)).resolves.toEqual('aaeeiioouuncaaeeiioouunc')
})
})