fix to allow integer label refernces
This commit is contained in:
parent
2e13dafbe8
commit
d2d7bfa760
4 changed files with 38 additions and 10 deletions
|
@ -338,7 +338,8 @@ class GfmAutoComplete {
|
|||
let resultantValue = value;
|
||||
if (value && !this.setting.skipSpecialCharacterTest) {
|
||||
const withoutAt = value.substring(1);
|
||||
if (withoutAt && /[^\w\d]/.test(withoutAt)) {
|
||||
const regex = value.charAt() === '~' ? /\W|^\d+$/ : /\W/;
|
||||
if (withoutAt && regex.test(withoutAt)) {
|
||||
resultantValue = `${value.charAt()}"${withoutAt}"`;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix errors when selecting numeric-only labels in the labels autocomplete selector
|
||||
merge_request: 14607
|
||||
author: haseebeqx
|
||||
type: fixed
|
|
@ -218,18 +218,18 @@ feature 'GFM autocomplete', :js do
|
|||
user_item = find('.atwho-view li', text: user.username)
|
||||
expect(user_item).to have_content(user.username)
|
||||
end
|
||||
end
|
||||
|
||||
def expect_to_wrap(should_wrap, item, note, value)
|
||||
expect(item).to have_content(value)
|
||||
expect(item).not_to have_content("\"#{value}\"")
|
||||
def expect_to_wrap(should_wrap, item, note, value)
|
||||
expect(item).to have_content(value)
|
||||
expect(item).not_to have_content("\"#{value}\"")
|
||||
|
||||
item.click
|
||||
item.click
|
||||
|
||||
if should_wrap
|
||||
expect(note.value).to include("\"#{value}\"")
|
||||
else
|
||||
expect(note.value).not_to include("\"#{value}\"")
|
||||
end
|
||||
if should_wrap
|
||||
expect(note.value).to include("\"#{value}\"")
|
||||
else
|
||||
expect(note.value).not_to include("\"#{value}\"")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -67,6 +67,28 @@ describe('GfmAutoComplete', function () {
|
|||
});
|
||||
});
|
||||
|
||||
describe('DefaultOptions.beforeInsert', () => {
|
||||
const beforeInsert = (context, value) => (
|
||||
gfmAutoCompleteCallbacks.beforeInsert.call(context, value)
|
||||
);
|
||||
|
||||
const atwhoInstance = { setting: { skipSpecialCharacterTest: false } };
|
||||
|
||||
it('should not quote if value only contains alphanumeric charecters', () => {
|
||||
expect(beforeInsert(atwhoInstance, '@user1')).toBe('@user1');
|
||||
expect(beforeInsert(atwhoInstance, '~label1')).toBe('~label1');
|
||||
});
|
||||
|
||||
it('should quote if value contains any non-alphanumeric characters', () => {
|
||||
expect(beforeInsert(atwhoInstance, '~label-20')).toBe('~"label-20"');
|
||||
expect(beforeInsert(atwhoInstance, '~label 20')).toBe('~"label 20"');
|
||||
});
|
||||
|
||||
it('should quote integer labels', () => {
|
||||
expect(beforeInsert(atwhoInstance, '~1234')).toBe('~"1234"');
|
||||
});
|
||||
});
|
||||
|
||||
describe('DefaultOptions.matcher', function () {
|
||||
const defaultMatcher = (context, flag, subtext) => (
|
||||
gfmAutoCompleteCallbacks.matcher.call(context, flag, subtext)
|
||||
|
|
Loading…
Reference in a new issue