From 00e0ccd7a426595d0cfd44fcc7a82f78b21bf945 Mon Sep 17 00:00:00 2001 From: Brandon Tripp Date: Wed, 20 Jan 2021 18:49:04 -0700 Subject: [PATCH] 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. --- backend/src/middleware/slugify/uniqueSlug.js | 2 +- backend/src/middleware/slugify/uniqueSlug.spec.js | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/src/middleware/slugify/uniqueSlug.js b/backend/src/middleware/slugify/uniqueSlug.js index e547db124..7cfb89c19 100644 --- a/backend/src/middleware/slugify/uniqueSlug.js +++ b/backend/src/middleware/slugify/uniqueSlug.js @@ -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 diff --git a/backend/src/middleware/slugify/uniqueSlug.spec.js b/backend/src/middleware/slugify/uniqueSlug.spec.js index 53c21d2ef..d002eae03 100644 --- a/backend/src/middleware/slugify/uniqueSlug.spec.js +++ b/backend/src/middleware/slugify/uniqueSlug.spec.js @@ -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') }) })