Fix not normalized emoji paths
* There where path where +1 was stored as +1 not as thumbsup that was causing problems such as showing thumbsup icon 2 time. I fixed this to always normalize and store +1 as tumbsup
This commit is contained in:
parent
7968484dfa
commit
e21492b810
|
@ -74,6 +74,7 @@ v 8.10.0 (unreleased)
|
|||
- Add basic system information like memory and disk usage to the admin panel
|
||||
- Don't garbage collect commits that have related DB records like comments
|
||||
- More descriptive message for git hooks and file locks
|
||||
- Aliases of award emoji should be stored as original name. !5060 (dixpac)
|
||||
- Handle custom Git hook result in GitLab UI
|
||||
- Allow '?', or '&' for label names
|
||||
- Fix importer for GitHub Pull Requests when a branch was reused across Pull Requests
|
||||
|
|
|
@ -65,8 +65,7 @@ module Awardable
|
|||
|
||||
def create_award_emoji(name, current_user)
|
||||
return unless emoji_awardable?
|
||||
|
||||
award_emoji.create(name: name, user: current_user)
|
||||
award_emoji.create(name: normalize_name(name), user: current_user)
|
||||
end
|
||||
|
||||
def remove_award_emoji(name, current_user)
|
||||
|
@ -80,4 +79,10 @@ module Awardable
|
|||
create_award_emoji(emoji_name, current_user)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def normalize_name(name)
|
||||
Gitlab::AwardEmoji.normalize_emoji_name(name)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -229,8 +229,7 @@ class Note < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def award_emoji_name
|
||||
original_name = note.match(Banzai::Filter::EmojiFilter.emoji_pattern)[1]
|
||||
Gitlab::AwardEmoji.normalize_emoji_name(original_name)
|
||||
note.match(Banzai::Filter::EmojiFilter.emoji_pattern)[1]
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -8,7 +8,6 @@ module Notes
|
|||
if note.award_emoji?
|
||||
noteable = note.noteable
|
||||
todo_service.new_award_emoji(noteable, current_user)
|
||||
|
||||
return noteable.create_award_emoji(note.award_emoji_name, current_user)
|
||||
end
|
||||
|
||||
|
|
|
@ -56,9 +56,9 @@ module API
|
|||
|
||||
not_found!('Award Emoji') unless can_read_awardable?
|
||||
|
||||
award = awardable.award_emoji.new(name: params[:name], user: current_user)
|
||||
award = awardable.create_award_emoji(params[:name], current_user)
|
||||
|
||||
if award.save
|
||||
if award.persisted?
|
||||
present award, with: Entities::AwardEmoji
|
||||
else
|
||||
not_found!("Award Emoji #{award.errors.messages}")
|
||||
|
|
|
@ -135,6 +135,22 @@ describe API::API, api: true do
|
|||
|
||||
expect(response).to have_http_status(401)
|
||||
end
|
||||
|
||||
it "normalizes +1 as thumbsup award" do
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/award_emoji", user), name: '+1'
|
||||
|
||||
expect(issue.award_emoji.last.name).to eq("thumbsup")
|
||||
end
|
||||
|
||||
context 'when the emoji already has been awarded' do
|
||||
it 'returns a 404 status code' do
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/award_emoji", user), name: 'thumbsup'
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/award_emoji", user), name: 'thumbsup'
|
||||
|
||||
expect(response).to have_http_status(404)
|
||||
expect(json_response["message"]).to match("has already been taken")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -147,6 +163,22 @@ describe API::API, api: true do
|
|||
expect(response).to have_http_status(201)
|
||||
expect(json_response['user']['username']).to eq(user.username)
|
||||
end
|
||||
|
||||
it "normalizes +1 as thumbsup award" do
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/notes/#{note.id}/award_emoji", user), name: '+1'
|
||||
|
||||
expect(note.award_emoji.last.name).to eq("thumbsup")
|
||||
end
|
||||
|
||||
context 'when the emoji already has been awarded' do
|
||||
it 'returns a 404 status code' do
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/notes/#{note.id}/award_emoji", user), name: 'rocket'
|
||||
post api("/projects/#{project.id}/issues/#{issue.id}/notes/#{note.id}/award_emoji", user), name: 'rocket'
|
||||
|
||||
expect(response).to have_http_status(404)
|
||||
expect(json_response["message"]).to match("has already been taken")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE /projects/:id/awardable/:awardable_id/award_emoji/:award_id' do
|
||||
|
|
Loading…
Reference in New Issue