diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-05-11 09:05:08 +0000 |
---|---|---|
committer | Timothy Andrew <mail@timothyandrew.net> | 2017-05-18 14:02:43 +0000 |
commit | 8c06fcc2241fd320ae7da9aaa88cff326c9d88fc (patch) | |
tree | 385ddbaffc9f6a6694ec49b446eeb53fce7be449 | |
parent | 69e4b27c31c90d0835acf1bbd1c1497bb51abaea (diff) | |
download | gitlab-ce-8c06fcc2241fd320ae7da9aaa88cff326c9d88fc.tar.gz |
Merge branch '32016-slash-command-strip-fix' into 'master'
Fix slash commands detection in comments
Closes #32016
See merge request !11265
-rw-r--r-- | app/assets/javascripts/notes.js | 2 | ||||
-rw-r--r-- | spec/javascripts/notes_spec.js | 25 |
2 files changed, 20 insertions, 7 deletions
diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index d2e602a0763..c255f2d156a 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -26,7 +26,7 @@ const normalizeNewlines = function(str) { this.Notes = (function() { const MAX_VISIBLE_COMMIT_LIST_COUNT = 3; - const REGEX_SLASH_COMMANDS = /\/\w+/g; + const REGEX_SLASH_COMMANDS = /^\/\w+/gm; Notes.interval = null; diff --git a/spec/javascripts/notes_spec.js b/spec/javascripts/notes_spec.js index cfd599f793e..be4605a5b89 100644 --- a/spec/javascripts/notes_spec.js +++ b/spec/javascripts/notes_spec.js @@ -376,13 +376,20 @@ import '~/notes'; this.notes = new Notes('', []); }); - it('should return true when comment has slash commands', () => { - const sampleComment = '/wip /milestone %1.0 /merge /unassign Merging this'; + it('should return true when comment begins with a slash command', () => { + const sampleComment = '/wip \n/milestone %1.0 \n/merge \n/unassign Merging this'; const hasSlashCommands = this.notes.hasSlashCommands(sampleComment); expect(hasSlashCommands).toBeTruthy(); }); + it('should return false when comment does NOT begin with a slash command', () => { + const sampleComment = 'Hey, /unassign Merging this'; + const hasSlashCommands = this.notes.hasSlashCommands(sampleComment); + + expect(hasSlashCommands).toBeFalsy(); + }); + it('should return false when comment does NOT have any slash commands', () => { const sampleComment = 'Looking good, Awesome!'; const hasSlashCommands = this.notes.hasSlashCommands(sampleComment); @@ -392,14 +399,20 @@ import '~/notes'; }); describe('stripSlashCommands', () => { - const REGEX_SLASH_COMMANDS = /\/\w+/g; + it('should strip slash commands from the comment which begins with a slash command', () => { + this.notes = new Notes(); + const sampleComment = '/wip \n/milestone %1.0 \n/merge \n/unassign Merging this'; + const stripedComment = this.notes.stripSlashCommands(sampleComment); + + expect(stripedComment).not.toBe(sampleComment); + }); - it('should strip slash commands from the comment', () => { + it('should NOT strip string that has slashes within', () => { this.notes = new Notes(); - const sampleComment = '/wip /milestone %1.0 /merge /unassign Merging this'; + const sampleComment = 'http://127.0.0.1:3000/root/gitlab-shell/issues/1'; const stripedComment = this.notes.stripSlashCommands(sampleComment); - expect(REGEX_SLASH_COMMANDS.test(stripedComment)).toBeFalsy(); + expect(stripedComment).toBe(sampleComment); }); }); |