diff --git a/app/services/quick_actions/interpret_service.rb b/app/services/quick_actions/interpret_service.rb index 6345f78af90..f8dccfa465d 100644 --- a/app/services/quick_actions/interpret_service.rb +++ b/app/services/quick_actions/interpret_service.rb @@ -583,8 +583,9 @@ module QuickActions end desc 'Tag this commit.' - explanation do |(tag_name), _| - "Tags this commit to #{tag_name}." + explanation do |(tag_name, message)| + with_message = %{ with "#{message}"} if message.present? + "Tags this commit to #{tag_name}#{with_message}." end params 'v1.2.3 ' parse_params do |tag_name_and_message| diff --git a/spec/services/quick_actions/interpret_service_spec.rb b/spec/services/quick_actions/interpret_service_spec.rb index e83648d5111..be209c41c0f 100644 --- a/spec/services/quick_actions/interpret_service_spec.rb +++ b/spec/services/quick_actions/interpret_service_spec.rb @@ -1356,12 +1356,36 @@ describe QuickActions::InterpretService do end describe 'tag a commit' do - let(:content) { '/tag 1.2.3 some message' } + describe 'with a tag name' do + context 'without a message' do + let(:content) { '/tag v1.2.3' } - it 'includes the tag name' do - _, explanations = service.explain(content, commit) + it 'includes the tag name only' do + _, explanations = service.explain(content, commit) - expect(explanations).to eq(["Tags this commit to 1.2.3."]) + expect(explanations).to eq(["Tags this commit to v1.2.3."]) + end + end + + context 'with an empty message' do + let(:content) { '/tag v1.2.3 ' } + + it 'includes the tag name only' do + _, explanations = service.explain(content, commit) + + expect(explanations).to eq(["Tags this commit to v1.2.3."]) + end + end + end + + describe 'with a tag name and message' do + let(:content) { '/tag v1.2.3 Stable release' } + + it 'includes the tag name and message' do + _, explanations = service.explain(content, commit) + + expect(explanations).to eq(["Tags this commit to v1.2.3 with \"Stable release\"."]) + end end end end