diff options
author | Cindy Pallares 🦉 <cindy@gitlab.com> | 2018-10-19 21:01:39 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-10-19 21:01:39 +0000 |
commit | 8b8b2edb018bb88e64a1d024a3f9e45c29036600 (patch) | |
tree | d64de364a1604e2de5cb8761a58208c12e111c27 /spec/services/quick_actions | |
parent | ec0199b8fa0abe203905e0abb3a5d5c4c0748688 (diff) | |
download | gitlab-ce-8b8b2edb018bb88e64a1d024a3f9e45c29036600.tar.gz |
Resolve "/assign me quick action doesn't work if there is extra white space"
Diffstat (limited to 'spec/services/quick_actions')
-rw-r--r-- | spec/services/quick_actions/interpret_service_spec.rb | 79 |
1 files changed, 38 insertions, 41 deletions
diff --git a/spec/services/quick_actions/interpret_service_spec.rb b/spec/services/quick_actions/interpret_service_spec.rb index ac0ca1f33a5..41a170e4f25 100644 --- a/spec/services/quick_actions/interpret_service_spec.rb +++ b/spec/services/quick_actions/interpret_service_spec.rb @@ -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) + it_behaves_like 'assign command' do + let(:content) { '/assign me' } + let(:issuable) { issue } + end - expect(updates).to eq(assignee_ids: [developer.id]) - end + it_behaves_like 'assign command' do + let(:content) { '/assign me' } + let(:issuable) { merge_request } end + end - context 'Merge Request' do - it 'fetches assignee and populates assignee_ids if content contains /assign' do - _, updates = service.execute(content, merge_request) + context 'assign command with me alias and whitespace' do + it_behaves_like 'assign command' do + let(:content) { '/assign me ' } + let(:issuable) { issue } + end - expect(updates).to eq(assignee_ids: [developer.id]) - end + it_behaves_like 'assign command' do + let(:content) { '/assign me ' } + let(:issuable) { merge_request } end end |