FIX: broken select badge as user title (#5474)

* FIX: broken select badge as user title

* selected id wasn’t pass to underlying component
* <none> was rendered as an html tag <none></none>
* overriding a badge name wouldn’t work as it was using badge.name and not badge.display_name
* adds a spec to ensure this behavior is correct
This commit is contained in:
Joffrey JAFFEUX
2018-01-05 16:58:15 +01:00
committed by GitHub
parent ed4b845930
commit 642645ba9a
34 changed files with 65 additions and 35 deletions

View File

@@ -1640,14 +1640,14 @@ describe UsersController do
user_badge_id: user_badge.id, username: user.username
}, format: :json
expect(user.reload.title).not_to eq(badge.name)
expect(user.reload.title).not_to eq(badge.display_name)
badge.update_attributes allow_title: true
put :badge_title, params: {
user_badge_id: user_badge.id, username: user.username
}, format: :json
expect(user.reload.title).to eq(badge.name)
expect(user.reload.title).to eq(badge.display_name)
expect(user.user_profile.badge_granted_title).to eq(true)
user.title = "testing"
@@ -1658,6 +1658,30 @@ describe UsersController do
end
end
describe "badge_title with overrided name" do
let(:user) { Fabricate(:user) }
let(:badge) { Fabricate(:badge, name: 'Demogorgon', allow_title: true) }
let(:user_badge) { BadgeGranter.grant(badge, user) }
before do
TranslationOverride.upsert!('en', 'badges.demogorgon.name', 'Boss')
end
after do
TranslationOverride.revert!('en', ['badges.demogorgon.name'])
end
it "uses the badge display name as user title" do
log_in_user user
put :badge_title, params: {
user_badge_id: user_badge.id, username: user.username
}, format: :json
expect(user.reload.title).to eq(badge.display_name)
end
end
describe 'send_activation_email' do
context 'for an existing user' do
let(:user) { Fabricate(:user, active: false) }