From a9f85d11a584a5a9ad99aaf6366f22fd6f6d0957 Mon Sep 17 00:00:00 2001
From: "Luke \"Jared\" Bennett" <lbennett@gitlab.com>
Date: Wed, 21 Dec 2016 11:03:52 +0000
Subject: [PATCH] Fix space issue and add test

---
 .../javascripts/gfm_auto_complete.js.es6      |  6 -----
 spec/features/issues/gfm_autocomplete_spec.rb | 27 +++++++++++--------
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/app/assets/javascripts/gfm_auto_complete.js.es6 b/app/assets/javascripts/gfm_auto_complete.js.es6
index 17d03c87bf5..5bfeed6f231 100644
--- a/app/assets/javascripts/gfm_auto_complete.js.es6
+++ b/app/assets/javascripts/gfm_auto_complete.js.es6
@@ -112,7 +112,6 @@
           return value.path != null ? this.Emoji.template : this.Loading.template;
         }.bind(this),
         insertTpl: ':${name}:',
-        startWithSpace: false,
         skipSpecialCharacterTest: true,
         data: this.defaultLoadingData,
         callbacks: {
@@ -129,7 +128,6 @@
         }.bind(this),
         insertTpl: '${atwho-at}${username}',
         searchKey: 'search',
-        startWithSpace: false,
         alwaysHighlightFirst: true,
         skipSpecialCharacterTest: true,
         data: this.defaultLoadingData,
@@ -172,7 +170,6 @@
         }.bind(this),
         data: this.defaultLoadingData,
         insertTpl: '${atwho-at}${id}',
-        startWithSpace: false,
         callbacks: {
           sorter: this.DefaultOptions.sorter,
           filter: this.DefaultOptions.filter,
@@ -200,7 +197,6 @@
         displayTpl: function(value) {
           return value.title != null ? this.Milestones.template : this.Loading.template;
         }.bind(this),
-        startWithSpace: false,
         data: this.defaultLoadingData,
         callbacks: {
           matcher: this.DefaultOptions.matcher,
@@ -225,7 +221,6 @@
         at: '!',
         alias: 'mergerequests',
         searchKey: 'search',
-        startWithSpace: false,
         displayTpl: function(value) {
           return value.title != null ? this.Issues.template : this.Loading.template;
         }.bind(this),
@@ -259,7 +254,6 @@
           return this.isLoading(value) ? this.Loading.template : this.Labels.template;
         }.bind(this),
         insertTpl: '${atwho-at}${title}',
-        startWithSpace: false,
         callbacks: {
           matcher: this.DefaultOptions.matcher,
           sorter: this.DefaultOptions.sorter,
diff --git a/spec/features/issues/gfm_autocomplete_spec.rb b/spec/features/issues/gfm_autocomplete_spec.rb
index da64827b377..df3a467cbb7 100644
--- a/spec/features/issues/gfm_autocomplete_spec.rb
+++ b/spec/features/issues/gfm_autocomplete_spec.rb
@@ -39,7 +39,6 @@ feature 'GFM autocomplete', feature: true, js: true do
       page.within '.timeline-content-form' do
         note.native.send_keys('')
         note.native.send_keys("~#{label.title[0]}")
-        sleep 1
         note.click
       end
 
@@ -53,7 +52,6 @@ feature 'GFM autocomplete', feature: true, js: true do
       page.within '.timeline-content-form' do
         note.native.send_keys('')
         note.native.send_keys("@#{user.username[0]}")
-        sleep 1
         note.click
       end
 
@@ -67,7 +65,6 @@ feature 'GFM autocomplete', feature: true, js: true do
       page.within '.timeline-content-form' do
         note.native.send_keys('')
         note.native.send_keys(":cartwheel")
-        sleep 1
         note.click
       end
 
@@ -76,6 +73,22 @@ feature 'GFM autocomplete', feature: true, js: true do
       expect_to_wrap(false, emoji_item, note, 'cartwheel_tone1')
     end
 
+    it 'doesn\'t open autocomplete after non-word character' do
+      page.within '.timeline-content-form' do
+        find('#note_note').native.send_keys("@#{user.username[0..2]}!")
+      end
+
+      expect(page).not_to have_selector('.atwho-view')
+    end
+
+    it 'doesn\'t open autocomplete if there is no space before' do
+      page.within '.timeline-content-form' do
+        find('#note_note').native.send_keys("hello:#{user.username[0..2]}")
+      end
+
+      expect(page).not_to have_selector('.atwho-view')
+    end
+
     def expect_to_wrap(should_wrap, item, note, value)
       expect(item).to have_content(value)
       expect(item).not_to have_content("\"#{value}\"")
@@ -89,12 +102,4 @@ feature 'GFM autocomplete', feature: true, js: true do
       end
     end
   end
-
-  it 'doesnt open autocomplete after non-word character' do
-    page.within '.timeline-content-form' do
-      find('#note_note').native.send_keys("@#{user.username[0..2]}!")
-    end
-
-    expect(page).not_to have_selector('.atwho-view')
-  end
 end
-- 
GitLab