Merge pull request #4104 from Ocelot-Social-Community/bgt-german-umlaut-slug

[WIP] fix: 🍰 Issue #3504 umlaut encoding #3676
This commit is contained in:
Brandon Tripp 2021-01-21 15:39:52 -07:00 committed by GitHub
commit e33da64c10
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

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

View File

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