summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-05-11 09:05:08 +0000
committerTimothy Andrew <mail@timothyandrew.net>2017-05-18 14:02:43 +0000
commit8c06fcc2241fd320ae7da9aaa88cff326c9d88fc (patch)
tree385ddbaffc9f6a6694ec49b446eeb53fce7be449
parent69e4b27c31c90d0835acf1bbd1c1497bb51abaea (diff)
downloadgitlab-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.js2
-rw-r--r--spec/javascripts/notes_spec.js25
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);
});
});