From e22e15bc77b2b2b734ccb6b6378f4f93eff168e6 Mon Sep 17 00:00:00 2001 From: Brandon Tripp Date: Thu, 17 Dec 2020 20:03:21 -0700 Subject: [PATCH] Changed the uniqueSlug setting to include the deutsch locale to properly handle umlauts and tests. --- backend/src/middleware/slugify/uniqueSlug.js | 1 + backend/src/middleware/slugify/uniqueSlug.spec.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/backend/src/middleware/slugify/uniqueSlug.js b/backend/src/middleware/slugify/uniqueSlug.js index ca37cd562..abab3851a 100644 --- a/backend/src/middleware/slugify/uniqueSlug.js +++ b/backend/src/middleware/slugify/uniqueSlug.js @@ -2,6 +2,7 @@ import slugify from 'slug' export default async function uniqueSlug(string, isUnique) { const slug = slugify(string || 'anonymous', { lower: true, + locale: 'de', }) 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 ff14a56ef..684f70015 100644 --- a/backend/src/middleware/slugify/uniqueSlug.spec.js +++ b/backend/src/middleware/slugify/uniqueSlug.spec.js @@ -19,3 +19,17 @@ describe('uniqueSlug', () => { expect(uniqueSlug(string, isUnique)).resolves.toEqual('anonymous') }) }) + +describe('Slug is transliterated correctly', () => { + it('Converts umlaut to two letter equivalent', () => { + const umlaut = 'ä'; + const isUnique = jest.fn().mockResolvedValue(true) + expect(uniqueSlug(string, isUnique)).resolves.toEqual('ae'); + }) + + it('Removes Spanish enya ', () => { + const enya = 'ñ'; + const isUnique = jest.fn().mockResolvedValue(true) + expect(uniqueSlug(string, isUnique)).resolves.toEqual('n'); + }) +})