Commit 6cae5ef3 authored by Filipa Lacerda's avatar Filipa Lacerda

Merge branch 'ee-32016-slash-command-strip-fix' into 'master'

Fix slash commands detection in comments

See merge request !1876
parents 0cdc5b34 e482f594
...@@ -26,7 +26,7 @@ const normalizeNewlines = function(str) { ...@@ -26,7 +26,7 @@ const normalizeNewlines = function(str) {
this.Notes = (function() { this.Notes = (function() {
const MAX_VISIBLE_COMMIT_LIST_COUNT = 3; const MAX_VISIBLE_COMMIT_LIST_COUNT = 3;
const REGEX_SLASH_COMMANDS = /\/\w+/g; const REGEX_SLASH_COMMANDS = /^\/\w+/gm;
Notes.interval = null; Notes.interval = null;
......
...@@ -376,13 +376,20 @@ import '~/notes'; ...@@ -376,13 +376,20 @@ import '~/notes';
this.notes = new Notes('', []); this.notes = new Notes('', []);
}); });
it('should return true when comment has slash commands', () => { it('should return true when comment begins with a slash command', () => {
const sampleComment = '/wip /milestone %1.0 /merge /unassign Merging this'; const sampleComment = '/wip \n/milestone %1.0 \n/merge \n/unassign Merging this';
const hasSlashCommands = this.notes.hasSlashCommands(sampleComment); const hasSlashCommands = this.notes.hasSlashCommands(sampleComment);
expect(hasSlashCommands).toBeTruthy(); 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', () => { it('should return false when comment does NOT have any slash commands', () => {
const sampleComment = 'Looking good, Awesome!'; const sampleComment = 'Looking good, Awesome!';
const hasSlashCommands = this.notes.hasSlashCommands(sampleComment); const hasSlashCommands = this.notes.hasSlashCommands(sampleComment);
...@@ -392,14 +399,20 @@ import '~/notes'; ...@@ -392,14 +399,20 @@ import '~/notes';
}); });
describe('stripSlashCommands', () => { 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(); 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); const stripedComment = this.notes.stripSlashCommands(sampleComment);
expect(REGEX_SLASH_COMMANDS.test(stripedComment)).toBeFalsy(); expect(stripedComment).toBe(sampleComment);
}); });
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment