Use `class_names` in admin/account_moderation_notes helper (#30719)
parent
35d52d7914
commit
d7b7617321
|
@ -4,27 +4,42 @@ module Admin::AccountModerationNotesHelper
|
||||||
def admin_account_link_to(account, path: nil)
|
def admin_account_link_to(account, path: nil)
|
||||||
return if account.nil?
|
return if account.nil?
|
||||||
|
|
||||||
link_to path || admin_account_path(account.id), class: name_tag_classes(account), title: account.acct do
|
link_to(
|
||||||
safe_join([
|
labeled_account_avatar(account),
|
||||||
image_tag(account.avatar.url, width: 15, height: 15, alt: '', class: 'avatar'),
|
path || admin_account_path(account.id),
|
||||||
content_tag(:span, account.acct, class: 'username'),
|
class: class_names('name-tag', suspended: suspended_account?(account)),
|
||||||
], ' ')
|
title: account.acct
|
||||||
end
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
def admin_account_inline_link_to(account)
|
def admin_account_inline_link_to(account)
|
||||||
return if account.nil?
|
return if account.nil?
|
||||||
|
|
||||||
link_to admin_account_path(account.id), class: name_tag_classes(account, true), title: account.acct do
|
link_to(
|
||||||
content_tag(:span, account.acct, class: 'username')
|
account_inline_text(account),
|
||||||
end
|
admin_account_path(account.id),
|
||||||
|
class: class_names('inline-name-tag', suspended: suspended_account?(account)),
|
||||||
|
title: account.acct
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def name_tag_classes(account, inline = false)
|
def labeled_account_avatar(account)
|
||||||
classes = [inline ? 'inline-name-tag' : 'name-tag']
|
safe_join(
|
||||||
classes << 'suspended' if account.suspended? || (account.local? && account.user.nil?)
|
[
|
||||||
classes.join(' ')
|
image_tag(account.avatar.url, width: 15, height: 15, alt: '', class: 'avatar'),
|
||||||
|
account_inline_text(account),
|
||||||
|
],
|
||||||
|
' '
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
def account_inline_text(account)
|
||||||
|
content_tag(:span, account.acct, class: 'username')
|
||||||
|
end
|
||||||
|
|
||||||
|
def suspended_account?(account)
|
||||||
|
account.suspended? || (account.local? && account.user.nil?)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,50 +6,50 @@ RSpec.describe Admin::AccountModerationNotesHelper do
|
||||||
include AccountsHelper
|
include AccountsHelper
|
||||||
|
|
||||||
describe '#admin_account_link_to' do
|
describe '#admin_account_link_to' do
|
||||||
|
subject { helper.admin_account_link_to(account) }
|
||||||
|
|
||||||
context 'when Account is nil' do
|
context 'when Account is nil' do
|
||||||
let(:account) { nil }
|
let(:account) { nil }
|
||||||
|
|
||||||
it 'returns nil' do
|
it 'returns nil' do
|
||||||
expect(helper.admin_account_link_to(account)).to be_nil
|
expect(subject).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with account' do
|
context 'with account' do
|
||||||
let(:account) { Fabricate(:account) }
|
let(:account) { Fabricate(:account) }
|
||||||
|
|
||||||
it 'calls #link_to' do
|
it 'returns a labeled avatar link to the account' do
|
||||||
allow(helper).to receive(:link_to)
|
expect(parsed_html.a[:href]).to eq admin_account_path(account.id)
|
||||||
|
expect(parsed_html.a[:class]).to eq 'name-tag'
|
||||||
helper.admin_account_link_to(account)
|
expect(parsed_html.a.span.text).to eq account.acct
|
||||||
|
|
||||||
expect(helper).to have_received(:link_to).with(
|
|
||||||
admin_account_path(account.id),
|
|
||||||
class: name_tag_classes(account),
|
|
||||||
title: account.acct
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#admin_account_inline_link_to' do
|
describe '#admin_account_inline_link_to' do
|
||||||
|
subject { helper.admin_account_inline_link_to(account) }
|
||||||
|
|
||||||
context 'when Account is nil' do
|
context 'when Account is nil' do
|
||||||
let(:account) { nil }
|
let(:account) { nil }
|
||||||
|
|
||||||
it 'returns nil' do
|
it 'returns nil' do
|
||||||
expect(helper.admin_account_inline_link_to(account)).to be_nil
|
expect(subject).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with account' do
|
context 'with account' do
|
||||||
let(:account) { Fabricate(:account) }
|
let(:account) { Fabricate(:account) }
|
||||||
|
|
||||||
it 'calls #link_to' do
|
it 'returns an inline link to the account' do
|
||||||
result = helper.admin_account_inline_link_to(account)
|
expect(parsed_html.a[:href]).to eq admin_account_path(account.id)
|
||||||
|
expect(parsed_html.a[:class]).to eq 'inline-name-tag'
|
||||||
expect(result).to match(name_tag_classes(account, true))
|
expect(parsed_html.a.span.text).to eq account.acct
|
||||||
expect(result).to match(account.acct)
|
|
||||||
expect(result).to match(admin_account_path(account.id))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parsed_html
|
||||||
|
Nokogiri::Slop(subject)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue