From 66cd2a98ac2420a1036c577119e449d299b8f72d Mon Sep 17 00:00:00 2001 From: Dean Whillier Date: Wed, 13 Feb 2019 18:05:52 -0500 Subject: [PATCH] [MM 13934] Prevent blank mention keys from crashing the app (#2570) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * don’t match blank word boundaries * test for blank mention keys * Check for blank mention before looking for match * account for multiple spaces as a blank mention --- app/components/markdown/transform.js | 6 +++++- app/components/markdown/transform.test.js | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/components/markdown/transform.js b/app/components/markdown/transform.js index 59be2aa70..3879b0720 100644 --- a/app/components/markdown/transform.js +++ b/app/components/markdown/transform.js @@ -310,11 +310,15 @@ export function getFirstMention(str, mentionKeys) { let firstMentionIndex = -1; for (const mention of mentionKeys) { + if (mention.key.trim() === '') { + continue; + } + const flags = mention.caseSensitive ? '' : 'i'; const pattern = new RegExp(`\\b${escapeRegex(mention.key)}_*\\b`, flags); const match = pattern.exec(str); - if (!match) { + if (!match || match[0] === '') { continue; } diff --git a/app/components/markdown/transform.test.js b/app/components/markdown/transform.test.js index 5c3d6f2c0..42f1f0cc5 100644 --- a/app/components/markdown/transform.test.js +++ b/app/components/markdown/transform.test.js @@ -2758,6 +2758,11 @@ describe('Components.Markdown.transform', () => { input: 'apple banana orange', mentionKeys: [{key: '*\\3_.'}], expected: {index: -1, mention: null}, + }, { + name: 'no blank mention keys', + input: 'apple banana orange', + mentionKeys: [{key: ''}], + expected: {index: -1, mention: null}, }]; for (const test of tests) {