Resolve "/assign me quick action doesn't work if there is extra white space"
This commit is contained in:
parent
ec0199b8fa
commit
8b8b2edb01
4 changed files with 46 additions and 43 deletions
|
@ -643,7 +643,7 @@ module QuickActions
|
|||
|
||||
if users.empty?
|
||||
users =
|
||||
if params == 'me'
|
||||
if params.strip == 'me'
|
||||
[current_user]
|
||||
else
|
||||
User.where(username: params.split(' ').map(&:strip))
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Resolve assign-me quick action doesn't work if there is extra white space
|
||||
merge_request: 22402
|
||||
author:
|
||||
type: fixed
|
|
@ -24,6 +24,7 @@ discussions, and descriptions:
|
|||
| `/reopen` | Reopen | ✓ | ✓ |
|
||||
| `/title <New title>` | Change title | ✓ | ✓ |
|
||||
| `/award :emoji:` | Toggle emoji award | ✓ | ✓ |
|
||||
| `/assign me` | Assign yourself | ✓ | ✓ |
|
||||
| `/assign @user` | Assign one user | ✓ | ✓ |
|
||||
| `/assign @user1 @user2` | Assign multiple users **[STARTER]** | ✓ | |
|
||||
| `/unassign` | Remove assignee(s) | ✓ | ✓ |
|
||||
|
|
|
@ -380,6 +380,14 @@ describe QuickActions::InterpretService do
|
|||
end
|
||||
end
|
||||
|
||||
shared_examples 'assign command' do
|
||||
it 'assigns to a single user' do
|
||||
_, updates = service.execute(content, issuable)
|
||||
|
||||
expect(updates).to eq(assignee_ids: [developer.id])
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'reopen command' do
|
||||
let(:content) { '/reopen' }
|
||||
let(:issuable) { issue }
|
||||
|
@ -474,67 +482,56 @@ describe QuickActions::InterpretService do
|
|||
let(:issuable) { issue }
|
||||
end
|
||||
|
||||
context 'assign command' do
|
||||
let(:content) { "/assign @#{developer.username}" }
|
||||
|
||||
context 'Issue' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, issue)
|
||||
|
||||
expect(updates[:assignee_ids]).to match_array([developer.id])
|
||||
end
|
||||
context 'assign command with one user' do
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { "/assign @#{developer.username}" }
|
||||
let(:issuable) { issue }
|
||||
end
|
||||
|
||||
context 'Merge Request' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, merge_request)
|
||||
|
||||
expect(updates).to eq(assignee_ids: [developer.id])
|
||||
end
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { "/assign @#{developer.username}" }
|
||||
let(:issuable) { merge_request }
|
||||
end
|
||||
end
|
||||
|
||||
# CE does not have multiple assignees
|
||||
context 'assign command with multiple assignees' do
|
||||
let(:content) { "/assign @#{developer.username} @#{developer2.username}" }
|
||||
|
||||
before do
|
||||
project.add_developer(developer2)
|
||||
end
|
||||
|
||||
context 'Issue' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, issue)
|
||||
|
||||
expect(updates[:assignee_ids]).to match_array([developer.id])
|
||||
end
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { "/assign @#{developer.username} @#{developer2.username}" }
|
||||
let(:issuable) { issue }
|
||||
end
|
||||
|
||||
context 'Merge Request' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, merge_request)
|
||||
|
||||
expect(updates).to eq(assignee_ids: [developer.id])
|
||||
end
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { "/assign @#{developer.username} @#{developer2.username}" }
|
||||
let(:issuable) { merge_request }
|
||||
end
|
||||
end
|
||||
|
||||
context 'assign command with me alias' do
|
||||
let(:content) { "/assign me" }
|
||||
|
||||
context 'Issue' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, issue)
|
||||
|
||||
expect(updates).to eq(assignee_ids: [developer.id])
|
||||
end
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { '/assign me' }
|
||||
let(:issuable) { issue }
|
||||
end
|
||||
|
||||
context 'Merge Request' do
|
||||
it 'fetches assignee and populates assignee_ids if content contains /assign' do
|
||||
_, updates = service.execute(content, merge_request)
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { '/assign me' }
|
||||
let(:issuable) { merge_request }
|
||||
end
|
||||
end
|
||||
|
||||
expect(updates).to eq(assignee_ids: [developer.id])
|
||||
end
|
||||
context 'assign command with me alias and whitespace' do
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { '/assign me ' }
|
||||
let(:issuable) { issue }
|
||||
end
|
||||
|
||||
it_behaves_like 'assign command' do
|
||||
let(:content) { '/assign me ' }
|
||||
let(:issuable) { merge_request }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue